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 |   46 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
index ca2afc3..71a124b 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
@@ -4,29 +4,65 @@
   </ContentView>
   <PageFooter>
     <div class="expect-position-page-footer">
-      <div class="expect-position-select-wrapper" v-if="positionList.length > 0">
-        <div class="expect-position-select-item" v-for="(item, index) in positionList" :key="index">
-          <div class="expect-position-select-item-text">{{ item }}</div>
+      <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" />
+            <Close
+              :size="8"
+              class="expect-position-select-item-icon"
+              @click="handleDelete(item.id)"
+            />
           </div>
         </div>
       </div>
-      <PageFooterBtn type="primary">淇濆瓨</PageFooterBtn>
+      <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">

--
Gitblit v1.9.1