fix
13404089107
2025-04-07 abfc074c35e8bd66ec0641173bfd703051ca701a
src/components/datascreen/CenterPanel.vue
@@ -14,7 +14,7 @@
        <div class="data-item">
          <img src="@/assets/center-top-right.png" alt="">
          <div>
            <div class="label">本月应补偿总额(万元)</div>
            <div class="label">本季应补偿总额(万元)</div>
            <div class="value">{{ data.monthCompensationAmount }} <span>环比</span><span
                class="value-change value-change-down">{{ data.monthCompensationAmountRate }}</span></div>
          </div>
@@ -22,7 +22,7 @@
        <div class="data-item">
          <img src="@/assets/center-top-right.png" alt="">
          <div>
            <div class="label">下月应补偿总额(万元)</div>
            <div class="label">下季应补偿总额(万元)</div>
            <div class="value">{{ data.nextMonthCompensationAmount }} <span>环比</span><span
                class="value-change value-change-up">{{ data.nextMonthCompensationAmountRate }}</span></div>
          </div>
@@ -36,28 +36,36 @@
    </div>
    <!-- 中间下部数据 -->
    <div class="center-bottom panel-item">
      <div class="compensation-table">
        <div class="table-header">
          <div class="batch-number txt-center">安置批次</div>
          <div class="household-count txt-center">户主名称</div>
          <div class="people-count txt-center">安置人数</div>
          <div class="progress-wrapper txt-center">补偿阶段</div>
    <div class="center-bott">
      <div class="bottom-search">
        <div class="search-box">
          <input type="text" placeholder="请输入户主名称进行搜索" v-model="searchText" @keydown="searchForText($event)">
          <img src="@/assets/search.png" class="search-icon" alt="">
        </div>
        <div class="table-content">
          <div class="table-row" v-for="(item, index) in data.quarterProcessResponses" :key="index">
            <div class="batch-number text-center">{{ item.batchNumber }}</div>
            <div class="household-count text-center">{{ item.householdHead }}</div>
            <div class="people-count text-center">{{ item.currentCount }}</div>
            <div class="progress-wrapper">
              <div class="progress-bar">
                <div class="progress-fill">
                  <div class="progress-color"
                    :class="item.process <= 5 ? 'progress-yellow' : item.process <= 10&&item.process>5 ? 'progress-green' : item.process <= 15&&item.process>10 ? 'progress-blue' : 'progress-gray'">
      </div>
      <div class="center-bottom panel-item">
        <div class="compensation-table">
          <div class="table-header">
            <div class="batch-number txt-center">安置批次</div>
            <div class="household-count txt-center">户主名称</div>
            <div class="people-count txt-center">安置人数</div>
            <div class="progress-wrapper txt-center">补偿阶段</div>
          </div>
          <div class="table-content">
            <div class="table-row" v-for="(item, index) in data.quarterProcessResponses" :key="index">
              <div class="batch-number text-center">{{ item.batchNumber }}</div>
              <div class="household-count text-center">{{ item.householdHead }}</div>
              <div class="people-count text-center">{{ item.currentCount }}</div>
              <div class="progress-wrapper">
                <div class="progress-bar">
                  <div class="progress-fill">
                    <div class="progress-color" :style="{ width: item.process*5 + '%' }"
                      :class="item.process <= 5 ? 'progress-yellow' : item.process <= 10 && item.process > 5 ? 'progress-green' : item.process <= 15 && item.process > 10 ? 'progress-blue' : 'progress-gray'">
                    </div>
                  </div>
                </div>
                <div class="progress-text">{{ item.process }}/20</div>
              </div>
              <div class="progress-text">{{ item.process }}/20</div>
            </div>
          </div>
        </div>
@@ -73,7 +81,11 @@
  props: {
    data: {
      type: Object,
      default: () => { }
      default: () => { },
    },
    searchText: {
      type: String,
      default: '',
    }
  },
  components: {
@@ -86,10 +98,18 @@
        { label: '已审核', value: '2021103000002', percentage: 70 },
        { label: '已完成', value: '2021103000003', percentage: 50 }
      ],
      // searchText: '', // 搜索文本
      compensationList: [
      ]
    };
  },
  methods: {
    searchForText(event) {
      if (event.key === 'Enter') { // 监听回车键事件
        this.$emit('searchForText', this.searchText); // 触发搜索事件并传递搜索文本
      }
    }
  }
};
</script>
@@ -97,6 +117,45 @@
<style lang="less" scoped>
.pl-20 {
  padding-left: 20px;
}
.bottom-search {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 8px;
}
.search-box {
  width: 180px;
  display: flex;
  align-items: center;
  height: 30px;
  background: rgba(2, 0, 77, 0.4);
  box-shadow: inset 0px 0px 34px 0px rgba(17, 40, 255, 0.66);
  border-radius: 4px;
  border: 2px solid #0D53B7;
}
input {
  height: 30px;
  width: 100%;
  line-height: 30px;
  padding-left: 9px;
  background: transparent;
  border: none;
  font-size: 12px;
  font-family: SourceHanSansCN, SourceHanSansCN;
  font-weight: 400;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  outline: none;
}
.search-icon {
  width: 14px;
  height: 14px;
  margin-left: 17px;
}
.text-center {
@@ -188,7 +247,7 @@
        }
        flex-direction: column;
        justify-content: space-between;
        // justify-content: space-between;
        .table-row {
          display: flex;
@@ -236,22 +295,22 @@
                .progress-yellow {
                  height: 100%;
                  background: #FEDB65;
                  background: #FEDB65 !important;
                }
                .progress-blue {
                  height: 100%;
                  background: #00C6FF;
                  background: #00C6FF !important;
                }
                .progress-green {
                  height: 100%;
                  background: rgba(0, 220, 171, 1);
                  background: rgba(0, 220, 171, 1) !important;
                }
                .progress-gray {
                  height: 100%;
                  background: rgba(0, 242, 240, 1);
                  background: rgba(0, 242, 240, 1) !important;
                }