From 591a3742e98ad926c88059b8fe8eabd3a8630c25 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 13 二月 2025 13:59:10 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

---
 packages/components/src/AreaTreeSelect/PositionSelectView.vue |   78 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/packages/components/src/AreaTreeSelect/PositionSelectView.vue b/packages/components/src/AreaTreeSelect/PositionSelectView.vue
new file mode 100644
index 0000000..048754e
--- /dev/null
+++ b/packages/components/src/AreaTreeSelect/PositionSelectView.vue
@@ -0,0 +1,78 @@
+<template>
+  <Category :category="provinceList" @change="change" class="position-select-view">
+    <CategoryPane :max="max" :categoryChild="categoryChild" :multiple="multiple" v-model="model">
+    </CategoryPane>
+  </Category>
+</template>
+
+<script setup lang="ts">
+import { useAllAreaList } from '@12333/hooks';
+import Category from './Category.vue';
+import CategoryPane from './CategoryPane.vue';
+import { reactive, computed, watch } from 'vue';
+
+defineOptions({
+  name: 'PositionSelectView',
+});
+
+type Props = {
+  multiple?: boolean;
+  max?: number;
+};
+
+const props = withDefaults(defineProps<Props>(), {
+  multiple: true,
+});
+
+const model = defineModel<number[]>();
+
+const state = reactive({
+  provinceIndex: 0,
+});
+
+const { areaTreeList } = useAllAreaList();
+
+const provinceList = computed(() => areaTreeList.value.map((x) => ({ ...x, name: x.areaName })));
+
+const categoryChild = computed(() => {
+  if (!provinceList.value.length) {
+    return [];
+  }
+  return provinceList.value[state.provinceIndex].children.map((x) => ({
+    ...x,
+    name: x.areaName,
+    value: x.areaCode,
+  }));
+});
+
+const change = (index: number) => {
+  state.provinceIndex = index;
+};
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.position-select-view {
+  .nut-category__cateList {
+    height: 100%;
+
+    & > .h5-div {
+      height: 100%;
+      overflow-y: auto;
+    }
+
+    .nut-category__cateList-scroll {
+      height: 100%;
+      width: auto;
+    }
+  }
+
+  .nut-category-pane {
+    height: 100%;
+    overflow-y: auto;
+    flex: 1;
+    min-width: 0;
+  }
+}
+</style>

--
Gitblit v1.9.1