From b66453b8b4a7ba6dc94127bb5c9a6647519e447a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 04 六月 2025 13:40:00 +0800
Subject: [PATCH] 配煤计算页面开发
---
src/views/calculator/index.vue | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 214 insertions(+), 0 deletions(-)
diff --git a/src/views/calculator/index.vue b/src/views/calculator/index.vue
new file mode 100644
index 0000000..280d2c1
--- /dev/null
+++ b/src/views/calculator/index.vue
@@ -0,0 +1,214 @@
+<template>
+ <div class="app-container">
+ <div class="view">
+ <div class="left-card">
+ <div class="count-region">鏁板�艰緭鍏ュ尯</div>
+ <div class="scroll">
+ <div>
+ <div class="title">閫氱敤璁剧疆</div>
+ <el-form :inline="true" :model="formInline" class="demo-form-inline" label-width="110" label-position="top">
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="寰呴厤鐓ょ鏁伴噺">
+ <el-input v-model="formInline.num" type="number" clearable @change="updateCoalFields" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鍙備笌閰嶇叅鎬诲惃鏁�">
+ <el-input v-model="formInline.count" type="number" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="姣忛摬閲嶉噺(鍚�/閾�)">
+ <el-input v-model="formInline.count1" type="number" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ <div>
+ <div class="title">鐓ょ灞炴��</div>
+ <el-form :model="coalForms" :inline="true" label-width="110" label-position="top">
+ <div v-for="(item, index) in coalForms" :key="index" style="margin-bottom: 15px;">
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鐓ょ绫诲瀷">
+ <el-select v-model="item.type" placeholder="璇烽�夋嫨" clearable style="width: 200px">
+ <el-option label="宸叉湁鐓�" value="宸叉湁鐓�" />
+ <el-option label="鏈煡鐓�" value="鏈煡鐓�" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item :label="'鐓ょ' + (index + 1)">
+ <el-input v-model="item.name" clearable v-if="item.type !== '宸叉湁鐓�'" placeholder=" 璇疯緭鍏�"/>
+ <el-select v-model="item.name" placeholder="璇烽�夋嫨" clearable v-else style="width: 200px">
+ <el-option label="宸叉湁鐓�" value="宸叉湁鐓�" />
+ <el-option label="鏈煡鐓�" value="鏈煡鐓�" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鍙戠儹閲�(CV)">
+ <el-input v-model="item.ratio" type="number" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="浠锋牸(鍏�/鍚�)">
+ <el-input v-model="item.weight" type="number" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="纭垎(%)">
+ <el-input v-model="item.weight1" type="number" clearable placeholder="鍙��" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鐏板垎(%)">
+ <el-input v-model="item.weight2" type="number" clearable placeholder="鍙��" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="姘村垎(%)">
+ <el-input v-model="item.weight3" type="number" clearable placeholder="鍙��" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-divider />
+ </div>
+ </el-form>
+ </div>
+ <div>
+ <div class="title">閰嶇叅绾︽潫鏉′欢</div>
+ <el-form :inline="true" :model="formInline" class="demo-form-inline" label-width="110" label-position="top">
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="娣峰悎鐓ゆ渶浣庡彂鐑噺(CV)">
+ <el-input v-model="formInline.num" type="number" clearable @change="updateCoalFields" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="娣峰悎鐓ゆ渶楂樼~鍒�(%)">
+ <el-input v-model="formInline.count" type="number" clearable placeholder="鍙��"/>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="娣峰悎鐓ゆ渶楂樼伆鍒�(%)">
+ <el-input v-model="formInline.count1" type="number" clearable placeholder="鍙��"/>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="娣峰悎鐓ゆ渶楂樻按鍒�(%)">
+ <el-input v-model="formInline.count1" type="number" clearable placeholder="鍙��"/>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ </div>
+
+ <div class="footer">
+ <el-button @click="cancel">閲嶇疆</el-button>
+ <el-button type="primary" @click="submitForm" plain>鏌ョ湅璁$畻缁撴灉</el-button>
+ <el-button type="primary" @click="submitForm">璁$畻鍏ュ簱</el-button>
+ </div>
+ </div>
+ <div class="right-card">
+ <div class="count-region">缁撴灉鍖�</div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script setup>
+const data = reactive({
+ formInline: {
+ num: 1
+ },
+ coalForms: [
+ {
+ name: '',
+ ratio: 0,
+ weight: 0
+ }
+ ],
+})
+const { formInline, coalForms } = toRefs(data)
+
+const updateCoalFields = () => {
+ const num = parseInt(formInline.value.num);
+ if (isNaN(num) || num <= 0) {
+ coalForms.value = [];
+ return;
+ }
+
+ // 濡傛灉褰撳墠鏁扮粍闀垮害澶т簬鎵�闇�鏁伴噺锛屾埅鏂�
+ if (coalForms.value.length > num) {
+ coalForms.value = coalForms.value.slice(0, num);
+ return;
+ }
+
+ // 鍚﹀垯锛屽~鍏呮柊鐨勭┖瀵硅薄
+ while (coalForms.value.length < num) {
+ coalForms.value.push({
+ name: '',
+ ratio: 0,
+ weight: 0
+ });
+ }
+}
+</script>
+
+<style scoped>
+.view {
+ display: flex;
+}
+.left-card {
+ background: #fff;
+ width: calc(100% - 600px);
+ padding: 16px;
+ margin-right: 10px;
+}
+.count-region {
+ font-size: 18px;
+ color: #000000;
+ line-height: 25px;
+}
+.scroll {
+ height: calc(100vh - 14em);
+ overflow-y: auto;
+}
+.title {
+ font-size: 14px;
+ color: #165DFF;
+ line-height: 20px;
+ font-weight: 600;
+ padding-left: 10px;
+ position: relative;
+ margin: 6px 0;
+}
+.title::before {
+ content: "";
+ position: absolute;
+ left: 0;
+ top: 3px; /* 璋冩暣鍨傜洿浣嶇疆 */
+ width: 4px; /* 灏忔暟鏉″搴� */
+ height: 14px; /* 灏忔暟鏉¢珮搴� */
+ background-color: #165DFF; /* 钃濊壊 */
+}
+.el-divider--horizontal {
+ margin: 12px 0;
+}
+.footer {
+ text-align: right;
+}
+
+.right-card {
+ background: #fff;
+ width: 600px;
+ height: auto;
+ padding: 16px;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3