Bläddra i källkod

fix 多项目选择

Michael Wang 3 år sedan
förälder
incheckning
a3fa683f8b

+ 5 - 3
src/components/ProjectsSelect.vue

@@ -20,7 +20,7 @@
 
 <script setup lang="ts">
 import { getProjectList } from "@/api/projectManagementPage";
-import { onMounted, computed, onUpdated } from "vue";
+import { onMounted, onUpdated } from "vue";
 
 // eslint-disable-next-line vue/no-setup-props-destructure
 const {
@@ -49,7 +49,7 @@ async function fetchData() {
 onMounted(fetchData);
 onUpdated(fetchData);
 
-const isMultiple = computed(() => Array.isArray(value));
+const isMultiple = $computed(() => Array.isArray(value));
 
 // const valueStr = computed(() => {
 //   let res: undefined | number | string = props.value ?? undefined;
@@ -58,6 +58,8 @@ const isMultiple = computed(() => Array.isArray(value));
 // });
 
 function handleChange(v: string) {
-  emit("update:value", v);
+  // console.log(v, v.length, value);
+  // 最多只有2项
+  emit("update:value", isMultiple ? v.slice(0, 2) : v);
 }
 </script>

+ 5 - 5
src/features/projectCompareDetail/ProjectCompareDetail2.vue

@@ -3,19 +3,19 @@
     <div class="tw-bg-white tw-p-5 tw-rounded-xl tw-mb-5">
       <ProjectsSelect
         v-if="rootOrgId"
-        v-model:value="projectIds"
+        v-model:value="contrastProjectId"
         disabled
         :rootOrgId="rootOrgId"
-        placeholder="请选择分析项目"
-        style="width: 400px !important"
+        placeholder="请选择参照项目"
       />
       <span class="tw-mr-4"></span>
       <ProjectsSelect
         v-if="rootOrgId"
-        v-model:value="contrastProjectId"
+        v-model:value="projectIds"
         disabled
         :rootOrgId="rootOrgId"
-        placeholder="请选择参照项目"
+        placeholder="请选择分析项目"
+        style="width: 400px !important"
       />
       <span class="tw-mr-4"></span>
       <div class="tw-float-right tw-flex tw-gap-2">

+ 19 - 13
src/features/projectCompareManagement/ProjectCompareManagement.vue

@@ -3,17 +3,17 @@
     <div class="tw-bg-white tw-p-5 tw-rounded-xl tw-mb-5">
       <ProjectsSelect
         v-if="rootOrgId"
-        v-model:value="projectIds"
+        v-model:value="contrastProjectId"
         :rootOrgId="rootOrgId"
-        placeholder="请选择分析项目"
-        style="width: 400px !important"
+        placeholder="请选择参照项目"
       />
       <span class="tw-mr-4"></span>
       <ProjectsSelect
         v-if="rootOrgId"
-        v-model:value="contrastProjectId"
+        v-model:value="projectIds"
         :rootOrgId="rootOrgId"
-        placeholder="请选择参照项目"
+        placeholder="请选择分析项目"
+        style="width: 400px !important"
       />
       <span class="tw-mr-4"></span>
       <a-button class="query-btn" @click="clickSearch">对比</a-button>
@@ -27,6 +27,7 @@
         :data-source="data"
         :scroll="{ x: 1200, y: 800 }"
         :pagination="{
+          hideOnSinglePage: true,
           pageSize: pageSize,
           current: pageNo,
           total: totalElements,
@@ -71,7 +72,7 @@ let projectIds: number[] = $ref([]); //$ref([4, 5]);
 let contrastProjectId: number = $ref(); //$ref(4);
 
 let data = $ref<SASPaper[]>([]);
-let pageSize = $ref(10);
+let pageSize = $ref(1000);
 let pageNo = $ref(1);
 let totalElements = $ref(0);
 
@@ -184,11 +185,16 @@ const columns = [
     customRender: ({ record, index }: { record: SASPaper; index: number }) => {
       // console.log(text, index);
       // These two are merged into above cell
-      let rowSpan = 1;
-      if (index % projectIds.length === 0) {
-        rowSpan = projectIds.length;
-      } else {
-        rowSpan = 0;
+      // console.log(index, record.projectId);
+      let rowSpan = 0;
+      if (record.projectId === contrastProjectId) {
+        rowSpan = 1;
+        if (data[index + 1]?.projectId !== contrastProjectId) {
+          rowSpan = 2;
+        }
+        if (data[index + 2]?.projectId !== contrastProjectId) {
+          rowSpan = 3;
+        }
       }
       return {
         children: h(
@@ -207,10 +213,10 @@ const columns = [
   },
 ];
 
-function customRow(record: SASPaper, index: number) {
+function customRow(record: SASPaper) {
   // console.log(args);
   let backgroundColor = "white";
-  if (index % projectIds.length === 0) {
+  if (record.projectId === contrastProjectId) {
     backgroundColor = "lightgrey";
   }
   return {