tempList.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. const app = getApp();
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. keyword: '',
  8. list:[],
  9. tabDetail:[{name:'222',type:'1',isSelete:false}],
  10. text:'已入库',
  11. isStatus:false,
  12. type:'00',
  13. scrollHeight: 0, // scroll-view高度
  14. startX: 0, // 开始X坐标
  15. startY: 0, // 开始Y坐标
  16. transportType:[
  17. {name:'汽车',type:'10',isSelete:false},
  18. {name:'船',type:'20',isSelete:false},
  19. {name:'火车',type:'30',isSelete:false},
  20. {name:'飞机',type:'40',isSelete:false},
  21. {name:'其他',type:'50',isSelete:false},
  22. ],
  23. packageType:[
  24. {name:'支',type:'10',isSelete:false},
  25. {name:'包',type:'20',isSelete:false},
  26. {name:'箱',type:'30',isSelete:false},
  27. {name:'托盘',type:'40',isSelete:false},
  28. {name:'其他',type:'50',isSelete:false},
  29. ],
  30. status:[{name:'已入库',type:'00',isSelete:false},{name:'已出库',type:'10',isSelete:false},{name:'已结束',type:'20',isSelete:false}],
  31. isTab:false, // 筛选框显示隐藏
  32. packageTypeInit:'',
  33. transportTypeInit:'',
  34. transportStatusInit:'',
  35. },
  36. setTab(e){
  37. var that = this;
  38. const type = e.currentTarget.dataset.type;
  39. var seleteTabType = this.data.seleteTabType;
  40. if(seleteTabType == type && this.data.isTab == true){
  41. this.setData({
  42. isTab:false
  43. })
  44. return ;
  45. }
  46. if(seleteTabType == 'transportStatus'){
  47. this.setData({
  48. packageTypeInit:'',
  49. transportTypeInit:'',
  50. transportStatusInit:'',
  51. packageType:that.data.packageType.map(item=>{return{...item,isSelete:false}}),
  52. status:that.data.status.map(item=>{return{...item,isSelete:false}}),
  53. transportType:that.data.transportType.map(item=>{return{...item,isSelete:false}}),
  54. })
  55. }
  56. if(type == 'packageType'){
  57. this.setData({
  58. tabDetail:this.data.packageType,
  59. seleteTabType:type,
  60. isTab:true
  61. })
  62. }else if(type == 'transportType'){
  63. this.setData({
  64. tabDetail:this.data.transportType,
  65. isTab:true,
  66. seleteTabType:type,
  67. })
  68. }else if(type == 'transportStatus'){
  69. this.setData({
  70. tabDetail:this.data.status,
  71. isTab:true,
  72. seleteTabType:type,
  73. })
  74. }
  75. },
  76. seleteTab(e){
  77. const item = e.currentTarget.dataset.item;
  78. const type = e.currentTarget.dataset.type;
  79. var seleteTabType = this.data.seleteTabType;
  80. var tabDetail = this.data.tabDetail;
  81. var seleteArr = tabDetail.map(itemTabType=>{
  82. if(itemTabType.type == type){
  83. return {...itemTabType,isSelete:true}
  84. }else{
  85. return {...itemTabType,isSelete:false}
  86. }
  87. })
  88. if(seleteTabType == 'packageType'){
  89. this.setData({
  90. packageTypeInit:type,
  91. })
  92. }else if(seleteTabType == 'transportType'){
  93. this.setData({
  94. transportTypeInit:type,
  95. })
  96. }else if(seleteTabType == 'transportStatus'){
  97. this.setData({
  98. transportStatusInit:type,
  99. })
  100. }
  101. this.setData({
  102. tabDetail:seleteArr,
  103. })
  104. },
  105. cancel(){
  106. this.setData({
  107. packageType:this.data.packageType.map(item=>{
  108. if(item.isSelete){
  109. return {...item,isSelete:false}
  110. }else{
  111. return item
  112. }
  113. }),
  114. transportType:this.data.transportType.map(item=>{
  115. if(item.isSelete){
  116. return {...item,isSelete:false}
  117. }else{
  118. return item
  119. }
  120. }),
  121. status:this.data.status.map(item=>{
  122. if(item.isSelete){
  123. return {...item,isSelete:false}
  124. }else{
  125. return item
  126. }
  127. }),
  128. isTab:false,
  129. packageTypeInit:'',
  130. transportTypeInit:'',
  131. transportStatusInit:'',
  132. },()=>{
  133. this.getChainList();
  134. })
  135. },
  136. searchType(){
  137. var tabDetail = this.data.tabDetail;
  138. var type = this.data.seleteTabType;
  139. var seleteType = '';
  140. var name = '';
  141. tabDetail.map(item=>{
  142. if(item.isSelete){
  143. seleteType = item.type
  144. name = item.name
  145. }
  146. })
  147. if(type == 'packageType'){
  148. this.setData({
  149. packageTypeInit:seleteType,
  150. transportTypeInit:'',
  151. transportStatusInit:'',
  152. isTab:false
  153. },()=>{
  154. this.getChainList()
  155. })
  156. }else if(type == 'transportType'){
  157. this.setData({
  158. packageTypeInit:'',
  159. transportTypeInit:seleteType,
  160. transportStatusInit:'',
  161. isTab:false
  162. },()=>{
  163. this.getChainList()
  164. })
  165. }else if(type == 'transportStatus'){
  166. this.setData({
  167. packageTypeInit:'',
  168. transportTypeInit:'',
  169. transportStatusInit:seleteType,
  170. isTab:false
  171. },()=>{
  172. this.getChainList()
  173. })
  174. }
  175. },
  176. /**
  177. * 生命周期函数--监听页面加载
  178. */
  179. onLoad: function (options) {
  180. },
  181. searchList(){
  182. this.getChainList();
  183. },
  184. getChainList() {
  185. var packageType = this.data.packageTypeInit;
  186. var transportType = this.data.transportTypeInit;
  187. var transportStatus = this.data.transportStatusInit;
  188. var that = this;
  189. wx.showLoading({
  190. title: '正在加载...',
  191. mask: true
  192. })
  193. app.requestP({
  194. url: "/chain/pageChain",
  195. method: "post",
  196. contentType: ' application/json',
  197. data: {
  198. pageNum: 1,
  199. pageSize: 1000,
  200. parentId: 0,
  201. packageType:packageType || '',
  202. transportType: transportType ||'',
  203. transportStatus:transportStatus || '',
  204. keyword: that.data.keyword || ''
  205. }
  206. }).catch(err => {
  207. app.showToptip(that, "error", "数据获取失败,请稍后再试")
  208. // 隐藏导航栏加载框
  209. wx.hideNavigationBarLoading();
  210. // 停止下拉动作
  211. wx.stopPullDownRefresh();
  212. }).then(res => {
  213. var data = res.data.data.rows
  214. that.setData({
  215. list: data,
  216. page: '1',
  217. })
  218. // 隐藏导航栏加载框
  219. wx.hideNavigationBarLoading();
  220. // 停止下拉动作
  221. wx.stopPullDownRefresh();
  222. wx.hideLoading()
  223. })
  224. },
  225. setKeyword(e) {
  226. this.setData({
  227. keyword: e.detail.value
  228. })
  229. },
  230. allStatus(){
  231. if(this.data.isStatus){
  232. this.setData({
  233. isStatus:false
  234. })
  235. }else{
  236. this.setData({
  237. isStatus:true
  238. })
  239. }
  240. },
  241. // setStatus(e){ 已废弃
  242. // var type = e.currentTarget.dataset.type;
  243. // for(var i in this.data.status){
  244. // if(this.data.status[i].type == type){
  245. // this.setData({
  246. // text:this.data.status[i].statu,
  247. // isStatus:false,
  248. // type:type + '',
  249. // })
  250. // this.getChainList()
  251. // break;
  252. // }
  253. // }
  254. // },
  255. addLabel(){
  256. wx.removeStorageSync('orderSelect')
  257. wx.navigateTo({
  258. url: '/pages/workbench/tempList/addChain/addChain?pid=0',
  259. })
  260. },
  261. editList(e){
  262. var item = e.currentTarget.dataset.item;
  263. wx.navigateTo({
  264. url: '/pages/workbench/tempList/addChain/addChain?item='+JSON.stringify(item),
  265. })
  266. },
  267. delList(e){
  268. var that = this;
  269. wx.showModal({
  270. title: '提示',
  271. content: '该冷链内有可能会包含子冷链,删除后不可恢复,请确认是否删除',
  272. success (res) {
  273. if (res.confirm) {
  274. var id = e.currentTarget.dataset.id;
  275. app.requestP({
  276. url:'/chain/del',
  277. method:'post',
  278. data:{
  279. chainId:id
  280. }
  281. }).then(res=>{
  282. app.showToptip(that,'success',res.data.msg);
  283. that.getChainList();
  284. }).catch(err=>{
  285. app.showToptip(that,'error',err.data.msg);
  286. })
  287. } else if (res.cancel) {
  288. //点击取消
  289. }
  290. }
  291. })
  292. },
  293. /**
  294. * 生命周期函数--监听页面初次渲染完成
  295. */
  296. onReady: function () {
  297. },
  298. /**
  299. * 生命周期函数--监听页面显示
  300. */
  301. onShow: function () {
  302. this.getChainList();
  303. this.setData({
  304. scrollHeight: wx.getSystemInfoSync().screenHeight
  305. })
  306. },
  307. /**
  308. * 生命周期函数--监听页面隐藏
  309. */
  310. onHide: function () {
  311. },
  312. /**
  313. * 生命周期函数--监听页面卸载
  314. */
  315. onUnload: function () {
  316. },
  317. /**
  318. * 页面相关事件处理函数--监听用户下拉动作
  319. */
  320. onPullDownRefresh: function () {
  321. },
  322. /**
  323. * 页面上拉触底事件的处理函数
  324. */
  325. onReachBottom: function () {
  326. },
  327. goChainInfo(e){
  328. const id = e.currentTarget.dataset.id;
  329. wx.navigateTo({
  330. url: '/pages/query/details?id='+id,
  331. })
  332. },
  333. /**
  334. * 用户点击右上角分享
  335. */
  336. onShareAppMessage: function () {
  337. },
  338. // 手指触摸动作开始
  339. touchStart: function (e) {
  340. let that = this;
  341. //开始触摸时 重置所有删除
  342. that.data.list.forEach(function (v, i) {
  343. if (v.isTouchMove) v.isTouchMove = false; // 只操作为true的
  344. })
  345. // 记录手指触摸开始坐标
  346. that.setData({
  347. startX: e.changedTouches[0].clientX, // 开始X坐标
  348. startY: e.changedTouches[0].clientY, // 开始Y坐标
  349. list: that.data.list
  350. })
  351. },
  352. // 手指触摸后移动
  353. touchMove: function (e) {
  354. let that = this,
  355. index = e.currentTarget.dataset.index, // 当前下标
  356. startX = that.data.startX, // 开始X坐标
  357. startY = that.data.startY, // 开始Y坐标
  358. touchMoveX = e.changedTouches[0].clientX, // 滑动变化坐标
  359. touchMoveY = e.changedTouches[0].clientY, // 滑动变化坐标
  360. // 获取滑动角度
  361. angle = that.angle({
  362. X: startX,
  363. Y: startY
  364. }, {
  365. X: touchMoveX,
  366. Y: touchMoveY
  367. });
  368. // 判断滑动角度
  369. that.data.list.forEach(function (v, i) {
  370. v.isTouchMove = false
  371. // 滑动超过30度角 return
  372. if (Math.abs(angle) > 30) return;
  373. if (i == index) {
  374. // 右滑
  375. if (touchMoveX > startX)
  376. v.isTouchMove = false
  377. // 左滑
  378. else
  379. v.isTouchMove = true
  380. }
  381. })
  382. // 更新数据
  383. that.setData({
  384. list: that.data.list
  385. })
  386. },
  387. // 计算滑动角度
  388. angle: function (start, end) {
  389. let that = this,
  390. _X = end.X - start.X,
  391. _Y = end.Y - start.Y;
  392. // 返回角度 /Math.atan()返回数字的反正切值
  393. return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
  394. },
  395. })