From 22bf644b3fc85763be3ad0c5e348d2bee38e2444 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 22 三月 2023 17:07:48 +0800
Subject: [PATCH] Default Changelist
---
src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue | 246 +++++++++++++++++++++++++++++-------------------
1 files changed, 149 insertions(+), 97 deletions(-)
diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue b/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue
index 3dbb18e..384515a 100644
--- a/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue
+++ b/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue
@@ -5,38 +5,54 @@
<el-button @click="openList(item)" type="success">选用</el-button>
</div>
- <el-dialog v-model="equipDetailDialog" title="物资标准详情" width="40%" center @open="openDetail" >
- <table class="table">
- <tr>
- <th class="w-20">物资名称</th>
- <th class="w-20">出库部门(仓库)</th>
- <th class="w-15">对应库存</th>
- <th class="w-15">标准值</th>
- <th class="w-15">级别</th>
- <th class="w-15">实际使用</th>
- </tr>
- <tr v-for="(item,index) in materialDetail">
- <td class="w-20">{{item.materialName}}</td>
- <td class="w-20">
- <el-select v-model="addList[index].depId" @change="changeDep($event,index)">
- <el-option
- v-for="i in item.msList"
- :key="i.depId"
- :label="i.depName"
- :value="i.depId"
- />
- </el-select>
- </td>
- <td class="w-15">
- {{stockCount[index]}}
- </td>
- <td class="w-15">{{item.standVal}}</td>
- <td class="w-15">{{item.configurationLevelName}}</td>
- <td class="w-15">
- <el-input type="number" v-model.number="addList[index].useCount"/>
- </td>
- </tr>
- </table>
+ <el-dialog v-model="equipDetailDialog" title="物资标准详情" width="75%" center @open="openDetail">
+ <div class="choose-receiver">
+ <span>选择其他作业关联人员</span>
+ <el-select v-model="receiveUids" multiple @change="changeReceiver">
+ <el-option
+ v-for="item in workerList"
+ :key="item.uid"
+ :label="item.username"
+ :value="item.uid"
+ />
+ </el-select>
+ </div>
+ <table class="table">
+ <tr>
+ <th class="w-25">物资名称</th>
+ <th class="w-15">标准值</th>
+ <th class="w-15">级别</th>
+ <th class="w-30">关联人员与个数</th>
+ <th class="w-15">实际使用</th>
+ </tr>
+ <tr v-for="(item,index) in materialDetail">
+ <td class="w-25">{{item.materialName}}</td>
+<!-- <td class="w-1">-->
+<!-- <el-select v-model="addList[index].depId" @change="changeDep($event,index)">-->
+<!-- <el-option-->
+<!-- v-for="i in item.msList"-->
+<!-- :key="i.depId"-->
+<!-- :label="i.depName"-->
+<!-- :value="i.depId"-->
+<!-- />-->
+<!-- </el-select>-->
+<!-- </td>-->
+<!-- <td class="w-15">-->
+<!-- {{stockCount[index]}}-->
+<!-- </td>-->
+ <td class="w-15">{{item.standVal}}</td>
+ <td class="w-15">{{item.configurationLevelName}}</td>
+ <td class="w-30">
+ {{item.receiveUnames}}
+ </td>
+<!-- <td class="w-15">-->
+<!-- <el-input type="number" v-model.number="addList[index].useCount"/>-->
+<!-- </td>-->
+ <td class="w-15">
+ {{item.receiveCount}}
+ </td>
+ </tr>
+ </table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeChoose()" size="default">取消</el-button>
@@ -56,8 +72,8 @@
equipDetailDialog: boolean
materialDetail: Array<any>
stockCount: Array<number>
- addList: Array<any>
- chosenId: number | null
+ chosenId: number | null,
+ receiveUids: Array<number>
}
@@ -66,9 +82,10 @@
import {ElMessage, ElMessageBox} from 'element-plus';
import {useUserInfo} from "/@/stores/userInfo";
import {storeToRefs} from "pinia";
+
export default {
name: 'materialDialog',
- setup(props,context) {
+ setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const approveBasicFormRef = ref();
@@ -79,7 +96,7 @@
equipDetailDialog: false,
materialDetail: [],
stockCount: [],
- addList: []
+ receiveUids: []
});
// 确认物资标准
@@ -89,85 +106,112 @@
if (res.data.code === '200') {
if(res.data.data && res.data.data.length>0){
state.materialList = JSON.parse(JSON.stringify(res.data.data))
+ state.equipmentDialog = true
}else{
ElMessage({
type: 'warning',
message: '暂时查询不到物资标准信息'
});
- state.equipmentDialog = false
}
} else {
ElMessage({
type: 'warning',
message: res.data.msg
});
- state.equipmentDialog = false
}
}
- const openList =(item:object)=>{
+ const openList = async(item:object)=>{
state.chosenId = item.id
- state.addList = []
- state.stockCount = []
- if(item.mcList && item.mcList.length>0){
- for(let j in item.mcList){
- if(item.mcList[j].msList == null || item.mcList[j].msList.length==0){
- item.mcList.splice(j,1)
- }
+ const data = {maBaseId: state.chosenId,receiveUids:state.receiveUids}
+ const res = await workApplyApi().getMaterialDetail(data)
+ if (res.data.code === '200') {
+ if(res.data.data && res.data.data.length>0){
+ state.materialDetail = res.data.data
+ state.equipDetailDialog = true
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: '暂时查询不到物资标准信息'
+ });
}
- state.materialDetail = item.mcList
- for(let i in state.materialDetail){
- state.addList.push(
- {
- materialId: state.materialDetail[i].materialId,
- depId: null,
- depName: '',
- useCount: null
- }
- )
- for(let x in state.materialDetail[i].msList){
- if(state.materialDetail[i].msList[x].depId == userInfos.value.depId){
- state.addList[i].depId = userInfos.value.depId
- state.addList[i].depName = state.materialDetail[i].msList[x].depName
- state.stockCount[i] = state.materialDetail[i].msList.find((e) => e.depId == state.addList[i].depId).stockCount
- }
- }
- }
- }
- state.equipDetailDialog = true
- }
-
- const openDetail = ()=>{
- console.log(state.addList,'打开弹窗')
- }
-
- const changeDep = (val:number,index:number)=>{
- state.addList[index].depName = state.materialDetail[index].msList.find((i) => i.depId == val).depName
- state.stockCount[index] = state.materialDetail[index].msList.find((i) => i.depId == val).stockCount
- }
- const submitMaterials = ()=>{
- if(state.addList.length > 0 && (state.addList.some((e) => e.depId == null && e.useCount != null ) || state.addList.some((e) => e.useCount == null && e.depId != null))){
+ } else {
ElMessage({
type: 'warning',
- message: '出库部门或实际使用值不可为空'
+ message: res.data.msg
});
- return
}
- for(let i in state.materialDetail){
- if(state.materialDetail[i].configurationLevelName == '必选' && state.addList[i].depId != null && state.addList[i].useCount <= 0){
+ // state.stockCount = []
+ // if(item.mcList && item.mcList.length>0){
+ // for(let j in item.mcList){
+ // if(item.mcList[j].msList == null || item.mcList[j].msList.length==0){
+ // item.mcList.splice(j,1)
+ // }
+ // }
+ // state.materialDetail = item.mcList
+ // for(let i in state.materialDetail){
+ // state.addList.push(
+ // {
+ // materialId: state.materialDetail[i].materialId,
+ // depId: null,
+ // depName: '',
+ // useCount: null
+ // }
+ // )
+ // for(let x in state.materialDetail[i].msList){
+ // if(state.materialDetail[i].msList[x].depId == userInfos.value.depId){
+ // state.addList[i].depId = userInfos.value.depId
+ // state.addList[i].depName = state.materialDetail[i].msList[x].depName
+ // state.stockCount[i] = state.materialDetail[i].msList.find((e) => e.depId == state.addList[i].depId).stockCount
+ // }
+ // }
+ // }
+ // }
+ }
+ const changeReceiver = async ()=>{
+ const data = {maBaseId: state.chosenId,receiveUids:state.receiveUids}
+ const res = await workApplyApi().getMaterialDetail(data)
+ if (res.data.code === '200') {
+ if(res.data.data && res.data.data.length>0){
+ state.materialDetail = res.data.data
+ }else{
ElMessage({
type: 'warning',
- message: '必选物资数量不能小于等于0'
+ message: '暂时查询不到物资标准信息'
});
- return
}
- if((state.stockCount[i] !=null && state.addList[i].useCount !=null) && (state.stockCount[i] < state.addList[i].useCount)){
- ElMessage({
- type: 'warning',
- message: '物资配置数量超出库存量,请重新配置'
- });
- return
- }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
}
+ }
+ const openDetail = ()=>{
+ }
+ const submitMaterials = ()=>{
+ // if(state.addList.length > 0 && (state.addList.some((e) => e.depId == null && e.useCount != null ) || state.addList.some((e) => e.useCount == null && e.depId != null))){
+ // ElMessage({
+ // type: 'warning',
+ // message: '出库部门或实际使用值不可为空'
+ // });
+ // return
+ // }
+ // for(let i in state.materialDetail){
+ // if(state.materialDetail[i].configurationLevelName == '必选' && state.addList[i].depId != null && state.addList[i].useCount <= 0){
+ // ElMessage({
+ // type: 'warning',
+ // message: '必选物资数量不能小于等于0'
+ // });
+ // return
+ // }
+ // if((state.stockCount[i] !=null && state.addList[i].useCount !=null) && (state.stockCount[i] < state.addList[i].useCount)){
+ // ElMessage({
+ // type: 'warning',
+ // message: '物资配置数量超出库存量,请重新配置'
+ // });
+ // return
+ // }
+ // }
// if(state.addList.length > 0){
// for(let n in state.addList){
// if(state.addList[n].depId == null && state.addList[n].useCount == null){
@@ -175,8 +219,8 @@
// }
// }
// }
- console.log(state.addList,state.chosenId,'666666666')
- context.emit('conFirmMaterials',state.addList,state.chosenId)
+ console.log(state.receiveUids,state.chosenId,'666666666')
+ context.emit('conFirmMaterials',state.receiveUids,state.chosenId)
state.equipDetailDialog = false
state.equipmentDialog = false
}
@@ -186,13 +230,12 @@
}
const closeChoose = () =>{
state.equipDetailDialog = false
- state.equipmentDialog = false
}
return {
...toRefs(state),
- changeDep,
getMaList,
openList,
+ changeReceiver,
openDetail,
closeChoose,
closeMaterial,
@@ -214,17 +257,18 @@
.table{
width: 100%;
border-collapse: collapse;
+ margin-top: 20px;
tr{
width: 100%;
border: 1px solid #ccc;
th,td{
+ padding: 6px 0;
border-left: 1px solid #ccc;
&:first-of-type{
border-left: none;
}
}
- th{
- padding: 10px 0;
+ td{
font-weight: bolder;
}
@@ -236,6 +280,14 @@
width: 20%;
text-align: center;
}
+ .w-25{
+ width: 25%;
+ text-align: center;
+ }
+ .w-30{
+ width: 30%;
+ text-align: center;
+ }
}
}
</style>
--
Gitblit v1.9.2