Browse Source

登录页面选择工厂

master
han\hanst 4 months ago
parent
commit
6542035a05
  1. 5
      src/api/factory/accessSite.js
  2. 46
      src/views/common/login.vue
  3. 59
      src/views/main.vue
  4. 20
      src/views/modules/recv/recv.vue

5
src/api/factory/accessSite.js

@ -5,3 +5,8 @@ export const getUserAccessSiteList = data => createAPI(`/accessSite/list`,'post'
// 保存用户工厂信息
export const saveUserAccessSiteList = data => createAPI(`/accessSite/saveUserAccessSiteList`,'post',data)
/**
* 根据用户名获取用户授权的工厂列表
* @param {Object} data - 包含用户名的参数对象
*/
export const getUserAuthorizedSites = data => createAPI(`accessSite/getUserAuthorizedSites`, 'post', data)

46
src/views/common/login.vue

@ -94,6 +94,8 @@
<script>
import {searchSysLanguage} from "@/api/sysLanguage.js"
import {getUserAuthorizedSites} from "@/api/factory/accessSite.js"
export default {
data() {
return {
@ -106,8 +108,7 @@ export default {
passwordFocus: false,
showPassword: false,
loading: false,
siteList: [{ "siteCode": "1", "siteName": "苏州工厂" },
{ "siteCode": "2", "siteName": "南京工厂" }],
siteList: [],
languageList: [],
selectedSite: ''
};
@ -128,7 +129,46 @@ export default {
location.reload()
},
handleUsernameBlur() {
//
if (this.dataForm.userName && this.dataForm.userName.trim()) {
this.getUserSiteList(this.dataForm.userName);
} else {
this.siteList = [];
this.selectedSite = '';
}
this.usernameFocus = false;
},
//
getUserSiteList(userName) {
if (!userName || !userName.trim()) {
this.siteList = [];
this.selectedSite = '';
return;
}
this.siteLoading = true;
getUserAuthorizedSites({ userName: userName.trim() }).then(({data}) => {
this.siteLoading = false;
if (data && data.code === 0) {
this.siteList = data.data || data.list || [];
//
this.selectedSite = '';
//
if (this.siteList.length === 1) {
this.selectedSite = this.siteList[0].siteCode;
}
} else {
this.siteList = [];
this.selectedSite = '';
this.$message.error(data.msg || '获取工厂列表失败');
}
}).catch(error => {
this.siteLoading = false;
this.siteList = [];
this.selectedSite = '';
console.error('获取工厂列表失败:', error);
this.$message.error('获取工厂列表失败');
})
},
dataFormSubmit() {
if (!this.selectedSite) {
@ -153,7 +193,7 @@ export default {
localStorage.setItem('site', this.selectedSite);
this.$store.commit('user/updateSite', this.selectedSite);
this.$router.replace({ name: 'home' });
} else {
this.$alert("用户名或密码错误", '错误', {

59
src/views/main.vue

@ -199,26 +199,71 @@ export default {
}
.logout-button {
background: #ff4c52;
background: rgba(255, 255, 255, 0.15);
color: white;
padding: 8px 16px;
border-radius: 20px;
padding: 6px 12px;
border-radius: 16px;
cursor: pointer;
display: flex;
align-items: center;
font-size: 14px;
font-weight: bold;
font-size: 13px;
font-weight: 400;
transition: all 0.3s ease;
min-width: 55px;
justify-content: center;
border: 1px solid rgba(255, 255, 255, 0.3);
backdrop-filter: blur(10px);
position: relative;
overflow: hidden;
}
.logout-button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s ease;
}
.logout-button:hover {
background: #ff6b6b;
transform: scale(1.05);
background: rgba(255, 255, 255, 0.25);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.logout-button:hover::before {
left: 100%;
}
.logout-button:active {
transform: translateY(0);
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.logout-button i {
margin-right: 6px;
font-size: 14px;
flex-shrink: 0;
}
.logout-button span {
white-space: nowrap;
}
.logout-button {
padding: 5px 10px;
font-size: 12px;
min-width: 50px;
border-radius: 14px;
}
.logout-button i {
margin-right: 4px;
font-size: 12px;
}
/* 内容区域 */

20
src/views/modules/recv/recv.vue

@ -30,19 +30,19 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="商品描述"><span>{{ poDetail.desc }}</span></el-form-item>
<el-form-item label="商品描述"><span>{{ poDetail.description }}</span></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="订单数量"><span>{{ poDetail.qty }}</span></el-form-item>
<el-form-item label="订单数量"><span>{{ poDetail.purchaseQty }}</span></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="待收数量"><span>{{ poDetail.recvQty }}</span></el-form-item>
<el-form-item label="待收数量"><span>{{ poDetail.qtyToReceive }}</span></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="此次接收数量"><span>{{ poDetail.thisRecvQty }}</span></el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item style="margin-left: 20px" label="单位"><span>{{ poDetail.unit }}</span></el-form-item>
<el-form-item style="margin-left: 20px" label="单位"><span>{{ poDetail.inventoryUOM }}</span></el-form-item>
</el-col>
</el-row>
</el-form>
@ -53,13 +53,13 @@
<div v-if="processFlag === 2">
<el-form label-position="top" class="form-section" style="margin: 5px;">
<el-row :gutter="20">
<el-col :span="12"><el-form-item label="PO号码"><el-input v-model="recvItem.poNumber" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="PO号码"><el-input v-model="recvItem.orderNo" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="行号/下达号"><el-input v-model="displayLineWdr" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="商品编码"><el-input v-model="recvItem.partNo" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="计量单位"><el-input v-model="recvItem.unit" disabled /></el-form-item></el-col>
<el-col :span="24"><el-form-item label="商品名称"><el-input v-model="recvItem.desc" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="订单数量"><el-input v-model="recvItem.qty" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="待收数量"><el-input v-model="recvItem.dueinQty" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="计量单位"><el-input v-model="recvItem.inventoryUOM" disabled /></el-form-item></el-col>
<el-col :span="24"><el-form-item label="商品名称"><el-input v-model="recvItem.description" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="订单数量"><el-input v-model="recvItem.purchaseQty" disabled /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="待收数量"><el-input v-model="recvItem.qtyToReceive" disabled /></el-form-item></el-col>
<el-col :span="12">
<el-form-item label="此次接收数量">
<el-input v-model="recvItem.transQty" :disabled="recvItem.needHandlingUnit === 'Y'" />
@ -158,7 +158,7 @@ export default {
this.recvItem = {
...row,
poNo: row.poNumber || this.scanCode,
dueinQty: row.recvQty || row.thisRecvQty,
dueinQty: row.qtyToReceive || row.thisRecvQty,
transQty: row.thisRecvQty || 0
};
this.processFlag = 2;

Loading…
Cancel
Save