From 2548d448f12dfe1addcfe39e7eb4e0c87303812c Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: Tue, 27 Sep 2022 10:23:11 +0800
Subject: [PATCH] Default Changelist
---
src/views/specialWorkSystem/foundationSet/material/index.vue | 191 ++++++++++++++++++++++-------------------------
1 files changed, 88 insertions(+), 103 deletions(-)
diff --git a/src/views/specialWorkSystem/foundationSet/material/index.vue b/src/views/specialWorkSystem/foundationSet/material/index.vue
index 2de6ce6..209fa2e 100644
--- a/src/views/specialWorkSystem/foundationSet/material/index.vue
+++ b/src/views/specialWorkSystem/foundationSet/material/index.vue
@@ -80,7 +80,7 @@
<div class="main-card">
<el-row class="cardTop">
<el-col :span="12" class="mainCardBtn">
- <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>
+ <el-button type="primary" :icon="Plus" size="default" @click="addRecordBtn">新增</el-button>
<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
<!-- <el-button type="danger" :icon="Delete" size="default" plain @click="deleteBatchBtn">删除</el-button>-->
</el-col>
@@ -125,7 +125,7 @@
<div>必选</div>
<div>
<div v-if="mustList.length>0" v-for="(i,index) in mustList" :key="index">
- {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'费耗材'}}
+ {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'非耗材'}}
</div>
<div v-else>
无
@@ -136,7 +136,7 @@
<div>可选</div>
<div>
<div v-if="chooseList.length>0" v-for="(i,index) in chooseList" :key="index">
- {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'费耗材'}}
+ {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'非耗材'}}
</div>
<div v-else>
无
@@ -155,6 +155,9 @@
</div>
</div>
</div>
+ </el-form-item>
+ <el-form-item label="描述">
+ <el-input v-model="details.info" type="textarea" autosize readonly />
</el-form-item>
<el-form-item label="创建人">
<el-input v-model="details.createUname" readonly />
@@ -223,32 +226,46 @@
<el-form-item label="物资标准配置">
<el-tabs tab-position="left" class="demo-tabs" type="border-card">
<el-tab-pane v-for="(item,index) in allList" :label="item.materialTypeName" :key="index">
- <div v-for="(i,x) in item.list" :key="x">
- <el-checkbox :label="i.name" v-model="checkData[index].list[x].checked">
- <div>{{i.name}}</div>
- <div><span>默认值:</span><el-input size="small" v-model="checkData[index].list[x].defaultVal"/></div>
- <div>
- <span>配置级别:</span>
- <el-select size="small" v-model="checkData[index].list[x].configurationLevel">
+ <div class="tab-i" v-for="(i,x) in item.list" :key="x">
+ <el-checkbox :label="i.materialName" v-model="checkData[index].list[x].checked">
+ </el-checkbox>
+ <el-form v-if="checkData[index].list[x].checked" :model="checkData[index].list[x]" label-width="100px" ref="addListRef" :rules="addListRules">
+ <el-form-item label="默认值" prop="defaultVal"><el-input v-model="checkData[index].list[x].defaultVal"/></el-form-item>
+ <el-form-item label="配置级别" prop="configurationLevel">
+ <el-select v-model="checkData[index].list[x].configurationLevel">
<el-option key="0" label="必选" value="0"/>
<el-option key="1" label="可选" value="1"/>
<el-option key="2" label="高配" value="2"/>
</el-select>
- </div>
- <div>
- <span>是否耗材:</span>
- <el-radio-group v-model="checkData[index].list[x].consumables" class="ml-4">
- <el-radio label="1">是</el-radio>
- <el-radio label="2">否</el-radio>
+ </el-form-item>
+ <el-form-item label="是否耗材" prop="consumables">
+ <el-radio-group v-model="checkData[index].list[x].consumables">
+ <el-radio :label=true>是</el-radio>
+ <el-radio :label=false>否</el-radio>
</el-radio-group>
- </div>
- </el-checkbox>
+ </el-form-item>
+ <!-- <div>-->
+ <!-- <span>配置级别:</span>-->
+ <!-- <el-select size="small" v-model="checkData[index].list[x].configurationLevel">-->
+ <!-- <el-option key="0" label="必选" value="0"/>-->
+ <!-- <el-option key="1" label="可选" value="1"/>-->
+ <!-- <el-option key="2" label="高配" value="2"/>-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ <!-- <div>-->
+ <!-- <span>是否耗材:</span>-->
+ <!-- <el-radio-group v-model="checkData[index].list[x].consumables">-->
+ <!-- <el-radio label="1">是</el-radio>-->
+ <!-- <el-radio label="2">否</el-radio>-->
+ <!-- </el-radio-group>-->
+ <!-- </div>-->
+ </el-form>
</div>
</el-tab-pane>
</el-tabs>
</el-form-item>
- <el-form-item label="描述" prop="describe">
- <el-input v-model="addRecord.describe" type="textarea" autosize :rows="2"/>
+ <el-form-item label="描述" prop="info">
+ <el-input v-model="addRecord.info" type="textarea" autosize :rows="2"/>
</el-form-item>
<el-form-item>
<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
@@ -524,16 +541,22 @@
// };
const addRef = ref<FormInstance>();
+ const addListRef = ref<FormInstance>();
const addRules = reactive<FormRules>({
name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
});
+ const addListRules = reactive<FormRules>({
+ defaultVal: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ configurationLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ consumables: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+ });
+ const addNoRules = reactive<FormRules>({});
// 页面载入时执行方法
onMounted(() => {
- getListByPage();
- getList();
+ getListByPage()
});
const toType = (row, column, cellValue, index) => {
@@ -556,25 +579,12 @@
let res = await materialApi().getRecordList();
if (res.data.code === '200') {
state.allList = JSON.parse(JSON.stringify(res.data.data))
- // const test = [{id:1,name:'1',children:[{one:1,two:'1'},]},{id:2,name:'2',children:[{one:2,two:'2'},]}]
- // test.map(item => {
- // item.children.map(i =>{
- // debugger
- // return {
- // three:true
- // }
- // const obj = i
- // console.log(obj);
- // })
- // return item
- // })
- // console.log(test);
for(let i in state.allList){
state.allList[i].list = state.allList[i].list?.map((item:any) => {
const obj = {
checked: false,
materialName: item.name,
- consumables: false,
+ consumables: null,
defaultVal: null,
configurationLevel: null,
materialType: item.materialType,
@@ -585,37 +595,12 @@
})
}
state.checkData = JSON.parse(JSON.stringify(state.allList))
- // state.checkData = state.allList.map((item)=>{
- // if(item.list && item.list != null){
- // console.log('1111111111111')
- // item.list.map((i)=>{
- // i.checked = false
- // i.defaultVal = null
- // i.configurationLevel = null
- // i.consumables = false
- // debugger
- // const obj = {
- // checked: i.checked,
- // materialName: i.name,
- // consumables: i.consumables,
- // defaultVal: i.defaultVal,
- // configurationLevel: i.configurationLevel,
- // materialType: i.materialType,
- // materialTypeName: i.materialTypeName,
- // emergencyMaterialId: i.id
- // }
- // return {...obj}
- // })
- // }
- // return item
- // })
} else {
ElMessage({
type: 'warning',
message: res.data.msg
});
}
- console.log(state.checkData,'state.checkData')
}
// 分页获取物资标准列表
@@ -673,6 +658,11 @@
getListByPage();
};
+ const addRecordBtn = () =>{
+ getList()
+ state.dialogAddRecord = true
+ }
+
// 添加方法
const addRecord = async (data: any) => {
let res = await materialApi().addRecord(data);
@@ -692,13 +682,15 @@
// 修改方法
const editRecordBtn = async (index, row) => {
+ getList()
state.addRecord = JSON.parse(JSON.stringify(row));
+ console.log(state.addRecord,'state.addRecord')
state.dialogAddRecord = true;
state.chosenIndex = index;
};
const editRecord = async (data: any) => {
- let res = await teamManageApi().updateRecord(data);
+ let res = await materialApi().updateRecord(data);
if (res.data.code === '200') {
ElMessage({
type: 'success',
@@ -718,31 +710,38 @@
if (!formEl) return;
await formEl.validate(async (valid, fields) => {
if (valid) {
+ state.addRecord.materialDetailList = []
+ for(let i in state.checkData){
+ if(state.checkData[i].list && state.checkData[i].list.length>0){
+ for(let j=0;j<state.checkData[i].list.length;j++){
+ if(state.checkData[i].list[j].checked){
+ delete state.checkData[i].list[j].checked
+ state.checkData[i].list[j].checked
+ state.addRecord.materialDetailList.push(state.checkData[i].list[j])
+ }
+ }
+ }
+ }
const data = {
name: state.addRecord.name,
workType: state.addRecord.workType,
workLevel: state.addRecord.workLevel,
- describe: state.addRecord.describe,
- materialDetailList: []
+ info: state.addRecord.info,
+ materialDetailList: state.addRecord.materialDetailList
};
- // for(let i=0;i<state.checkData.length;i++){
- // if(state.checkData[i].list !=null && state.checkData[i].list.length>0){
- // for(let j=0;j<state.checkData[i].list.length;j++){
- // if(state.checkData[i].list[j].checked){
- // let {materialName,consumables,defaultVal,configurationLevel,materialType,materialTypeName,id} = state.checkData[i].list[j]
- // const newObj = {materialName,consumables,defaultVal,configurationLevel,materialType,materialTypeName,id}
- // data.materialDetailList.push({ materialName, consumables, defaultVal, configurationLevel, materialType, materialTypeName, id})
- // }
- // }
- // }
- // }
- console.log(data,'data>>>>>>>>>')
- // if (state.chosenIndex == null) {
- // await addRecord(data);
- // } else {
- // data.groupId = JSON.stringify(state.addRecord.groupId);
- // await editRecord(data);
- // }
+ if(data.materialDetailList.length==0){
+ ElMessage({
+ type: 'warning',
+ message: '物资配置数据为空'
+ });
+ return
+ }
+ if (state.chosenIndex == null) {
+ await addRecord(data);
+ } else {
+ data.id = state.addRecord.id;
+ await editRecord(data);
+ }
state.dialogAddRecord = false;
} else {
console.log('error submit!', fields);
@@ -845,7 +844,6 @@
}
}
- console.log(state.mustList,state.chooseList,state.highList,'666666666')
state.dialogDetails = true;
};
@@ -881,12 +879,16 @@
};
return {
addRef,
+ addListRef,
addRules,
+ addListRules,
+ addNoRules,
View,
Edit,
Delete,
Refresh,
Plus,
+ addRecordBtn,
toType,
toLevel,
searchRecord,
@@ -1029,28 +1031,11 @@
width: 100% !important;
}
-.el-checkbox{
- width: 100%;
+.tab-i{
margin-bottom: 20px;
- display: flex;
- align-items: flex-start;
- height: auto;
- ::v-deep(.el-checkbox__label){
+
+ .el-form-item{
margin-bottom: 20px;
- &>div{
- width: 100%;
- margin-bottom: 10px;
- &>span{
- display: inline-block;
- width: 30%;
- }
- .el-input {
- width: 100% !important;
- }
- .el-select {
- width: 100% !important;
- }
- }
}
}
</style>
--
Gitblit v1.9.2