修改获取建制接口

This commit is contained in:
WindowBird 2025-08-27 17:33:10 +08:00
parent a463bdde89
commit 8f1d5ff473
3 changed files with 133 additions and 147 deletions

View File

@ -1,5 +1,5 @@
// 建制相关API // 建制相关API
import { get, post, put, del } from '@/utils/request' import { del, get, post, put } from "@/utils/request";
/** /**
* 获取建制数据列表 * 获取建制数据列表
@ -14,11 +14,12 @@ export function getInstitutionalList(params = {}) {
const defaultParams = { const defaultParams = {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
orderByColumn: 'createTime', orderByColumn: "createTime",
isAsc: 'descending', isAsc: "descending",
} states: "",
};
return get('/app/formed/listFormed', { ...defaultParams, ...params }) return get("/app/formed/listFormed", { ...defaultParams, ...params });
} }
/** /**
@ -27,7 +28,7 @@ export function getInstitutionalList(params = {}) {
* @returns {Promise} 返回建制详情 * @returns {Promise} 返回建制详情
*/ */
export function getInstitutionalDetail(id) { export function getInstitutionalDetail(id) {
return get(`/app/formed/getFormed/${id}`) return get(`/app/formed/getFormed/${id}`);
} }
/** /**
@ -36,7 +37,7 @@ export function getInstitutionalDetail(id) {
* @returns {Promise} 返回创建结果 * @returns {Promise} 返回创建结果
*/ */
export function createInstitutional(data) { export function createInstitutional(data) {
return post('/app/formed/createFormed', data) return post("/app/formed/createFormed", data);
} }
/** /**
@ -45,7 +46,7 @@ export function createInstitutional(data) {
* @returns {Promise} 返回更新结果 * @returns {Promise} 返回更新结果
*/ */
export function updateInstitutional(data) { export function updateInstitutional(data) {
return put('/app/formed/updateFormed', data) return put("/app/formed/updateFormed", data);
} }
/** /**
@ -54,5 +55,5 @@ export function updateInstitutional(data) {
* @returns {Promise} 返回删除结果 * @returns {Promise} 返回删除结果
*/ */
export function deleteInstitutional(id) { export function deleteInstitutional(id) {
return del(`/app/formed/deleteFormed/${id}`) return del(`/app/formed/deleteFormed/${id}`);
} }

View File

@ -2,59 +2,60 @@
<view class="page"> <view class="page">
<custom-navbar ref="customNavbar" title="基础页面" /> <custom-navbar ref="customNavbar" title="基础页面" />
<tile-grid /> <tile-grid />
<view class="header" :style="{ backgroundColor: CommonEnum.BASE_COLOR }"> <view :style="{ backgroundColor: CommonEnum.BASE_COLOR }" class="header">
<!-- 状态展示 --> <!-- 状态展示 -->
<status-display v-if="loading" type="loading" loading-text="加载中..." /> <status-display v-if="loading" loading-text="加载中..." type="loading" />
<!-- 页面内容将在这里添加 --> <!-- 页面内容将在这里添加 -->
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import CommonEnum from '../../enum/common' import CommonEnum from "../../enum/common";
export default { export default {
components: {}, components: {},
data() { data() {
return { return {
CommonEnum, CommonEnum,
loading: false, loading: false,
} };
}, },
onLoad() { onLoad() {
// //
this.loadPageData() this.loadPageData();
}, },
methods: { methods: {
// //
async loadPageData() { async loadPageData() {
this.loading = true this.loading = true;
try { try {
// TODO: API // TODO: API
// const response = await getPageData() // const response = await getPageData()
// //
setTimeout(() => { setTimeout(() => {
this.loading = false this.loading = false;
}, 1000) }, 1000);
} catch (error) { } catch (error) {
console.error('获取页面数据失败:', error) console.error("获取页面数据失败:", error);
this.loading = false this.loading = false;
} }
}, },
}, },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page { .page {
background: #f5f0e7; background: #f5f0e7;
} }
.header { .header {
width: 100%; width: 100%;
//min-height: 100vh;// //min-height: 100vh;//
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
flex-direction: column; flex-direction: column;
padding: 0 15rpx; padding: 0 15rpx 40rpx;
padding-bottom: 40rpx;
} }
</style> </style>

View File

@ -4,19 +4,19 @@
<tile-grid /> <tile-grid />
<view class="header"> <view class="header">
<!-- 状态展示 --> <!-- 状态展示 -->
<status-display v-if="loading" type="loading" loading-text="加载中..." /> <status-display v-if="loading" loading-text="加载中..." type="loading" />
<status-display <status-display
v-else-if="institutionalData.length === 0" v-else-if="institutionalData.length === 0"
type="empty"
empty-text="暂无数据" empty-text="暂无数据"
type="empty"
/> />
<!-- 数据列表 --> <!-- 数据列表 -->
<institutional-item <institutional-item
v-else
v-for="(item, index) in institutionalData" v-for="(item, index) in institutionalData"
v-else
:key="index" :key="index"
:item="item"
:index="index" :index="index"
:item="item"
@view-detail="handleViewDetail" @view-detail="handleViewDetail"
/> />
</view> </view>
@ -24,14 +24,14 @@
</template> </template>
<script> <script>
import { getInstitutionalList } from '@/api/institutionalStructure/institutionalStructure.js' import { getInstitutionalList } from "@/api/institutionalStructure/institutionalStructure.js";
import CustomNavbar from '../../components/custom-navbar/custom-navbar.vue' import CustomNavbar from "../../components/custom-navbar/custom-navbar.vue";
import TileGrid from '../../components/tile-grid/tile-grid.vue' import TileGrid from "../../components/tile-grid/tile-grid.vue";
import InstitutionalItem from './components/institutional-item.vue' import InstitutionalItem from "./components/institutional-item.vue";
import StatusDisplay from '../../components/status-display/status-display.vue' import StatusDisplay from "../../components/status-display/status-display.vue";
import { InstitutionalDataFormatter } from './utils/data-formatter.js' import { InstitutionalDataFormatter } from "./utils/data-formatter.js";
import { dataManagerMixin } from './mixins/data-manager.js' import { dataManagerMixin } from "./mixins/data-manager.js";
import CommonEnum from '../../enum/common' import CommonEnum from "../../enum/common";
export default { export default {
mixins: [dataManagerMixin], mixins: [dataManagerMixin],
@ -49,71 +49,55 @@
}, },
// //
institutionalData: [], institutionalData: [],
} pageStatus: "",
};
}, },
onLoad() { onLoad() {
// //
this.getInstitutionalData() this.getInstitutionalData();
}, },
methods: { methods: {
// //
async getInstitutionalData(isLoadMore = false) { async getInstitutionalData() {
console.log('开始获取建制数据, isLoadMore:', isLoadMore) const res = await getInstitutionalList(this.pageStatus);
const rawData = res.rows;
this.institutionalData =
InstitutionalDataFormatter.transformData(rawData);
try { try {
if (isLoadMore) { console.log("建制数据已更新, 数量:", this.institutionalData.length);
await this.loadMoreData({
apiCall: getInstitutionalList,
dataTransformer: InstitutionalDataFormatter.transformData,
onSuccess: (data, response) => {
console.log('建制数据加载更多成功:', data.length, '条')
this.institutionalData = this.dataList
},
})
} else {
await this.refreshData({
apiCall: getInstitutionalList,
dataTransformer: InstitutionalDataFormatter.transformData,
onSuccess: (data, response) => {
console.log('建制数据刷新成功:', data.length, '条')
this.institutionalData = this.dataList
},
})
}
console.log('建制数据已更新, 数量:', this.institutionalData.length)
} catch (error) { } catch (error) {
console.error('获取建制数据失败:', error) console.error("获取建制数据失败:", error);
uni.showToast({ uni.showToast({
title: '获取数据失败', title: "获取数据失败",
icon: 'none', icon: "none",
}) });
} }
}, },
// //
handleViewDetail(data) { handleViewDetail(data) {
console.log('查看详细:', data.item) console.log("查看详细:", data.item);
// ID // ID
uni.navigateTo({ uni.navigateTo({
url: `/pages/institutionalStructure/donationRecord?formedId=${data.item.formedId}`, url: `/pages/institutionalStructure/donationRecord?formedId=${data.item.formedId}`,
fail: err => { fail: (err) => {
console.error('跳转失败:', err) console.error("跳转失败:", err);
uni.showToast({ uni.showToast({
title: '页面跳转失败', title: "页面跳转失败",
icon: 'none', icon: "none",
}) });
}, },
}) });
}, },
}, },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
page { page {
background: #f5f0e7; background: #f5f0e7;
} }
.header { .header {
width: 100%; width: 100%;
min-height: 100vh; min-height: 100vh;