xuxueyang
2024-07-15 f09d9ec905b6247b36a394158662fe90d02197a5
uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
@@ -2,26 +2,29 @@
  <view class="uni-data-pickerview">
    <scroll-view v-if="!isCloudDataList" class="selected-area" scroll-x="true">
      <view class="selected-list">
          <view
            class="selected-item"
            v-for="(item,index) in selected"
            :key="index"
            :class="{
            <view class="selected-item" v-for="(item,index) in selected" :key="index" :class="{
              'selected-item-active':index == selectedIndex
            }"
            @click="handleSelect(index)"
          >
            }" @click="handleSelect(index)">
            <text>{{item.text || ''}}</text>
          </view>
      </view>
    </scroll-view>
    <view class="tab-c">
         <!--    <view>
            selected:{{JSON.stringify(selected)}}
         </view> -->
         <!-- v-if="!area||!selected|| selected.length==0||area&&selected&&selected.length>0&&(item[map.text]!==selected[selected.length-1].text)" -->
      <scroll-view class="list" :scroll-y="true">
        <view class="item" :class="{'is-disabled': !!item.disable}" v-for="(item, j) in dataList[selectedIndex]" :key="j"
            <view v-for="(item, j) in dynamicList" :key="j">
               <view class="item" :class="{'is-disabled': !!item.disable}" v-show="!item.hide"
          @click="handleNodeClick(item, selectedIndex, j)">
          <text class="item-text">{{item[map.text]}}</text>
          <view class="check" v-if="selected.length > selectedIndex && item[map.value] == selected[selectedIndex].value"></view>
                  <view class="check"
                     v-if="selected.length > selectedIndex && item[map.value] == selected[selectedIndex].value">
        </view>
               </view>
            </view>
      </scroll-view>
      <view class="loading-cover" v-if="loading">
@@ -64,6 +67,31 @@
      ellipsis: {
        type: Boolean,
        default: true
         }
      },
      computed: {
         dynamicList() {
            var lastnodes = []
            if (this.selected && this.selected.length > 0) {
               for (var name of this.selected) {
                  lastnodes.push(name.text)
               }
               // lastnode = this.selected[this.selectedIndex].text
            }
            var arr = []
            console.log('lastnodes', lastnodes)
            if (this.dataList && this.dataList[this.selectedIndex]) {
               for (var item of this.dataList[this.selectedIndex]) {
                  if (lastnodes.indexOf(item[this.map.text]) >= 0) {
                     item.hide = true
                     arr.push(item)
                  } else {
                     item.hide = false
                     arr.push(item)
                  }
               }
            }
            return arr
      }
    },
    created() {
@@ -221,6 +249,7 @@
  .selected-area {
    width: 750rpx;
  }
  /* #endif */
  .selected-list {