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