|
@@ -0,0 +1,326 @@
|
|
|
+<script setup>
|
|
|
+import { ref } from 'vue';
|
|
|
+import { NScrollbar } from 'naive-ui';
|
|
|
+import { TheChatView, SvgIcon } from '@/components';
|
|
|
+
|
|
|
+import BaseButton from './components/BaseButton.vue';
|
|
|
+import BaseTitle from './components/BaseTitle.vue';
|
|
|
+import BaseRadioCard from './components/BaseRadioCard.vue';
|
|
|
+import BaseCard from './components/BaseCard.vue';
|
|
|
+import BaseRadioGroup from './components/BaseRadioGroup.vue';
|
|
|
+import BaseChooseItem from './components/BaseChooseItem.vue';
|
|
|
+import BaseInput from './components/BaseInput.vue';
|
|
|
+
|
|
|
+import TheResultCard from './components/TheResultCard.vue';
|
|
|
+import EchartPanel from './components/EchartPanel.vue';
|
|
|
+
|
|
|
+const isVisibleBtn = ref(true);
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+<template>
|
|
|
+ <section class="flex items-start h-full">
|
|
|
+ <TheChatView leftTitle="智适应碳源投加" :isChatSlot="false" :isFooter="false">
|
|
|
+ <template #control>
|
|
|
+ <div class="control-container space-x-[12px]">
|
|
|
+ <div class="left-section">
|
|
|
+
|
|
|
+ <BaseTitle title="智能投加计算">
|
|
|
+ <template #right>
|
|
|
+ <BaseButton>重置</BaseButton>
|
|
|
+ <BaseButton type="gradual">投加计算</BaseButton>
|
|
|
+ </template>
|
|
|
+ </BaseTitle>
|
|
|
+
|
|
|
+ <n-scrollbar class="scrollbar" style="height: 100%;">
|
|
|
+ <div class="form-content">
|
|
|
+ <BaseCard title="选择加药泵">
|
|
|
+ <BaseRadioCard></BaseRadioCard>
|
|
|
+ </BaseCard>
|
|
|
+
|
|
|
+ <BaseCard title="选择运行方式">
|
|
|
+ <BaseRadioGroup :data="['自动', '手动']"></BaseRadioGroup>
|
|
|
+ </BaseCard>
|
|
|
+
|
|
|
+ <BaseCard title="选择池组手自动方式">
|
|
|
+ <BaseRadioGroup :data="['自动', '手动']"></BaseRadioGroup>
|
|
|
+ </BaseCard>
|
|
|
+
|
|
|
+ <BaseCard title="确定智适应碳源设置">
|
|
|
+ <BaseRadioGroup :data="['1号池', '2号池']"></BaseRadioGroup>
|
|
|
+ </BaseCard>
|
|
|
+
|
|
|
+ <BaseCard title="设定数据来源及取数方式">
|
|
|
+ <div class="space-y-[12px]">
|
|
|
+ <BaseChooseItem
|
|
|
+ title="进水流量"
|
|
|
+ :btn-group="[
|
|
|
+ { label: '手动', key: 'hand' }
|
|
|
+ ]"
|
|
|
+ unit="m³"
|
|
|
+ ></BaseChooseItem>
|
|
|
+
|
|
|
+ <BaseChooseItem
|
|
|
+ title="进水COD"
|
|
|
+ :btn-group="[
|
|
|
+ { label: '手动', key: 'hand' },
|
|
|
+ { label: '仪表', key: 'laboratory' },
|
|
|
+ { label: '化验', key: 'assay' },
|
|
|
+ ]"
|
|
|
+ unit="mg/L"
|
|
|
+ ></BaseChooseItem>
|
|
|
+
|
|
|
+ <BaseChooseItem
|
|
|
+ title="好氧池硝酸盐"
|
|
|
+ :btn-group="[
|
|
|
+ { label: '手动', key: 'hand' },
|
|
|
+ { label: '化验', key: 'forecast' },
|
|
|
+ { label: '预测', key: 'forecast' },
|
|
|
+ ]"
|
|
|
+ unit="mg/L"
|
|
|
+ ></BaseChooseItem>
|
|
|
+
|
|
|
+ <BaseChooseItem
|
|
|
+ title="缺氧池硝酸盐"
|
|
|
+ :btn-group="[
|
|
|
+ { label: '手动', key: 'hand' },
|
|
|
+ { label: '化验', key: 'forecast' },
|
|
|
+ ]"
|
|
|
+ unit="mg/L"
|
|
|
+ ></BaseChooseItem>
|
|
|
+
|
|
|
+ <BaseChooseItem
|
|
|
+ title="缺氧池氨氮"
|
|
|
+ :btn-group="[
|
|
|
+ { label: '手动', key: 'hand' },
|
|
|
+ { label: '化验', key: 'forecast' },
|
|
|
+ ]"
|
|
|
+ unit="mg/L"
|
|
|
+ ></BaseChooseItem>
|
|
|
+
|
|
|
+ <BaseChooseItem
|
|
|
+ title="进水总氮"
|
|
|
+ :btn-group="[
|
|
|
+ { label: '手动', key: 'hand' },
|
|
|
+ { label: '仪表', key: 'laboratory' }
|
|
|
+ ]"
|
|
|
+ unit="mg/L"
|
|
|
+ ></BaseChooseItem>
|
|
|
+ </div>
|
|
|
+ </BaseCard>
|
|
|
+
|
|
|
+ <BaseCard title="设定数据来源及取数方式" style="margin: 0" tips="建议使用默认值,非必要不修改">
|
|
|
+ <template #titleRight>
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ class="flex items-center space-x-[4px] cursor-pointer"
|
|
|
+ v-show="isVisibleBtn"
|
|
|
+ @click="isVisibleBtn = false
|
|
|
+ ">
|
|
|
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
|
+ <path d="M2.33337 14H14.3334" stroke="#2454FF" stroke-linecap="round" stroke-linejoin="round" />
|
|
|
+ <path d="M3.66663 8.90663V11.3333H6.10569L13 4.43603L10.565 2L3.66663 8.90663Z" stroke="#2454FF"
|
|
|
+ stroke-linejoin="round" />
|
|
|
+ </svg>
|
|
|
+ <span style="color: #2454FF">编辑</span>
|
|
|
+ </div>
|
|
|
+ <ul class="flex items-center text-[13px] space-x-[8px] cursor-pointer" v-show="!isVisibleBtn">
|
|
|
+ <li class="cursor-pointer">确定</li>
|
|
|
+ <li class="cursor-pointer text-[#B0B7C0]" @click="isVisibleBtn = true">取消</li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <ul class="data-source-list space-y-[12px]">
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>后反馈设定:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23 mg/L</span>
|
|
|
+ <BaseInput unit="mg/L" size='small' :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>基准系数:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>修正系数:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>控制系数:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>水量分配系数:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>碳源当量:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>转换系数:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>稀释配属:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>药剂密度:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>最小启动流量:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ <li class="data-soruce-item">
|
|
|
+ <span>碳氮比:</span>
|
|
|
+ <span class="unit" v-show="isVisibleBtn">12.23</span>
|
|
|
+ <BaseInput size='small' type="text" :isNeedFlotBtn="false" v-show="!isVisibleBtn"></BaseInput>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </BaseCard>
|
|
|
+ </div>
|
|
|
+ </n-scrollbar>
|
|
|
+ </div>
|
|
|
+ <div class="right-section">
|
|
|
+ <TheResultCard></TheResultCard>
|
|
|
+ <EchartPanel></EchartPanel>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </TheChatView>
|
|
|
+ </section>
|
|
|
+</template>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.control-container {
|
|
|
+ @include flex(x, start, start);
|
|
|
+ height: 100%;
|
|
|
+
|
|
|
+ .left-section {
|
|
|
+ display: flex;
|
|
|
+ flex-flow: column;
|
|
|
+ width: 400px;
|
|
|
+ height: 100%;
|
|
|
+ border-radius: 10px;
|
|
|
+ background: #fff;
|
|
|
+
|
|
|
+ .scrollbar {
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .form-content {
|
|
|
+ padding: 24px 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .data-source-list {
|
|
|
+ .data-soruce-item {
|
|
|
+ @include flex(x, center, between);
|
|
|
+ .inp-inner {
|
|
|
+ width: 112px;
|
|
|
+ }
|
|
|
+ .unit {
|
|
|
+ font-family: "D-DIN-PRO-700-Bold";
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+.right-section {
|
|
|
+ display: flex;
|
|
|
+ flex-flow: column;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+
|
|
|
+ .top {
|
|
|
+ flex-shrink: 1;
|
|
|
+ height: 214px;
|
|
|
+ border-radius: 8px;
|
|
|
+ border: 0.5px solid #FFF;
|
|
|
+ background: linear-gradient(90deg, #E0E8FC 0%, #F2F4FF 100%);
|
|
|
+ }
|
|
|
+
|
|
|
+ .bottom {
|
|
|
+ height: 100%;
|
|
|
+ background: pink;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// 通用区域的样式
|
|
|
+
|
|
|
+.btn {
|
|
|
+ width: 80px;
|
|
|
+ height: 32px;
|
|
|
+ border-radius: 4px;
|
|
|
+ border: 1px solid #D3D7DD;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 32px;
|
|
|
+ color: #1A2029;
|
|
|
+}
|
|
|
+
|
|
|
+.btn-primary {
|
|
|
+ border: 0;
|
|
|
+ background: var(--Linear, linear-gradient(270deg, #3BD6E3 0%, #019AFE 100%));
|
|
|
+ font-weight: bold;
|
|
|
+ color: #fff;
|
|
|
+}
|
|
|
+
|
|
|
+.btn-info {
|
|
|
+ width: 44px;
|
|
|
+ height: 28px;
|
|
|
+ border-radius: 4px;
|
|
|
+ border: 1px solid #D3D7DD;
|
|
|
+ background: #fff;
|
|
|
+ font-size: 12px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 28px;
|
|
|
+ color: #1A2029;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.btn-info_active {
|
|
|
+ color: #2454FF;
|
|
|
+ border: 1px solid #2454FF;
|
|
|
+ background: #EBF0FF;
|
|
|
+}
|
|
|
+
|
|
|
+.radio {
|
|
|
+ display: block;
|
|
|
+ width: 12px;
|
|
|
+ height: 12px;
|
|
|
+ border-radius: 100%;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.radio_big {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+}
|
|
|
+
|
|
|
+.radio-active {
|
|
|
+ transition: all .1s;
|
|
|
+ border: 3px solid #2454FF;
|
|
|
+}
|
|
|
+
|
|
|
+.radio_big.radio-active {
|
|
|
+ border: 4px solid #2454FF;
|
|
|
+}
|
|
|
+</style>
|