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