浏览代码

-新增 index.js 中,api 的引用

    //取得學區資料(new_msg)
    getAreas(data) {
        return post('notice/get-areas', data)
    },
    //取得地理資料(new_msg)
    getGeos(data) {
        return post('notice/get-geos', data)
    },
    //取得教育機構(new_msg)
    getUnits(data) {
        return post('notice/get-units', data)
    },
Daniel 4 月之前
父节点
当前提交
9afdc29411

+ 13 - 0
TEAMModelBI/ClientApp/src/api/index.js

@@ -483,6 +483,19 @@ export default {
     sendMessage(data) {
         return post('notice/send-message', data)
     },
+    //取得學區資料(new_msg)
+    getAreas(data) {
+        return post('notice/get-areas', data)
+    },
+    //取得地理資料(new_msg)
+    getGeos(data) {
+        return post('notice/get-geos', data)
+    },
+    //取得教育機構(new_msg)
+    getUnits(data) {
+        return post('notice/get-units', data)
+    },
+
 
     //获取消息列表
     getMsglist(data) {

+ 67 - 16
TEAMModelBI/ClientApp/src/view/systemConfig/NewMsg/geos_info.vue

@@ -129,11 +129,12 @@
 </template>
 
 <script setup>
-    import { ref, computed, onMounted, provide, inject } from "vue";
+    import { ref, computed, onMounted, provide, inject, getCurrentInstance } from "vue";
     import { ElMessage } from "element-plus";
     import axios from "axios";
     import { CloseBold } from "@element-plus/icons-vue";
     import Geos_Info_ID from './geos_info_id.vue'; // 引入组件
+    let { proxy } = getCurrentInstance()
 
     // 动态获取的地理資訊和学校数据
     const items = ref([]); // 地理列表(父级菜单)
@@ -223,6 +224,7 @@
     // 點擊 City 後, 取得所屬 City 的學校列表
     const setCityActive = (index) => {
 
+        debugger;
         // 設置當前選中的 City Index
         activeIndex2.value = index;
 
@@ -243,7 +245,13 @@
     };
 
     const addToColumn3 = (item) => {
-        column3Items.value.push(item);
+
+        if (!column3Items.value.includes(item)) {
+            column3Items.value.push(item);
+            ElMessage.success(`已加入接收名單`);
+        } else {
+            ElMessage.warning(`已存在接收名單中`);
+        }
     };
 
     const removeFromColumn3 = (index) => {
@@ -257,17 +265,29 @@
         const requestData = { showSchool: false };
         //const requestData = { showSchool: false, countryId: "CN" };
         //const requestData = { showSchool: false, countryId: "TW" };
-
-        //debugger;
+                
         try {
 
-            //const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
-
-            const apiUrl = 'https://' + new_msg_host.value + '/notice/get-geos';
+            const response = await proxy.$api.getGeos(requestData);
+            console.log(response, '发送消息返回');
+
+            if (response.state === 200) {
+                //ElMessage.success('消息发送成功');
+                // 在这里执行后续操作,确保数据已获取
+                const data = response.data; // 假设返回的数据在 `response.data` 中
+                console.log(data, '地理資訊');
+                // 后续逻辑处理
+            } else {
+                ElMessage.error('取得資訊失败,状态码错误');
+            }
 
-            const response = await axios.post(apiUrl, requestData);
+            ////const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
+            //
+            //const apiUrl = 'https://' + new_msg_host.value + '/notice/get-geos';
+            //
+            //const response = await axios.post(apiUrl, requestData);
 
-            const { state, data } = response.data;
+            const { state, data } = response;
             if (state === 200) {
                 items.value = data.map((area) => ({
                     id: area.id,
@@ -289,12 +309,25 @@
         const requestData = { showSchool: false, provinceId: provinceId };
         //const requestData = { showSchool: false, countryId: "CN", provinceId };
 
-        debugger;
-
+        //debugger;                
         try {
-            const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
 
-            const { state, data } = response.data;
+            const response = await proxy.$api.getGeos(requestData);
+            console.log(response, '发送消息返回');
+
+            if (response.state === 200) {
+                //ElMessage.success('消息发送成功');
+                // 在这里执行后续操作,确保数据已获取
+                const data = response.data; // 假设返回的数据在 `response.data` 中
+                console.log(data, '地理資訊');
+                // 后续逻辑处理
+            } else {
+                ElMessage.error('取得資訊失败,状态码错误');
+            }
+
+            //const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
+
+            const { state, data } = response;
 
             // 成功取得資料的話,進行資料的 Mapping, 組成 City list
             if (state === 200) {
@@ -311,10 +344,12 @@
             ElMessage.error("网络错误,请检查后重试!");
         }
     };
-    // 取得地理資訊(省)
+    // 取得學校資訊 
     const isLoading = ref(false); // 加载状态
     const fetchSchoolDataByCity = async (provinceId, cityId) => {
 
+        debugger;
+
         isLoading.value = true; // 开始加载
 
         const requestData = { showSchool: false, countryId: "CN", provinceId, cityId };
@@ -322,8 +357,24 @@
         //调用 fetchSchoolDataByCity 时,isLoading 置为 true
 
         try {
-            const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
-            const { state, data } = response.data;
+
+            const response = await proxy.$api.getGeos(requestData);
+            console.log(response, '发送消息返回');
+
+            if (response.state === 200) {
+                //ElMessage.success('消息发送成功');
+                // 在这里执行后续操作,确保数据已获取
+                const data = response.data; // 假设返回的数据在 `response.data` 中
+                console.log(data, '地理資訊');
+                // 后续逻辑处理
+            } else {
+                ElMessage.error('取得資訊失败,状态码错误');
+            }
+
+
+            //const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
+
+            const { state, data } = response;
 
             if (state === 200) {
                 subItems.value = data.map((area) => ({

+ 29 - 20
TEAMModelBI/ClientApp/src/view/systemConfig/NewMsg/geos_info_id.vue

@@ -23,8 +23,8 @@
                 <div v-for="(item, index) in cityItems"
                         :key="index"
                         :class="{'active': activeIndex2 === index}"
-                        class="list-item">
-                        <!--- @click="setCityActive(index)"> -->
+                        class="list-item"
+                        @click="setCityActive(index)">
                     {{ item.name }}
                     {{ item.scCnt }} 校
                     {{ item.tchCnt }} 人
@@ -198,21 +198,21 @@
         fetchCityDataByProvince(selectedProvinceId);
     };
 
-//    // 點擊 City 後, 取得所屬 City 的學校列表
-//    const setCityActive = (index) => {
-//
-//        // 設置當前選中的 City Index
-//        activeIndex2.value = index;
-//
-//        // 取得地理資訊中的 City ID
-//        const selectedCityId = cityItems.value[index].id;
-//
-//        // 取得地理資訊中的 Province ID
-//        const selectProvinceId = items.value[activeIndex.value].id;
-//
-//        // 由地理資訊的 City ID, 取得學校數據
-//        fetchSchoolDataByCity(selectProvinceId, selectedCityId); // 获取学校数据
-//    };
+    // 點擊 City 後, 取得所屬 City 的學校列表
+    const setCityActive = (index) => {
+
+        // 設置當前選中的 City Index
+        activeIndex2.value = index;
+
+        // 取得地理資訊中的 City ID
+        const selectedCityId = cityItems.value[index].id;
+
+        // 取得地理資訊中的 Province ID
+        const selectProvinceId = items.value[activeIndex.value].id;
+
+        // 由地理資訊的 City ID, 取得學校數據
+        fetchSchoolDataByCity(selectProvinceId, selectedCityId); // 获取学校数据
+    };
 
     const setSchoolActive = (index) => {
 
@@ -221,7 +221,13 @@
     };
 
     const addToColumn3 = (item) => {
-        column3Items.value.push(item);
+
+        if (!column3Items.value.includes(item)) {
+            column3Items.value.push(item);
+            ElMessage.success(`已加入接收名單`);
+        } else {
+            ElMessage.warning(`已存在接收名單中`);
+        }
     };
 
     const removeFromColumn3 = (index) => {
@@ -290,8 +296,11 @@
         //调用 fetchSchoolDataByCity 时,isLoading 置为 true
 
         try {
-            const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
-            const { state, data } = response.data;
+
+
+            //const response = await axios.post("https://localhost:5001/notice/get-geos", requestData);
+
+            const { state, data } = response;
 
             if (state === 200) {
                 subItems.value = data.map((area) => ({

+ 1 - 1
TEAMModelBI/ClientApp/src/view/systemConfig/NewMsg/new_msg_BatchSelect.vue

@@ -164,7 +164,7 @@
         </el-col>
     </el-row>
 
-    <el-row style="height: 10vh; display: flex; justify-content: center; align-items: center;">
+    <el-row style="height: 10vh; display: flex; justify-content: center; align-items: center;padding-top:15px;">
         <!-- 上一步按钮,触发父组件事件,将 active 设置为 0 -->
         <el-button type="primary" @click="goPreviousStep">上一步</el-button>
         <el-button type="primary" @click="goNextStep">下一步</el-button>

+ 34 - 20
TEAMModelBI/ClientApp/src/view/systemConfig/NewMsg/school_district.vue

@@ -89,10 +89,11 @@
 </template>
 
 <script setup>
-import { ref, computed, onMounted, provide,inject } from "vue";
+import { ref, computed, onMounted, provide, inject, getCurrentInstance } from "vue";
 import { ElMessage } from "element-plus";
 import axios from "axios";
 import { CloseBold } from "@element-plus/icons-vue";
+let { proxy } = getCurrentInstance()
 
 // 动态获取的学区和学校数据
 const items = ref([]); // 学区列表(父级菜单)
@@ -158,16 +159,16 @@ const setActive2 = (index) => {
 // 添加到第三列 (响应式触发更新)
     const addToColumn3 = (item) => {
                 
-        column3Items.value.push(item);
-
-        console.log(column3Items.value);
+        //column3Items.value.push(item);        
+        //console.log(column3Items.value);
     
-    //if (!column3Items.value.includes(item)) {
-    //    column3Items.value.push(item);
-    //    ElMessage.success(`${item} 已加入接收名單`);
-    //} else {
-    //    ElMessage.warning(`${item} 已存在接收名單中`);
-    //}
+        if (!column3Items.value.includes(item)) {
+            column3Items.value.push(item);
+            //ElMessage.success(`${item.name} 已加入接收名單`);
+            ElMessage.success(`已加入接收名單`);
+        } else {
+            ElMessage.warning(`已存在接收名單中`);
+        }
 };
 
 
@@ -182,17 +183,30 @@ const fetchData = async () => {
     //設定 show 學校列表
     const requestData = { showList: true };  
 
+    // 取得學區資訊
     try {
-
-        const apiUrl = 'https://' + new_msg_host.value + '/notice/get-areas';
-        // https://localhost:5001/notice/get-areas
-
-        const response = await axios.post(
-            apiUrl,
-            requestData
-        );
-
-        const { state, result } = response.data;
+        const response = await proxy.$api.getAreas(requestData);
+        console.log(response, '发送消息返回');
+
+        if (response.state === 200) {
+            //ElMessage.success('消息发送成功');
+            // 在这里执行后续操作,确保数据已获取
+            const data = response.data; // 假设返回的数据在 `response.data` 中
+            console.log(data, '学区资料');
+            // 后续逻辑处理
+        } else {
+            ElMessage.error('取得資訊失败,状态码错误');
+        }    
+
+        //const apiUrl = 'https://' + new_msg_host.value + '/notice/get-areas';
+        //// https://localhost:5001/notice/get-areas
+        //
+        //const response = await axios.post(
+        //    apiUrl,
+        //    requestData
+        //);
+
+        const { state, result } = response;
     
         if (state === 200) {
 

+ 22 - 16
TEAMModelBI/ClientApp/src/view/systemConfig/NewMsg/units_info.vue

@@ -82,17 +82,15 @@
         </el-col>
     </el-row>
 
-    <div v-if="false">
-        <!-- 获取学区数据按钮 -->
-        <el-button type="primary" @click="fetchData">获取学区信息</el-button>
-    </div>
+    
 </template>
 
 <script setup>
-    import { ref, computed, onMounted, provide, inject } from "vue";
+    import { ref, computed, onMounted, provide, inject, getCurrentInstance } from "vue";
     import { ElMessage } from "element-plus";
     import axios from "axios";
     import { CloseBold } from "@element-plus/icons-vue";
+    let { proxy } = getCurrentInstance()
 
     // 动态获取的学区和学校数据
     const items = ref([]); // 学区列表(父级菜单)
@@ -164,10 +162,12 @@
     // 添加到第三列 (响应式触发更新)
     const addToColumn3 = (item) => {
 
-        //debugger;
-        if (!item) return; // 更通用的检查
-
-        column3Items.value.push(item);
+        if (!column3Items.value.includes(item)) {
+            column3Items.value.push(item);
+            ElMessage.success(`已加入接收名單`);
+        } else {
+            ElMessage.warning(`已存在接收名單中`);
+        }
     };
 
     // 从第三列移除
@@ -182,15 +182,17 @@
         
         try {
 
+            const response = await proxy.$api.getUnits(requestData);
+            console.log(response, '发送消息返回');
 
-            const apiUrl = 'https://' + new_msg_host.value + '/notice/get-units';
+            //const apiUrl = 'https://' + new_msg_host.value + '/notice/get-units';
 
             //const response = await axios.post("https://localhost:5001/notice/get-units", requestData);
 
-            const response = await axios.post(apiUrl, requestData);
+            //const response = await axios.post(apiUrl, requestData);
 
                 
-            const { state, data } = response.data;
+            const { state, data } = response;
 
             if (state === 200 && Array.isArray(data)) {
                 // 将所有学校数据提取到一个数组中
@@ -220,16 +222,20 @@
             ElMessage.error("网络错误,请检查后重试!");
         }
     };
-    // 获取学区和学校数据
+    // 获取教育機構数据
     const fetchData = async () => {
-
+        
         //設定 show 學校列表
         const requestData = { type: "" };
 
         try {
-            const response = await axios.post("https://localhost:5001/notice/get-units", requestData);
+
+            const response = await proxy.$api.getUnits(requestData);
+            console.log(response, '发送消息返回');
+
+            //const response = await axios.post("https://localhost:5001/notice/get-units", requestData);
   
-            const { state, data } = response.data;
+            const { state, data } = response;
 
             if (state === 200) {