diff --git a/src/App.vue b/src/App.vue index c6efe6a..3fa6268 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,9 +8,12 @@ import { useSettingStore } from "./stores/setting"; import { getLiquidList } from "./services/liquid/liquidManage"; import { useStatusStore } from "./stores/status"; import { ElMessage } from "element-plus"; +import { getUserList } from "./services/user/userManager"; +import { useUserStore } from "./stores/user"; const router = useRouter(); const settingStore = useSettingStore(); const statusStore = useStatusStore(); +const userStore = useUserStore(); const wsClient = createWebSocket(sharedWsUrl); wsClient.dataOb.subscribe(data => { @@ -47,6 +50,11 @@ onMounted(() => { settingStore.setContainerConf(res.data); } }); + getUserList({ pageNum: 1, pageSize: 9999 }).then(res => { + if (res.success) { + userStore.setUserList(res.data.list); + } + }); }); diff --git a/src/services/experience/experienceList.ts b/src/services/experience/experienceList.ts new file mode 100644 index 0000000..5f2556f --- /dev/null +++ b/src/services/experience/experienceList.ts @@ -0,0 +1,17 @@ +import type { BaseResponse } from "../httpRequest"; +import httpRequest from "../httpRequest"; + +export type ExperienceRecord = { + id: number; + name: string; + startTime: string; + createUser: number; +}; + +export function getExperienceRecords(params: { pageNum: number; pageSize: number }) { + return httpRequest>({ url: "/api/tasks/list", params }); +} + +export function deleteExperienceRecords(ids: string) { + return httpRequest({ url: `/api/tasks/${ids}`, method: "DELETE" }); +} diff --git a/src/stores/setting.ts b/src/stores/setting.ts index 9075692..4420a68 100644 --- a/src/stores/setting.ts +++ b/src/stores/setting.ts @@ -24,8 +24,8 @@ export const useSettingStore = defineStore("setting", () => { }; // 酸液列表 ID映射表: 使用方法 liquidIdMap.value[液体ID] -> Liquid对象 const liquidIdMap = computed(() => { - return R.reduce( - (acc: { [p: number]: Liquid }, curr: Liquid) => { + return R.reduce( + (acc, curr) => { acc[curr.id] = curr; return acc; }, @@ -39,10 +39,8 @@ export const useSettingStore = defineStore("setting", () => { return containerConf.value.filter(c => c.type === 0); }); // 配置了酸液的桶 - const heatContainerWithLiquid = computed(() => { - return heatContainers.value - .filter(c => c.solutionId) - .map(c => ({ ...c, solution: liquidIdMap.value[c.solutionId] } as ContainerWithLiquid)); + const heatContainerWithLiquid = computed(() => { + return heatContainers.value.filter(c => c.solutionId).map(c => ({ ...c, solution: liquidIdMap.value[c.solutionId] })); }); // 配置了桶的酸液 const availableLiquids = computed(() => { diff --git a/src/stores/user.ts b/src/stores/user.ts index e6aaebf..f62f9e3 100644 --- a/src/stores/user.ts +++ b/src/stores/user.ts @@ -1,6 +1,7 @@ import type { User } from "@/services/user/userManager"; import { defineStore } from "pinia"; -import { ref } from "vue"; +import { computed, ref } from "vue"; +import * as R from "ramda"; export const useUserStore = defineStore("user", () => { const user = ref(); @@ -8,5 +9,21 @@ export const useUserStore = defineStore("user", () => { user.value = usr; }; - return { user, setUser }; + const userList = ref(); + const setUserList = (users: User[]) => { + userList.value = users; + }; + + const userIdMap = computed(() => { + return R.reduce( + (acc, curr) => { + acc[curr.id] = curr; + return acc; + }, + {}, + userList.value || [] + ); + }); + + return { user, setUser, userList, setUserList, userIdMap }; }); diff --git a/src/views/expeRecord/index.vue b/src/views/expeRecord/index.vue index ac6c3cb..f15ef92 100644 --- a/src/views/expeRecord/index.vue +++ b/src/views/expeRecord/index.vue @@ -1,33 +1,49 @@ @@ -35,10 +51,56 @@ diff --git a/src/views/userManage/UserManage.vue b/src/views/userManage/UserManage.vue index 246f693..73d87e4 100644 --- a/src/views/userManage/UserManage.vue +++ b/src/views/userManage/UserManage.vue @@ -60,7 +60,9 @@ import { showToast } from "vant"; import { onMounted, ref } from "vue"; import { createUser, deleteUser, getUserList, type User } from "@/services/user/userManager"; import AddUser from "./components/AddUser.vue"; +import { useUserStore } from "@/stores/user"; +const userStore = useUserStore() const showEditDialog = ref(false); const userList = ref([]); @@ -70,6 +72,7 @@ function getUsers() { getUserList({ pageNum: 1, pageSize: 9999 }).then(res => { if (res.success) { userList.value = res.data.list; + userStore.setUserList(res.data.list); } else { showToast(res.msg); }