From cd8bb25c6b07c81d0740714e45c3ce77bf724054 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期三, 04 六月 2025 16:45:35 +0800 Subject: [PATCH] 公司切换功能开发 --- src/api/system/user.js | 4 src/store/modules/user.js | 3 src/views/login.vue | 9 +- src/layout/components/Navbar.vue | 63 ++++++++++++++++++++- src/views/salesManagement/receiptPaymentHistory/index.vue | 34 ++++++++--- src/api/salesManagement/receiptPayment.js | 9 +++ 6 files changed, 101 insertions(+), 21 deletions(-) diff --git a/src/api/salesManagement/receiptPayment.js b/src/api/salesManagement/receiptPayment.js index 14695f1..0311aaf 100644 --- a/src/api/salesManagement/receiptPayment.js +++ b/src/api/salesManagement/receiptPayment.js @@ -54,3 +54,12 @@ params: query }) } + +// 鍒嗛〉鏌ヨ +export function receiptPaymentHistoryList(query) { + return request({ + url: '/receiptPayment/receiptPaymentHistoryList', + method: 'get', + params: query + }) +} diff --git a/src/api/system/user.js b/src/api/system/user.js index 4ce34da..7192d9b 100644 --- a/src/api/system/user.js +++ b/src/api/system/user.js @@ -142,9 +142,9 @@ }) } // 閮ㄩ棬鍒楄〃 -export function userDeptList(params) { +export function userLoginFacotryList(params) { return request({ - url: '/userDeptList', + url: '/userLoginFacotryList', method: 'get', params: params }) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 08131c3..2574903 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -6,7 +6,24 @@ </div> <!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />--> <div class="center-menu"> - <span class="label">MIS绯荤粺锛堢鐞嗕俊鎭郴缁燂級</span> + <span class="label">{{userStore.currentFactoryName}}</span> + <el-dropdown @command="handleFactoryChange" class="right-menu-item hover-effect" trigger="click"> + <div class="avatar-wrapper"> + <el-icon><Switch /></el-icon> + </div> + <template #dropdown> + <el-dropdown-menu > + <el-dropdown-item + v-for="item in factoryList" + :key="item.deptId" + :command="item" + > + {{ item.deptName }} + </el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + </div> <div class="right-menu"> <div class="avatar-container"> @@ -47,11 +64,14 @@ import useAppStore from '@/store/modules/app' import useUserStore from '@/store/modules/user' import useSettingsStore from '@/store/modules/settings' +import { userLoginFacotryList } from "@/api/system/user.js" +import Cookies from "js-cookie"; +import { decrypt } from "@/utils/jsencrypt" const appStore = useAppStore() const userStore = useUserStore() const settingsStore = useSettingsStore() - +const factoryList = ref([]) function toggleSideBar() { appStore.toggleSideBar() } @@ -89,6 +109,43 @@ function toggleTheme() { settingsStore.toggleTheme() } + +function getUserLoginFacotryList() { + if(userStore.id){ + userLoginFacotryList({userId:userStore.id}).then(res => { + console.log('res', res) + factoryList.value = res.data + }) + }else { + factoryList.value = [] + } +} + +function handleFactoryChange(command) { + console.log('command', command) + handleLogin(command.deptId); +} + +function handleLogin(currentFatoryId){ + const loginForm = { + username: Cookies.get("username"), + password: Cookies.get("password") === undefined ? null : decrypt(Cookies.get("password")), + currentFatoryId: currentFatoryId + } + userStore.loginCheckFactory(loginForm).then(res => { + const query = route.query + const otherQueryParams = Object.keys(query).reduce((acc, cur) => { + if (cur !== "redirect") { + acc[cur] = query[cur] + } + return acc + }, {}) + router.push({ path: redirect.value || "/", query: otherQueryParams }) + }).catch(() => { + }) +} + +getUserLoginFacotryList(); </script> <style lang='scss' scoped> @@ -170,7 +227,7 @@ svg { transition: transform 0.3s; - + &:hover { transform: scale(1.15); } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index ba555bc..5623661 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -50,6 +50,7 @@ this.id = user.userId this.name = user.userName this.avatar = avatar + this.currentFactoryName = user.currentFactoryName this.nickName = user.nickName resolve(res) }).catch(error => { @@ -87,7 +88,7 @@ loginCheckFactory(userInfo) { const username = userInfo.username.trim() const password = userInfo.password - const factoryId = userInfo.factoryId + const factoryId = userInfo.currentFatoryId return new Promise((resolve, reject) => { loginCheckFactory(username, password, factoryId).then(res => { setToken(res.token) diff --git a/src/views/login.vue b/src/views/login.vue index cc98f6b..d8b9a9a 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -77,7 +77,7 @@ import Cookies from "js-cookie" import { encrypt, decrypt } from "@/utils/jsencrypt" import useUserStore from '@/store/modules/user' -import {userDeptList} from "@/api/system/user.js" +import {userLoginFacotryList} from "@/api/system/user.js" const title = import.meta.env.VITE_APP_TITLE const userStore = useUserStore() @@ -169,21 +169,20 @@ } } -function deptListSearch() { +function getUserLoginFacotryList() { if(loginForm.value.username){ - userDeptList({userName:loginForm.value.username}).then(res => { + userLoginFacotryList({userName:loginForm.value.username}).then(res => { console.log('res', res) factoryList.value = res.data }) }else { factoryList.value = [] } - } getCode() getCookie() -deptListSearch() +getUserLoginFacotryList() </script> <style lang='scss' scoped> diff --git a/src/views/salesManagement/receiptPaymentHistory/index.vue b/src/views/salesManagement/receiptPaymentHistory/index.vue index 52e29d1..0fd8eef 100644 --- a/src/views/salesManagement/receiptPaymentHistory/index.vue +++ b/src/views/salesManagement/receiptPaymentHistory/index.vue @@ -2,8 +2,8 @@ <div class="app-container"> <div class="search_form"> <div> - <span class="search_title">渚涘簲鍟嗗悕绉帮細</span> - <el-input v-model="searchForm.searchText" style="width: 240px" placeholder="杈撳叆渚涘簲鍟嗗悕绉版悳绱�" + <span class="search_title">瀹㈡埛鍚嶇О锛�</span> + <el-input v-model="searchForm.searchText" style="width: 240px" placeholder="杈撳叆瀹㈡埛鍚嶇О鎼滅储" @change="handleQuery" clearable :prefix-icon="Search" /> <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button> </div> @@ -20,25 +20,38 @@ import { ref } from 'vue' import { Search } from "@element-plus/icons-vue"; import { - paymentHistoryList -} from "@/api/procurementManagement/paymentEntry.js"; + receiptPaymentHistoryList +} from "@/api/salesManagement/receiptPayment.js"; const { proxy } = getCurrentInstance() const tableColumn = ref([ { label: '鍥炴鏃ユ湡', - prop: 'paymentDate', + prop: 'receiptPaymentDate', }, { label: '瀹㈡埛鍚嶇О', - prop: 'supplierName', + prop: 'customerName', }, { label: '鍥炴閲戦', - prop: 'currentPaymentAmount', + prop: 'receiptPaymentAmount', }, { label: '鍥炴鏂瑰紡', - prop: 'paymentMethod' + prop: 'receiptPaymentType', + dataType: 'tag', + formatData: (params) => { + if (params == 0) { + return '鐢垫眹'; + } else if (params == 1) { + return '鎵垮厬'; + } else { + return null + } + }, + formatType: (params) => { + return "info" + } }, { label: '鐧昏浜�', @@ -46,7 +59,7 @@ }, { label: '鐧昏鏃ユ湡', - prop: 'registrationtDate' + prop: 'createTime' } ]) const tableData = ref([]) @@ -63,6 +76,7 @@ }, }) const { searchForm } = toRefs(data) +const { receipt_payment_type } = proxy.useDict("receipt_payment_type") // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ @@ -77,7 +91,7 @@ } const getList = () => { tableLoading.value = true - paymentHistoryList({ ...searchForm.value, ...page }).then(res => { + receiptPaymentHistoryList({ ...searchForm.value, ...page }).then(res => { tableLoading.value = false tableData.value = res.rows total.value = res.total -- Gitblit v1.9.3