From 2548d448f12dfe1addcfe39e7eb4e0c87303812c Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期二, 27 九月 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