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