From 50d33c74675a9d9eee957a685d9e55b77974f6f9 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期五, 06 一月 2023 16:44:06 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt --- src/views/specialWorkSystem/foundationSet/goods/index.vue | 129 ++++++++++++++----------------------------- 1 files changed, 42 insertions(+), 87 deletions(-) diff --git a/src/views/specialWorkSystem/foundationSet/goods/index.vue b/src/views/specialWorkSystem/foundationSet/goods/index.vue index 558de0c..ee1493b 100644 --- a/src/views/specialWorkSystem/foundationSet/goods/index.vue +++ b/src/views/specialWorkSystem/foundationSet/goods/index.vue @@ -93,7 +93,7 @@ <el-table-column property="workLevel" label="关联作业等级" align="center" :formatter="toLevel" :show-overflow-tooltip="true"/> <el-table-column property="createUname" label="创建人" align="center"/> <el-table-column property="gmtCreate" label="创建时间" align="center"/> - <el-table-column property="gmtModified" label="更新时间" align="center"/> +<!-- <el-table-column property="gmtModified" label="更新时间" align="center"/>--> <el-table-column fixed="right" label="操作" align="center" width="250"> <template #default="scope"> <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> @@ -121,33 +121,11 @@ </el-form-item> <el-form-item label="作业物资汇总"> <div class="materials"> - <div class="maList"> - <div>必选</div> + <div class="maList" v-for="item in details.clList"> + <div>{{item.configurationLevelName}}</div> <div> - <div v-if="mustList.length>0" v-for="(i,index) in mustList" :key="index"> - {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'非耗材'}} - </div> - <div v-else> - 无 - </div> - </div> - </div> - <div class="maList"> - <div>可选</div> - <div> - <div v-if="chooseList.length>0" v-for="(i,index) in chooseList" :key="index"> - {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'非耗材'}} - </div> - <div v-else> - 无 - </div> - </div> - </div> - <div class="maList"> - <div>高配</div> - <div> - <div v-if="highList.length>0" v-for="(i,index) in highList" :key="index"> - {{i.materialName}}:默认值:{{i.defaultVal}},{{i.consumables?'耗材':'非耗材'}} + <div v-if="item.mdList.length>0" v-for="i in item.mdList"> + {{i.materialName}}({{i.bigClassifyName }}):标准值:{{i.standVal }} </div> <div v-else> 无 @@ -165,9 +143,9 @@ <el-form-item label="创建时间"> <el-input v-model="details.gmtCreate" readonly /> </el-form-item> - <el-form-item label="更新时间"> - <el-input v-model="details.gmtModified" readonly /> - </el-form-item> +<!-- <el-form-item label="更新时间">--> +<!-- <el-input v-model="details.gmtModified" readonly />--> +<!-- </el-form-item>--> <el-form-item> <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> </el-form-item> @@ -225,26 +203,22 @@ </el-form-item> <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 class="tab-i" v-for="(i,x) in item.list" :key="x" v-if="item.list && item.list.length>0"> - <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="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> - </el-form-item> - <el-form-item v-if="checkData[index].list[x].configurationLevel==0" label="默认值" prop="defaultVal"><el-input v-model="checkData[index].list[x].defaultVal"/></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> - </el-form-item> - </el-form> + <el-tab-pane v-for="(item,index) in allList" :label="item.materialClassifyName" :key="index"> + <div class="tab-i" v-if="item.childList && item.childList.length>0"> + <div v-for="(i,x) in item.childList" :key="x"> + <el-checkbox :label="i.materialClassifyName" v-model="checkData[index].childList[x].checked"> + </el-checkbox> + <el-form v-if="checkData[index].childList[x].checked" :model="checkData[index].childList[x]" label-width="100px" ref="addListRef" :rules="addListRules"> + <el-form-item label="配置级别" prop="configurationLevel"> + <el-select v-model="checkData[index].childList[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> + </el-form-item> + <el-form-item label="标准值" prop="standVal"><el-input type="number" v-model.number="checkData[index].childList[x].standVal"/></el-form-item> + </el-form> + </div> </div> <div v-else>暂无物资配置数据</div> </el-tab-pane> @@ -537,9 +511,8 @@ 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' }] + standVal: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + configurationLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }] }); // 页面载入时执行方法 @@ -572,16 +545,13 @@ if (res.data.code === '200') { state.allList = JSON.parse(JSON.stringify(res.data.data)) for(let i in state.allList){ - state.allList[i].list = state.allList[i].list?.map((item:any) => { + state.allList[i].childList = state.allList[i].childList?.map((item:any) => { const obj = { checked: false, - materialName: item.name, - consumables: null, - defaultVal: 0, + materialClassifyName: item.materialClassifyName, + standVal: 0, configurationLevel: null, - materialType: item.materialType, - materialTypeName: item.materialTypeName, - emergencyMaterialId: item.id + smallClassifyId: item.id } return {...obj} }) @@ -676,7 +646,6 @@ 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; }; @@ -704,12 +673,12 @@ 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){ + if(state.checkData[i].childList && state.checkData[i].childList.length>0){ + for(let j=0;j<state.checkData[i].childList.length;j++){ + if(state.checkData[i].childList[j].checked){ // delete state.checkData[i].list[j].checked // state.checkData[i].list[j].checked - let { checked,...checkObj } = state.checkData[i].list[j] + let { checked,materialClassifyName,...checkObj } = state.checkData[i].childList[j] state.addRecord.materialDetailList.push(checkObj) } } @@ -722,14 +691,20 @@ info: state.addRecord.info, materialDetailList: state.addRecord.materialDetailList }; - console.log(data.materialDetailList,'data.materialDetailList') - if(data.materialDetailList.length==0 || data.materialDetailList.some((e) => e.configurationLevel == null) || data.materialDetailList.some((e) => e.consumables == null)){ + if(data.materialDetailList.length==0 || data.materialDetailList.some((e) => e.configurationLevel == null)){ ElMessage({ type: 'warning', message: '请选择物资配置并完善必填数据' }); return } + if(data.materialDetailList.some((e) => e.configurationLevel == 0 && e.standVal <= 0)){ + ElMessage({ + type: 'warning', + message: '必选物资标准值须大于0' + }); + return + } if (state.chosenIndex == null) { await addRecord(data); } else { @@ -818,26 +793,6 @@ state.details = JSON.parse(JSON.stringify(row)); state.details.workType = toType(state.details) state.details.workLevel = toLevel(state.details) - if(state.details.materialTypeList && state.details.materialTypeList.length>0){ - const allList = JSON.parse(JSON.stringify(state.details.materialTypeList)) - for(let i = 0;i < allList.length; i++){ - if(allList[i].mdList && allList[i].mdList.length>0){ - allList[i].mdList.map((item)=>{ - if(item.configurationLevel == 0){ - state.mustList.push(item) - return - }else if(item.configurationLevel == 1){ - state.chooseList.push(item) - return - }else{ - state.highList.push(item) - return - } - }) - } - - } - } state.dialogDetails = true; }; -- Gitblit v1.9.2