| {{ item.isOtherPosition == 1 ? item.positionName + '(' + item.organizationName + ')' : item.positionName }} |
-
+ |
-
+
职级
@@ -35,7 +35,7 @@
-
+
{{item.bandCode}}
@@ -137,17 +137,69 @@
downList(){
this.bandShow = !this.bandShow
},
+ isDisabled(index) {
+ if (this.bandIndexs.length >= 1) {
+ const firstClickIndex = Math.min(...this.bandIndexs);
+ const allowedRangeEnd = firstClickIndex + 2;
+ return index < firstClickIndex || index > allowedRangeEnd;
+ }
+ return false;
+ },
isBand(item,index){
- const indexToRemove = this.bandIndexs.indexOf(index);
+ if (this.bandIndexs.length >= 1) {
+ const firstClickIndex = Math.min(...this.bandIndexs);
+ const allowedRangeEnd = firstClickIndex + 2;
+ if (index < firstClickIndex || index > allowedRangeEnd) {
+ return;
+ }
+ }
+ if (this.bandIndexs.length === 3 && this.bandIndexs.includes(index) && this.bandIndexs.indexOf(index) === 1) {
+ // 删除最后一个元素
+ this.bandIndexs.pop();
+ this.bandItem = this.bandIndexs.map(index => this.bandLists[index])
+ this.bandItem = this.bandItem.sort((a, b) => parseInt(a.bandId, 10) - parseInt(b.bandId, 10));
+ this.bandFirst = this.bandItem[0].bandCode
+ if(this.bandItem && this.bandItem.length > 1){
+ this.bandEnd = this.bandItem[this.bandItem.length - 1].bandCode
+ }
+ return;
+ }
+ let currentIndex = index;
+ let firstClickIndex = this.bandIndexs[0];
+
+ if (this.bandIndexs.length === 0) {
+ this.bandIndexs.push(currentIndex);
+ return;
+ }
+
+ // 确保currentIndex和firstClickIndex按顺序排列
+ if (currentIndex < firstClickIndex) {
+ [currentIndex, firstClickIndex] = [firstClickIndex, currentIndex];
+ }
+
+ // 检查是否有连续的未选择项,并自动填充
+ for (let i = firstClickIndex + 1; i < currentIndex; i++) {
+ if (!this.bandIndexs.includes(i)) {
+ this.bandIndexs.splice(this.bandIndexs.indexOf(i - 1) + 1, 0, i);
+ }
+ }
+
+ // 添加或移除当前点击的index
+ const indexToRemove = this.bandIndexs.indexOf(currentIndex);
if (indexToRemove !== -1) {
- this.bandIndexs.splice(indexToRemove, 1);
+ this.bandIndexs.splice(indexToRemove, 1);
} else {
- this.bandIndexs.push(index);
+ this.bandIndexs.push(currentIndex);
}
if(this.bandIndexs.length == 0){
+ this.bandFirst = ''
+ this.bandItem = []
return
}
- console.log(this.bandIndexs,'this.bandIndexs')
+ if(this.bandIndexs.length == 1){
+ this.bandEnd = ''
+ }
+
this.bandItem = this.bandIndexs.map(index => this.bandLists[index])
this.bandItem = this.bandItem.sort((a, b) => parseInt(a.bandId, 10) - parseInt(b.bandId, 10));
this.bandFirst = this.bandItem[0].bandCode
@@ -162,9 +214,11 @@
|