From 1bbd7061dac79cacf5513234a04cac8ba0be5c6f Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 21 三月 2025 09:15:36 +0800
Subject: [PATCH] feat: 接口对接

---
 apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 1 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
index 77f18e3..71a124b 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
@@ -1,13 +1,128 @@
 <template>
-  <div>InnerPage</div>
+  <ContentView :paddingH="false" class="expect-position-view">
+    <PositionSelectView v-model="positionList" />
+  </ContentView>
+  <PageFooter>
+    <div class="expect-position-page-footer">
+      <div class="expect-position-select-wrapper" v-if="checkdList.length > 0">
+        <div class="expect-position-select-item" v-for="(item, index) in checkdList" :key="index">
+          <div class="expect-position-select-item-text">{{ item.name }}</div>
+          <div class="expect-position-select-item-icon-wrapper">
+            <Close
+              :size="8"
+              class="expect-position-select-item-icon"
+              @click="handleDelete(item.id)"
+            />
+          </div>
+        </div>
+      </div>
+      <PageFooterBtn type="primary" @click="handleConfirm">淇濆瓨</PageFooterBtn>
+    </div>
+  </PageFooter>
 </template>
 
 <script setup lang="ts">
+import { PositionSelectView } from '@12333/components';
+import { SearchType } from '@12333/constants';
+import { useSearchSettingType } from '@12333/hooks';
+import { Close } from '@nutui/icons-vue-taro';
+import Taro from '@tarojs/taro';
+import { size } from 'lodash';
+import { useEvent, useEventChannel } from 'senin-mini/hooks';
+
 defineOptions({
   name: 'InnerPage',
 });
+
+const eventChannel = useEventChannel();
+
+useEvent('updatePosition', function (data: { content: string[] }) {
+  if (data.content.length) {
+    positionList.value = [...data.content];
+  }
+});
+
+const positionList = ref([]);
+
+const { searchSettingTypeList: position } = useSearchSettingType({
+  searchType: SearchType.Position,
+});
+
+const checkdList = computed(() => {
+  if (!positionList.value.length) return [];
+  return position.value.filter((x) => positionList.value.includes(x.id));
+});
+
+function handleDelete(id: string) {
+  positionList.value = positionList.value.filter((x) => x !== id);
+}
+
+function handleConfirm() {
+  eventChannel.emit('addPosition', {
+    content: positionList.value,
+  });
+  Taro.navigateBack({ delta: 1 });
+}
 </script>
 
 <style lang="scss">
 @import '@/styles/common.scss';
+
+.expectPosition-page-wrapper {
+  .expect-position-view {
+    flex: 1;
+    min-height: 0;
+
+    .nut-category {
+      height: 100%;
+    }
+  }
+
+  .expect-position-page-footer {
+    width: 100%;
+    padding: 0 boleGetCssVar('size', 'body-padding-h');
+
+    .page-footer-btn {
+      margin: 0;
+      width: 100%;
+    }
+
+    .expect-position-select-wrapper {
+      display: flex;
+      flex-wrap: wrap;
+      margin-bottom: 40px;
+      column-gap: 16px;
+      row-gap: 24px;
+      padding-top: 24px;
+
+      .expect-position-select-item {
+        display: flex;
+        align-items: center;
+        padding: 0 28px;
+        height: 64px;
+        border-radius: 32px;
+        background-color: #f6faff;
+
+        .expect-position-select-item-text {
+          font-weight: 400;
+          font-size: 24px;
+          color: #536077;
+          line-height: 24px;
+        }
+
+        .expect-position-select-item-icon-wrapper {
+          padding: 8px;
+          padding-right: 0;
+          padding-left: 30px;
+          display: flex;
+          align-items: center;
+        }
+
+        .expect-position-select-item-icon {
+          color: boleGetCssVar('text-color', 'secondary');
+        }
+      }
+    }
+  }
+}
 </style>

--
Gitblit v1.9.1