From c2463c02a17f92df55ec77ed2da3fb724290c072 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 17:34:30 +0800
Subject: [PATCH] fix: bug
---
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..5ca5b03 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.label }}</div>
+ <div class="expect-position-select-item-icon-wrapper">
+ <Close
+ :size="8"
+ class="expect-position-select-item-icon"
+ @click="handleDelete(item.value)"
+ />
+ </div>
+ </div>
+ </div>
+ <PageFooterBtn type="primary" @click="handleConfirm">淇濆瓨</PageFooterBtn>
+ </div>
+ </PageFooter>
</template>
<script setup lang="ts">
+import { PositionSelectView } from '@12333/components';
+import { CategoryCode } from '@12333/constants';
+import { useDictionaryDataSelect } 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 { dictionaryDataList: position } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Position,
+});
+
+const checkdList = computed(() => {
+ if (!positionList.value.length) return [];
+ return position.value.filter((x) => positionList.value.includes(x.value));
+});
+
+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