From 4c9e1ba3c7f5c95a1789e88823ff262c26a53bce Mon Sep 17 00:00:00 2001 From: zhang_12370 <z2864490065@outlook.com> Date: 星期二, 08 七月 2025 20:34:32 +0800 Subject: [PATCH] 解决 生产加工煤种字段匹配 --- src/views/calculator/index.vue | 106 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 94 insertions(+), 12 deletions(-) diff --git a/src/views/calculator/index.vue b/src/views/calculator/index.vue index 9e6fe8c..af09bb5 100644 --- a/src/views/calculator/index.vue +++ b/src/views/calculator/index.vue @@ -68,7 +68,8 @@ style="margin-bottom: 15px" > <el-row :gutter="16"> - <el-col :span="6"> <el-form-item label="鐓ょ绫诲瀷"> + <el-col :span="6"> + <el-form-item label="鐓ょ绫诲瀷"> <el-select v-model="item.type" placeholder="璇烽�夋嫨" @@ -79,7 +80,8 @@ <el-option label="鏈煡鐓�" value="鏈煡鐓�" /> </el-select> </el-form-item> - </el-col> <el-col :span="6"> + </el-col> + <el-col :span="6"> <el-form-item :label="'鐓ょ' + (index + 1)"> <div class="input-wrapper"> <el-input @@ -88,14 +90,20 @@ placeholder="璇疯緭鍏�" style="width: 100%" /> + <el-select v-model="item.name" v-show="item.type === '宸叉湁鐓�'" placeholder="璇烽�夋嫨" style="width: 100%" > - <el-option label="宸叉湁鐓�" value="宸叉湁鐓�" /> - <el-option label="鏈煡鐓�" value="鏈煡鐓�" /> + <el-option + v-for="ele in coalInfoList" + :key="ele.key" + :label="ele.value" + :value="ele.key" + >{{ ele.value }} + </el-option> </el-select> </div> </el-form-item> @@ -247,8 +255,8 @@ </div> <div class="footer"> <el-button @click="cancel">閲嶇疆</el-button> - <el-button type="primary" @click="submitForm" plain> - 鏌ョ湅璁$畻缁撴灉 + <el-button type="primary" @click="addWarehoused" plain> + 娣诲姞鑷冲緟鍏ュ簱 </el-button> <el-button type="primary" @click="submitForm">璁$畻鏈�浼橀厤姣�</el-button> </div> @@ -332,6 +340,20 @@ >{{ result.optimal.props.cost.toFixed(2) }} 鍏�/鍚�</span > </div> + <div class="prop-item"> + <span class="prop-label">鐢熸垚:</span> + <el-autocomplete + v-model="result.optimal.props.createCoal" + :fetch-suggestions="querySearch" + clearable + size="small" + class="inline-input red-border" + style="width: 180px; min-height: 24px !important" + placeholder="璇疯緭鍏ョ敓鎴愮叅绉�" + @blur="handleSelect($event)" + @select="handleSelect($event)" + /> + </div> </div> </div> </div> @@ -397,8 +419,9 @@ </template> <script setup> -import { reactive, toRefs, nextTick } from "vue"; +import { reactive, toRefs, nextTick, onMounted } from "vue"; import { ElMessage, ElMessageBox } from "element-plus"; +import { getCoalInfoList } from "@/api/procureMent"; // 鍋囪鏈変竴涓狝PI鑾峰彇鐓ょ淇℃伅 const data = reactive({ formInline: { @@ -450,7 +473,48 @@ error: null, }, }); - +const coalInfoList = ref([]); +// onMounted +const getCoalInfo = async () => { + let result = await getCoalInfoList(); + if (result.code === 200) { + result.data.forEach((item) => { + let obj = { + value: item.coal, + key: item.id, + }; + coalInfoList.value.push(obj); + }); + } else { + ElMessage.error("鑾峰彇鐓ょ淇℃伅澶辫触锛岃绋嶅悗閲嶈瘯"); + } +}; +// 鏍规嵁 key 杩斿洖涓枃鍚嶏紝鍚﹀垯鍘熸牱杩斿洖 +const matchCoal = value => { + if (!value) return ""; + const found = coalInfoList.value.find(c => c.key === value); + return found ? found.value : value; +}; +// 鑷姩琛ュ叏鎼滅储 +const querySearch = (q, cb) => { + const res = q + ? coalInfoList.value.filter(c => c.value.includes(q)) + : coalInfoList.value; + cb(res); +}; +// 閫夋嫨/澶辩劍鏃讹紝浼樺厛瀛� key锛屾壘涓嶅埌鍒欏瓨鍘熷�� +const handleSelect = item => { + const val = item.value || (item.target && item.target.value) || ""; + const found = coalInfoList.value.find(c => c.value === val || c.key === val); + result.value.optimal.props.createCoal = found ? found.key : val; + let match = matchCoal(result.value.optimal.props.createCoal); + if (match && match !== result.value.optimal.props.createCoal) { + result.value.optimal.props.createCoal = match; + } +}; +onMounted(async () => { + getCoalInfo(); +}); // 绾挎�ц鍒掓眰瑙e嚱鏁� const solveBlend = (coals, constraints) => { // 鏁版嵁楠岃瘉 @@ -592,7 +656,17 @@ }; ElMessage.success("琛ㄥ崟宸查噸缃�"); }; - +const addWarehoused = () => { + if(!result.value){ + ElMessage.warning("璇峰厛璁$畻鏈�浼橀厤姣斿悗鍐嶆坊鍔犺嚦寰呭叆搴�"); + return; + } + if(result.value.optimal.props.createCoal === "") { + ElMessage.warning("璇峰厛閫夋嫨鐢熸垚鐓ょ"); + return; + } + console.log(result.value) +}; const submitForm = () => { // 鏁版嵁楠岃瘉 let validCoals = coalForms.value.filter( @@ -724,17 +798,18 @@ sulfur: "", ash: "", moisture: "", - }); } + }); + } }; // 澶勭悊鐓ょ绫诲瀷鍙樺寲 const handleCoalTypeChange = (index) => { // 褰撶叅绉嶇被鍨嬫敼鍙樻椂锛屾竻绌虹叅绉嶅悕绉帮紝閬垮厤鏁版嵁娣蜂贡 - coalForms.value[index].name = ''; + coalForms.value[index].name = ""; }; </script> -<style scoped> +<style scoped lang="scss"> .view { display: flex; gap: 10px; @@ -966,6 +1041,7 @@ background: #f5f7fa; border-radius: 4px; font-size: 13px; + align-items: center; } .prop-label { @@ -1124,4 +1200,10 @@ padding: 4px 8px; } } +:deep(.el-input__wrapper) { + min-height: 24px !important; +} +:deep(.el-input__inner) { + min-height: 24px !important; +} </style> -- Gitblit v1.9.3