|
|
@@ -1222,10 +1222,9 @@ Page({
|
|
1222
|
1222
|
OrderType:od,
|
|
1223
|
1223
|
});
|
|
1224
|
1224
|
},
|
|
1225
|
|
- //设置多选状态
|
|
|
1225
|
+ //设置多选状态
|
|
1226
|
1226
|
setMultipleOptions:function(event){
|
|
1227
|
1227
|
var that=this;
|
|
1228
|
|
- //debugger;
|
|
1229
|
1228
|
var IsMultipleOptions=event.currentTarget.dataset.index==1?true:false;
|
|
1230
|
1229
|
that.setData({
|
|
1231
|
1230
|
IsMultipleOptions:IsMultipleOptions,
|
|
|
@@ -1240,6 +1239,8 @@ Page({
|
|
1240
|
1239
|
List:list,
|
|
1241
|
1240
|
SelectedCount:0,
|
|
1242
|
1241
|
CanScroll:true,
|
|
|
1242
|
+ IsShowSelectUpThis: false,
|
|
|
1243
|
+ IsShowSelectDownThis: false
|
|
1243
|
1244
|
});
|
|
1244
|
1245
|
}
|
|
1245
|
1246
|
else{
|
|
|
@@ -1256,7 +1257,9 @@ Page({
|
|
1256
|
1257
|
var id=event.currentTarget.dataset.id;
|
|
1257
|
1258
|
var list=that.data.List;
|
|
1258
|
1259
|
var selectedCount=0;
|
|
1259
|
|
- //debugger;
|
|
|
1260
|
+ var firstSelectedIndex = -1;
|
|
|
1261
|
+ var lastSelectedIndex = -1;
|
|
|
1262
|
+
|
|
1260
|
1263
|
for(var i=0;i<list.length;i++){
|
|
1261
|
1264
|
if (isAll){
|
|
1262
|
1265
|
list[i].Selected=true;
|
|
|
@@ -1269,13 +1272,27 @@ Page({
|
|
1269
|
1272
|
list[i].Selected=false;
|
|
1270
|
1273
|
}
|
|
1271
|
1274
|
}
|
|
1272
|
|
- if (list[i].Selected)
|
|
|
1275
|
+ if (list[i].Selected) {
|
|
1273
|
1276
|
selectedCount++;
|
|
|
1277
|
+ if(firstSelectedIndex === -1) firstSelectedIndex = i;
|
|
|
1278
|
+ lastSelectedIndex = i;
|
|
|
1279
|
+ }
|
|
1274
|
1280
|
}
|
|
|
1281
|
+
|
|
1275
|
1282
|
that.setData({
|
|
1276
|
1283
|
List:list,
|
|
1277
|
1284
|
SelectedCount:selectedCount,
|
|
1278
|
1285
|
});
|
|
|
1286
|
+
|
|
|
1287
|
+ // 如果有选中的项目,检查它们的位置并决定显示哪个按钮
|
|
|
1288
|
+ if(selectedCount > 0) {
|
|
|
1289
|
+ that.checkSelectedItemsPosition(firstSelectedIndex, lastSelectedIndex);
|
|
|
1290
|
+ } else {
|
|
|
1291
|
+ that.setData({
|
|
|
1292
|
+ IsShowSelectUpThis: false,
|
|
|
1293
|
+ IsShowSelectDownThis: false
|
|
|
1294
|
+ });
|
|
|
1295
|
+ }
|
|
1279
|
1296
|
},
|
|
1280
|
1297
|
showMultipleOther: function (event) {
|
|
1281
|
1298
|
var that = this;
|
|
|
@@ -1554,6 +1571,97 @@ Page({
|
|
1554
|
1571
|
path: path,
|
|
1555
|
1572
|
});
|
|
1556
|
1573
|
},
|
|
|
1574
|
+ // 检查选中项的位置并决定显示哪个按钮
|
|
|
1575
|
+ checkSelectedItemsPosition: function(firstIndex, lastIndex) {
|
|
|
1576
|
+ var that = this;
|
|
|
1577
|
+
|
|
|
1578
|
+ // 使用选择器获取元素位置信息
|
|
|
1579
|
+ var query = wx.createSelectorQuery();
|
|
|
1580
|
+
|
|
|
1581
|
+ // 获取第一个选中项的位置
|
|
|
1582
|
+ query.select('#scroll-' + firstIndex).boundingClientRect();
|
|
|
1583
|
+
|
|
|
1584
|
+ // 如果有多个选中项,获取最后一个选中项的位置
|
|
|
1585
|
+ if(firstIndex !== lastIndex) {
|
|
|
1586
|
+ query.select('#scroll-' + lastIndex).boundingClientRect();
|
|
|
1587
|
+ }
|
|
|
1588
|
+
|
|
|
1589
|
+ // 获取屏幕高度
|
|
|
1590
|
+ query.selectViewport().boundingClientRect();
|
|
|
1591
|
+
|
|
|
1592
|
+ query.exec(function(res) {
|
|
|
1593
|
+ if(!res || res.length < 2) return;
|
|
|
1594
|
+
|
|
|
1595
|
+ var screenHeight = res[res.length - 1].height;
|
|
|
1596
|
+ var screenMiddle = screenHeight / 2;
|
|
|
1597
|
+
|
|
|
1598
|
+ var showUp = false;
|
|
|
1599
|
+ var showDown = false;
|
|
|
1600
|
+
|
|
|
1601
|
+ // 获取第一个选中项的位置
|
|
|
1602
|
+ var firstItem = res[0];
|
|
|
1603
|
+
|
|
|
1604
|
+ // 如果只有一个选中项
|
|
|
1605
|
+ if(firstIndex === lastIndex) {
|
|
|
1606
|
+ if(!firstItem) return;
|
|
|
1607
|
+
|
|
|
1608
|
+ var itemMiddle = firstItem.top + firstItem.height / 2;
|
|
|
1609
|
+
|
|
|
1610
|
+ // 如果项目在屏幕中间偏上
|
|
|
1611
|
+ if(itemMiddle < screenMiddle) {
|
|
|
1612
|
+ showUp = true;
|
|
|
1613
|
+ }
|
|
|
1614
|
+ // 如果项目在屏幕中间偏下
|
|
|
1615
|
+ else {
|
|
|
1616
|
+ showDown = true;
|
|
|
1617
|
+ }
|
|
|
1618
|
+ } else {
|
|
|
1619
|
+ // 有多个选中项
|
|
|
1620
|
+ var lastItem = res[1];
|
|
|
1621
|
+
|
|
|
1622
|
+ if(!firstItem || !lastItem) return;
|
|
|
1623
|
+
|
|
|
1624
|
+ var firstItemMiddle = firstItem.top + firstItem.height / 2;
|
|
|
1625
|
+ var lastItemMiddle = lastItem.top + lastItem.height / 2;
|
|
|
1626
|
+
|
|
|
1627
|
+ // 如果第一个选中项在屏幕中间偏下
|
|
|
1628
|
+ if(firstItemMiddle > screenMiddle) {
|
|
|
1629
|
+ showDown = true;
|
|
|
1630
|
+ }
|
|
|
1631
|
+
|
|
|
1632
|
+ // 如果最后一个选中项在屏幕中间偏上
|
|
|
1633
|
+ if(lastItemMiddle < screenMiddle) {
|
|
|
1634
|
+ showUp = true;
|
|
|
1635
|
+ }
|
|
|
1636
|
+ }
|
|
|
1637
|
+
|
|
|
1638
|
+ that.setData({
|
|
|
1639
|
+ IsShowSelectUpThis: showUp,
|
|
|
1640
|
+ IsShowSelectDownThis: showDown
|
|
|
1641
|
+ });
|
|
|
1642
|
+ });
|
|
|
1643
|
+ },
|
|
|
1644
|
+ onPageScroll:function(e){
|
|
|
1645
|
+ let that=this;
|
|
|
1646
|
+ setTimeout(function() {
|
|
|
1647
|
+ if(that.data.IsMultipleOptions && that.data.SelectedCount > 0) {
|
|
|
1648
|
+ var firstSelectedIndex = -1;
|
|
|
1649
|
+ var lastSelectedIndex = -1;
|
|
|
1650
|
+ var list = that.data.List;
|
|
|
1651
|
+
|
|
|
1652
|
+ for(var i = 0; i < list.length; i++) {
|
|
|
1653
|
+ if(list[i].Selected) {
|
|
|
1654
|
+ if(firstSelectedIndex === -1) firstSelectedIndex = i;
|
|
|
1655
|
+ lastSelectedIndex = i;
|
|
|
1656
|
+ }
|
|
|
1657
|
+ }
|
|
|
1658
|
+
|
|
|
1659
|
+ if(firstSelectedIndex !== -1) {
|
|
|
1660
|
+ that.checkSelectedItemsPosition(firstSelectedIndex, lastSelectedIndex);
|
|
|
1661
|
+ }
|
|
|
1662
|
+ }
|
|
|
1663
|
+ }, 100);
|
|
|
1664
|
+ },
|
|
1557
|
1665
|
onShareAppMessage: function () {
|
|
1558
|
1666
|
return {
|
|
1559
|
1667
|
title: app.globalData.ShareTitle,
|