增加天然气计算工具和单位换算,从vue2转vue3
This commit is contained in:
parent
d9ecdc9a53
commit
2bbf42643b
@ -1,8 +1,8 @@
|
||||
# 页面标题
|
||||
VITE_APP_TITLE = 若依管理系统
|
||||
VITE_APP_TITLE = 天然气工具平台
|
||||
|
||||
# 开发环境配置
|
||||
VITE_APP_ENV = 'development'
|
||||
|
||||
# 若依管理系统/开发环境
|
||||
# 天然气工具平台/开发环境
|
||||
VITE_APP_BASE_API = '/dev-api'
|
||||
|
@ -1,10 +1,10 @@
|
||||
# 页面标题
|
||||
VITE_APP_TITLE = 若依管理系统
|
||||
VITE_APP_TITLE = 天然气工具平台
|
||||
|
||||
# 生产环境配置
|
||||
VITE_APP_ENV = 'production'
|
||||
|
||||
# 若依管理系统/生产环境
|
||||
# 天然气工具平台/生产环境
|
||||
VITE_APP_BASE_API = '/prod-api'
|
||||
|
||||
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
||||
|
@ -1,10 +1,10 @@
|
||||
# 页面标题
|
||||
VITE_APP_TITLE = 若依管理系统
|
||||
VITE_APP_TITLE = 天然气工具平台
|
||||
|
||||
# 生产环境配置
|
||||
VITE_APP_ENV = 'staging'
|
||||
|
||||
# 若依管理系统/生产环境
|
||||
# 天然气工具平台/生产环境
|
||||
VITE_APP_BASE_API = '/stage-api'
|
||||
|
||||
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
||||
|
@ -7,7 +7,7 @@
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<title>若依管理系统</title>
|
||||
<title>天然气工具平台</title>
|
||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||
<style>
|
||||
html,
|
||||
|
95
package.json
95
package.json
@ -1,48 +1,49 @@
|
||||
{
|
||||
"name": "ruoyi",
|
||||
"version": "3.8.9",
|
||||
"description": "若依管理系统",
|
||||
"author": "若依",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build:prod": "vite build",
|
||||
"build:stage": "vite build --mode staging",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "2.3.1",
|
||||
"@vueup/vue-quill": "1.2.0",
|
||||
"@vueuse/core": "10.11.0",
|
||||
"axios": "0.28.1",
|
||||
"clipboard": "2.0.11",
|
||||
"echarts": "5.5.1",
|
||||
"element-plus": "2.7.6",
|
||||
"file-saver": "2.0.5",
|
||||
"fuse.js": "6.6.2",
|
||||
"js-beautify": "1.14.11",
|
||||
"js-cookie": "3.0.5",
|
||||
"jsencrypt": "3.3.2",
|
||||
"nprogress": "0.2.0",
|
||||
"pinia": "2.1.7",
|
||||
"splitpanes": "3.1.5",
|
||||
"vue": "3.4.31",
|
||||
"vue-cropper": "1.1.1",
|
||||
"vue-router": "4.4.0",
|
||||
"vuedraggable": "4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "5.0.5",
|
||||
"sass": "1.77.5",
|
||||
"unplugin-auto-import": "0.17.6",
|
||||
"unplugin-vue-setup-extend-plus": "1.0.1",
|
||||
"vite": "5.3.2",
|
||||
"vite-plugin-compression": "0.5.1",
|
||||
"vite-plugin-svg-icons": "2.0.1"
|
||||
}
|
||||
}
|
||||
"name": "ruoyi",
|
||||
"version": "3.8.9",
|
||||
"description": "天然气工具平台",
|
||||
"author": "若依",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build:prod": "vite build",
|
||||
"build": "vite build",
|
||||
"build:stage": "vite build --mode staging",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "2.3.1",
|
||||
"@vueup/vue-quill": "1.2.0",
|
||||
"@vueuse/core": "10.11.0",
|
||||
"axios": "0.28.1",
|
||||
"clipboard": "2.0.11",
|
||||
"echarts": "5.5.1",
|
||||
"element-plus": "2.7.6",
|
||||
"file-saver": "2.0.5",
|
||||
"fuse.js": "6.6.2",
|
||||
"js-beautify": "1.14.11",
|
||||
"js-cookie": "3.0.5",
|
||||
"jsencrypt": "3.3.2",
|
||||
"nprogress": "0.2.0",
|
||||
"pinia": "2.1.7",
|
||||
"splitpanes": "3.1.5",
|
||||
"vue": "3.4.31",
|
||||
"vue-cropper": "1.1.1",
|
||||
"vue-router": "4.4.0",
|
||||
"vuedraggable": "4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "5.0.5",
|
||||
"sass": "1.77.5",
|
||||
"unplugin-auto-import": "0.17.6",
|
||||
"unplugin-vue-setup-extend-plus": "1.0.1",
|
||||
"vite": "5.3.2",
|
||||
"vite-plugin-compression": "0.5.1",
|
||||
"vite-plugin-svg-icons": "2.0.1"
|
||||
}
|
||||
}
|
24
src/api/ngtools/NGCalcTools.js
Normal file
24
src/api/ngtools/NGCalcTools.js
Normal file
@ -0,0 +1,24 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 天然气物性参数计算
|
||||
export function calcNGPar(data) {
|
||||
return request({
|
||||
url: '/NGCalcTools/ngCalc',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
// 天然气物性参数计算
|
||||
export function calcFlow(data) {
|
||||
return request({
|
||||
url: '/flowCalcTools/flowCalc',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
44
src/api/ngtools/components.js
Normal file
44
src/api/ngtools/components.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询天然气组分列表
|
||||
export function listComponents(query) {
|
||||
return request({
|
||||
url: '/ngtools/components/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询天然气组分详细
|
||||
export function getComponents(id) {
|
||||
return request({
|
||||
url: '/ngtools/components/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增天然气组分
|
||||
export function addComponents(data) {
|
||||
return request({
|
||||
url: '/ngtools/components',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改天然气组分
|
||||
export function updateComponents(data) {
|
||||
return request({
|
||||
url: '/ngtools/components',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除天然气组分
|
||||
export function delComponents(id) {
|
||||
return request({
|
||||
url: '/ngtools/components/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
src/api/ngtools/meterpar.js
Normal file
44
src/api/ngtools/meterpar.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询流量计参数列表
|
||||
export function listMeterpar(query) {
|
||||
return request({
|
||||
url: '/ngtools/meterpar/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询流量计参数详细
|
||||
export function getMeterpar(id) {
|
||||
return request({
|
||||
url: '/ngtools/meterpar/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增流量计参数
|
||||
export function addMeterpar(data) {
|
||||
return request({
|
||||
url: '/ngtools/meterpar',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改流量计参数
|
||||
export function updateMeterpar(data) {
|
||||
return request({
|
||||
url: '/ngtools/meterpar',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除流量计参数
|
||||
export function delMeterpar(id) {
|
||||
return request({
|
||||
url: '/ngtools/meterpar/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
src/api/ngtools/meterresult.js
Normal file
44
src/api/ngtools/meterresult.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询流量计算结果列表
|
||||
export function listMeterresult(query) {
|
||||
return request({
|
||||
url: '/ngtools/meterresult/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询流量计算结果详细
|
||||
export function getMeterresult(id) {
|
||||
return request({
|
||||
url: '/ngtools/meterresult/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增流量计算结果
|
||||
export function addMeterresult(data) {
|
||||
return request({
|
||||
url: '/ngtools/meterresult',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改流量计算结果
|
||||
export function updateMeterresult(data) {
|
||||
return request({
|
||||
url: '/ngtools/meterresult',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除流量计算结果
|
||||
export function delMeterresult(id) {
|
||||
return request({
|
||||
url: '/ngtools/meterresult/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
src/api/ngtools/ngpar.js
Normal file
44
src/api/ngtools/ngpar.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询天然气物性参数列表
|
||||
export function listNgpar(query) {
|
||||
return request({
|
||||
url: '/ngtools/ngpar/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询天然气物性参数详细
|
||||
export function getNgpar(id) {
|
||||
return request({
|
||||
url: '/ngtools/ngpar/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增天然气物性参数
|
||||
export function addNgpar(data) {
|
||||
return request({
|
||||
url: '/ngtools/ngpar',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改天然气物性参数
|
||||
export function updateNgpar(data) {
|
||||
return request({
|
||||
url: '/ngtools/ngpar',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除天然气物性参数
|
||||
export function delNgpar(id) {
|
||||
return request({
|
||||
url: '/ngtools/ngpar/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
src/api/system/sysUnitConvert.js
Normal file
44
src/api/system/sysUnitConvert.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询单位换算列表
|
||||
export function listSysUnitConvert(query) {
|
||||
return request({
|
||||
url: '/system/sysUnitConvert/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询单位换算详细
|
||||
export function getSysUnitConvert(id) {
|
||||
return request({
|
||||
url: '/system/sysUnitConvert/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增单位换算
|
||||
export function addSysUnitConvert(data) {
|
||||
return request({
|
||||
url: '/system/sysUnitConvert',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改单位换算
|
||||
export function updateSysUnitConvert(data) {
|
||||
return request({
|
||||
url: '/system/sysUnitConvert',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除单位换算
|
||||
export function delSysUnitConvert(id) {
|
||||
return request({
|
||||
url: '/system/sysUnitConvert/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
src/api/system/treeDict.js
Normal file
44
src/api/system/treeDict.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询树形字典列表
|
||||
export function listTreeDict(query) {
|
||||
return request({
|
||||
url: '/system/treeDict/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询树形字典详细
|
||||
export function getTreeDict(id) {
|
||||
return request({
|
||||
url: '/system/treeDict/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增树形字典
|
||||
export function addTreeDict(data) {
|
||||
return request({
|
||||
url: '/system/treeDict',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改树形字典
|
||||
export function updateTreeDict(data) {
|
||||
return request({
|
||||
url: '/system/treeDict',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除树形字典
|
||||
export function delTreeDict(id) {
|
||||
return request({
|
||||
url: '/system/treeDict/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.4 KiB |
BIN
src/assets/logo/logo11.png
Normal file
BIN
src/assets/logo/logo11.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
263
src/components/NGTools/NGCom.vue
Normal file
263
src/components/NGTools/NGCom.vue
Normal file
@ -0,0 +1,263 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form label-position="top" size="small" :inline="true" class="component-form">
|
||||
<!-- <el-row> -->
|
||||
<!-- 常用组分选择框 -->
|
||||
<!-- <el-col :span="10"> -->
|
||||
<el-form-item label="常用组分" :style="{ width: selectWidth + 'px' }">
|
||||
<el-select v-model="selectedComponent" @change="handleComponentChange" placeholder="请选择常用组分" clearable filterable>
|
||||
<el-option v-for="dict in ngtools_cyzf" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- </el-col> -->
|
||||
<!-- 合计输入框 -->
|
||||
<!-- <el-col :span="6"> -->
|
||||
<el-form-item label="合计" :style="{ width: selectWidth + 'px' }">
|
||||
<el-input :value="totalPercentage" readonly class="total-input" />
|
||||
</el-form-item>
|
||||
<!-- </el-col> -->
|
||||
<!-- </el-row> -->
|
||||
</el-form>
|
||||
|
||||
<el-form :model="formData" label-position="top" size="small" :inline="true" class="component-form">
|
||||
<el-form-item v-for="field in componentFields" :key="field.prop" :label="field.label" :prop="field.prop" :style="{ width: selectWidth + 'px' }">
|
||||
<el-input v-model="formData[field.prop]" controls-position="right" @change="handleValueChange" @focus="selectAllText" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch, onMounted, computed } from 'vue';
|
||||
import { listComponents, getComponents, delComponents, addComponents, updateComponents } from '@/api/ngtools/components';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { ngtools_cyzf } = proxy.useDict('ngtools_cyzf');
|
||||
// 字段配置元数据
|
||||
const COMPONENT_FIELDS = [
|
||||
{
|
||||
prop: 'ngC1',
|
||||
label: '甲烷C1'
|
||||
},
|
||||
{
|
||||
prop: 'ngN2',
|
||||
label: '氮气N2'
|
||||
},
|
||||
{
|
||||
prop: 'ngCo2',
|
||||
label: '二氧化碳CO2'
|
||||
},
|
||||
{
|
||||
prop: 'ngC2',
|
||||
label: '乙烷C2'
|
||||
},
|
||||
{
|
||||
prop: 'ngC3',
|
||||
label: '丙烷C3'
|
||||
},
|
||||
{
|
||||
prop: 'ngH2o',
|
||||
label: '水H2O'
|
||||
},
|
||||
{
|
||||
prop: 'ngH2s',
|
||||
label: '硫化氢H2S'
|
||||
},
|
||||
{
|
||||
prop: 'ngH2',
|
||||
label: '氢气H2'
|
||||
},
|
||||
{
|
||||
prop: 'ngCo',
|
||||
label: '一氧化碳CO'
|
||||
},
|
||||
{
|
||||
prop: 'ngO2',
|
||||
label: '氧气O2'
|
||||
},
|
||||
{
|
||||
prop: 'ngIc4',
|
||||
label: '异丁烷iC4'
|
||||
},
|
||||
{
|
||||
prop: 'ngNc4',
|
||||
label: '正丁烷nC4'
|
||||
},
|
||||
{
|
||||
prop: 'ngIc5',
|
||||
label: '异戊烷iC5'
|
||||
},
|
||||
{
|
||||
prop: 'ngNc5',
|
||||
label: '正戊烷nC5'
|
||||
},
|
||||
{
|
||||
prop: 'ngC6',
|
||||
label: '己烷C6'
|
||||
},
|
||||
{
|
||||
prop: 'ngC7',
|
||||
label: '庚烷C7'
|
||||
},
|
||||
{
|
||||
prop: 'ngC8',
|
||||
label: '辛烷C8'
|
||||
},
|
||||
{
|
||||
prop: 'ngC9',
|
||||
label: '壬烷C9'
|
||||
},
|
||||
{
|
||||
prop: 'ngC10',
|
||||
label: '癸烷C10'
|
||||
},
|
||||
{
|
||||
prop: 'ngHe',
|
||||
label: '氦气He'
|
||||
},
|
||||
{
|
||||
prop: 'ngAr',
|
||||
label: '氩气Ar'
|
||||
}
|
||||
];
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
elFormWidth: {
|
||||
type: Number,
|
||||
default: 180
|
||||
}
|
||||
});
|
||||
|
||||
// 定义 emits
|
||||
const emits = defineEmits(['update:modelValue']);
|
||||
|
||||
// 定义响应式数据
|
||||
const selectWidth = ref(0);
|
||||
const selectedComponent = ref(null);
|
||||
const formData = ref(initFormData());
|
||||
const componentFields = ref(COMPONENT_FIELDS);
|
||||
|
||||
// 计算属性
|
||||
const totalPercentage = computed(() => {
|
||||
return Object.values(formData.value)
|
||||
.reduce((sum, val) => sum + (parseFloat(val) || 0), 0)
|
||||
.toFixed(4);
|
||||
});
|
||||
|
||||
// 初始化表单数据
|
||||
function initFormData() {
|
||||
return COMPONENT_FIELDS.reduce((acc, field) => {
|
||||
acc[field.prop] = 0;
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
|
||||
// 全选输入框文本
|
||||
function selectAllText(event) {
|
||||
const inputElement = event.target;
|
||||
inputElement.select();
|
||||
}
|
||||
|
||||
// 解析传入的字符串值
|
||||
function parseValueString(valueStr) {
|
||||
const values = (valueStr || '').split('_');
|
||||
componentFields.value.forEach((field, index) => {
|
||||
const value = parseFloat(values[index]) || 0;
|
||||
formData.value[field.prop] = value;
|
||||
});
|
||||
}
|
||||
|
||||
// 生成要输出的字符串值
|
||||
function generateValueString() {
|
||||
return Object.values(formData.value)
|
||||
.map((v) => v.toFixed(4))
|
||||
.join('_');
|
||||
}
|
||||
|
||||
// 处理组件选择变化
|
||||
async function handleComponentChange(value) {
|
||||
if (!value) return;
|
||||
console.log(value);
|
||||
try {
|
||||
const temp = value.replace(/\\'"/g, '"').replace(/'/g, '"');
|
||||
const componentData = Object.assign({}, formData.value, JSON.parse(temp));
|
||||
Object.keys(formData.value).forEach((key) => {
|
||||
formData.value[key] = parseFloat(componentData[key]) || 0;
|
||||
});
|
||||
emitUpdate();
|
||||
} catch (error) {
|
||||
// 这里假设使用了 ElementPlus 的消息提示,需要根据实际情况修改
|
||||
ElMessage.error('获取标准组分失败');
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理值变化
|
||||
function handleValueChange() {
|
||||
nextTick(() => {
|
||||
emitUpdate();
|
||||
});
|
||||
}
|
||||
|
||||
// 触发更新事件
|
||||
function emitUpdate() {
|
||||
if (Math.abs(parseFloat(totalPercentage.value) - 100) > 0.0001) {
|
||||
// 这里假设使用了 ElementPlus 的消息提示,需要根据实际情况修改
|
||||
ElMessage.warning('组分合计不等于100%,请检查输入');
|
||||
}
|
||||
console.log(generateValueString());
|
||||
emits('update:modelValue', generateValueString());
|
||||
}
|
||||
|
||||
// 获取组分数据
|
||||
async function fetchComponentData(params) {
|
||||
try {
|
||||
const { data } = await getComponents(params);
|
||||
parseValueString(data.componentStr);
|
||||
} catch (error) {
|
||||
console.error('获取组分数据失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// 监听 elFormWidth 的变化
|
||||
watch(
|
||||
() => props.elFormWidth,
|
||||
(newVal) => {
|
||||
selectWidth.value = newVal;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 监听 value 的变化
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(newVal) => {
|
||||
parseValueString(newVal);
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
// 挂载后设置 selectWidth
|
||||
onMounted(() => {
|
||||
selectWidth.value = props.elFormWidth;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.component-form {
|
||||
display: grid;
|
||||
/* 优化后的自适应规则 */
|
||||
grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
/* 在 Vue 3 中使用 :deep() 替代 >>> */
|
||||
:deep(.total-input .el-input__inner) {
|
||||
font-weight: bold;
|
||||
color: #409eff;
|
||||
}
|
||||
</style>
|
326
src/components/NGTools/NGResult.vue
Normal file
326
src/components/NGTools/NGResult.vue
Normal file
@ -0,0 +1,326 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- <div>当前 dMeterType 的值: {{ dMeterType }}</div>
|
||||
<div>NGResult 数据: {{ NGResult }}</div> -->
|
||||
<h3 v-if="dMeterType === '4'">GB/T 17747</h3>
|
||||
<el-form v-if="dMeterType === '4'" :model="NGResult" label-position="top" ref="queryRef" size="small" :inline="false" label-width="160px" class="flex-form">
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="分子量" prop="dMrx">
|
||||
<el-input readonly v-model="NGResult.dMrx" placeholder="请输入分子量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="标况压缩因子" prop="dZb">
|
||||
<el-input readonly v-model="NGResult.dZb" placeholder="请输入标况压缩因子" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="工况压缩因子" prop="dZf">
|
||||
<el-input readonly v-model="NGResult.dZf" placeholder="请输入工况压缩因子" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="超压缩系数" prop="dFpv">
|
||||
<el-input readonly v-model="NGResult.dFpv" placeholder="请输入超压缩系数" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="标况摩尔密度" prop="dDb">
|
||||
<el-input readonly v-model="NGResult.dDb" placeholder="请输入标况摩尔密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="工况摩尔密度" prop="dDf">
|
||||
<el-input readonly v-model="NGResult.dDf" placeholder="请输入工况摩尔密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="标况质量密度" prop="dRhob">
|
||||
<el-input readonly v-model="NGResult.dRhob" placeholder="请输入标况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="工况质量密度" prop="dRhof">
|
||||
<el-input readonly v-model="NGResult.dRhof" placeholder="请输入工况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="理想气体的相对密度" prop="dRD_Ideal">
|
||||
<el-input readonly v-model="NGResult.dRD_Ideal" placeholder="请输入理想气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="真实气体的相对密度" prop="dRD_Real">
|
||||
<el-input readonly v-model="NGResult.dRD_Real" placeholder="请输入真实气体的相对密度" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<h3 v-if="dMeterType === '5'">AGA No10</h3>
|
||||
<el-form v-if="dMeterType === '5'" :model="NGResult" label-position="top" ref="queryRef" size="small" :inline="false" label-width="160px" class="flex-form">
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="理想气体的比焓" prop="dHo">
|
||||
<el-input readonly v-model="NGResult.dHo" placeholder="请输入理想气体的比焓" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="真实气体的焓" prop="dH">
|
||||
<el-input readonly v-model="NGResult.dH" placeholder="请输入真实气体的焓" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="真实气体的熵" prop="dS">
|
||||
<el-input readonly v-model="NGResult.dS" placeholder="请输入真实气体的熵" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="理想气体定压热容" prop="dCpi">
|
||||
<el-input readonly v-model="NGResult.dCpi" placeholder="请输入理想气体定压热容" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="定压热容" prop="dCp">
|
||||
<el-input readonly v-model="NGResult.dCp" placeholder="请输入定压热容" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="定容积热容" prop="dCv">
|
||||
<el-input readonly v-model="NGResult.dCv" placeholder="请输入定容积热容" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="比热比" prop="dk">
|
||||
<el-input readonly v-model="NGResult.dk" placeholder="请输入比热比" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="等熵指数" prop="dKappa">
|
||||
<el-input readonly v-model="NGResult.dKappa" placeholder="请输入等熵指数" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="声速" prop="dSOS">
|
||||
<unit-converter
|
||||
v-model="NGResult.dSOS"
|
||||
:unit-type="'speed'"
|
||||
v-model:unit-order="NGResult.dSOSUnit"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:input-disable="true"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
<!-- <el-input readonly v-model="NGResult.dSOS" placeholder="请输入声速" /> -->
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="临界流函数" prop="dCstar">
|
||||
<el-input readonly v-model="NGResult.dCstar" placeholder="请输入临界流函数" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<h3 v-if="dMeterType === '6'">GB/T 11062</h3>
|
||||
<el-form v-if="dMeterType === '6'" :model="NGResult" label-position="top" ref="queryRef" size="small" :inline="false" label-width="160px" class="flex-form">
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="摩尔高位发热量" prop="dHhvMol">
|
||||
<el-input readonly v-model="NGResult.dHhvMol" placeholder="请输入摩尔高位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="摩尔低位发热量" prop="dLhvMol">
|
||||
<el-input readonly v-model="NGResult.dLhvMol" placeholder="请输入摩尔低位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="体积高位发热量" prop="dHhvv">
|
||||
<el-input readonly v-model="NGResult.dHhvv" placeholder="请输入体积高位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="体积低位发热量" prop="dLhvv">
|
||||
<el-input readonly v-model="NGResult.dLhvv" placeholder="请输入体积低位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="质量高位发热量" prop="dHhvm">
|
||||
<el-input readonly v-model="NGResult.dHhvm" placeholder="请输入质量高位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="质量地位发热量" prop="dLhvm">
|
||||
<el-input readonly v-model="NGResult.dLhvm" placeholder="请输入质量地位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="标况压缩因子" prop="dZb11062">
|
||||
<el-input readonly v-model="NGResult.dZb11062" placeholder="请输入标况压缩因子" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="标况质量密度" prop="dRhob11062">
|
||||
<el-input readonly v-model="NGResult.dRhob11062" placeholder="请输入标况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="工况质量密度" prop="dRhof11062">
|
||||
<el-input readonly v-model="NGResult.dRhof11062" placeholder="请输入工况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="理想气体的相对密度" prop="dRD_Ideal11062">
|
||||
<el-input readonly v-model="NGResult.dRD_Ideal11062" placeholder="请输入理想气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="真实气体的相对密度" prop="dRD_Real11062">
|
||||
<el-input readonly v-model="NGResult.dRD_Real11062" placeholder="请输入真实气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="真实气体的沃泊指数" prop="dWobbeIndex">
|
||||
<el-input readonly v-model="NGResult.dWobbeIndex" placeholder="请输入真实气体的沃泊指数" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<h3 v-if="dMeterType === '7'">其他</h3>
|
||||
<el-form v-if="dMeterType === '7'" :model="NGResult" label-position="top" ref="queryRef" size="small" :inline="false" label-width="160px" class="flex-form">
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="临界压力" prop="dPc">
|
||||
<el-input readonly v-model="NGResult.dPc" placeholder="请输入临界压力" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="临界温度" prop="dTC">
|
||||
<el-input readonly v-model="NGResult.dTC" placeholder="请输入临界温度" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="爆炸上限" prop="dBzsx">
|
||||
<el-input readonly v-model="NGResult.dBzsx" placeholder="请输入爆炸上限" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="爆炸下限" prop="dBzxx">
|
||||
<el-input readonly v-model="NGResult.dBzxx" placeholder="请输入爆炸下限" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="总炭含量(kg/m3)" prop="dTotalC">
|
||||
<el-input readonly v-model="NGResult.dTotalC" placeholder="请输入总炭含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C2组分含量(kg/m3)" prop="dC2">
|
||||
<el-input readonly v-model="NGResult.dC2" placeholder="请输入C2组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C2以上组分含量(kg/m3)" prop="dC2j">
|
||||
<el-input readonly v-model="NGResult.dC2j" placeholder="请输入C2以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C3以上组分含量(kg/m3)" prop="dC3j">
|
||||
<el-input readonly v-model="NGResult.dC3j" placeholder="请输入C3以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C4以上组分含量(kg/m3)" prop="dC4j">
|
||||
<el-input readonly v-model="NGResult.dC4j" placeholder="请输入C4以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C5以上组分含量(kg/m3)" prop="dC5j">
|
||||
<el-input readonly v-model="NGResult.dC5j" placeholder="请输入C5以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C6以上组分含量(kg/m3)" prop="dC6j">
|
||||
<el-input readonly v-model="NGResult.dC6j" placeholder="请输入C6以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="C3C4组分含量(kg/m3)" prop="dC3C4">
|
||||
<el-input readonly v-model="NGResult.dC3C4" placeholder="请输入C3C4组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch, onMounted } from 'vue';
|
||||
import unitConverter from '@/components/inputValueUnit/index';
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps({
|
||||
elFormWidth: {
|
||||
type: Number,
|
||||
default: 180
|
||||
},
|
||||
dMeterType: {
|
||||
type: String,
|
||||
default: 0
|
||||
},
|
||||
modelValue: {
|
||||
type: Object,
|
||||
default: () => ({
|
||||
dMrx: 0,
|
||||
dZb: 0,
|
||||
dZf: 0,
|
||||
dFpv: 0,
|
||||
dDb: 0,
|
||||
dDf: 0,
|
||||
dRhob: 0,
|
||||
dRhof: 0,
|
||||
dRD_Ideal: 0,
|
||||
dRD_Real: 0,
|
||||
dHo: 0,
|
||||
dH: 0,
|
||||
dS: 0,
|
||||
dCpi: 0,
|
||||
dCp: 0,
|
||||
dCv: 0,
|
||||
dk: 0,
|
||||
dKappa: 0,
|
||||
dSOS: 0,
|
||||
dCstar: 0,
|
||||
dHhvMol: 0,
|
||||
dLhvMol: 0,
|
||||
dHhvv: 0,
|
||||
dLhvv: 0,
|
||||
dHhvm: 0,
|
||||
dLhvm: 0,
|
||||
dZb11062: 0,
|
||||
dRhob11062: 0,
|
||||
dRhof11062: 0,
|
||||
dRD_Ideal11062: 0,
|
||||
dRD_Real11062: 0,
|
||||
dWobbeIndex: 0,
|
||||
dPc: 0,
|
||||
dTC: 0,
|
||||
dBzsx: 0,
|
||||
dBzxx: 0,
|
||||
dTotalC: 0,
|
||||
dC2: 0,
|
||||
dC2j: 0,
|
||||
dC3j: 0,
|
||||
dC4j: 0,
|
||||
dC5j: 0,
|
||||
dC6j: 0,
|
||||
dC3C4: 0
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
// 定义响应式数据
|
||||
const NGResult = ref({
|
||||
dMrx: 0,
|
||||
dZb: 0,
|
||||
dZf: 0,
|
||||
dFpv: 0,
|
||||
dDb: 0,
|
||||
dDf: 0,
|
||||
dRhob: 0,
|
||||
dRhof: 0,
|
||||
dRD_Ideal: 0,
|
||||
dRD_Real: 0,
|
||||
dHo: 0,
|
||||
dH: 0,
|
||||
dS: 0,
|
||||
dCpi: 0,
|
||||
dCp: 0,
|
||||
dCv: 0,
|
||||
dk: 0,
|
||||
dKappa: 0,
|
||||
dSOS: 0,
|
||||
dSOSUnit: 0,
|
||||
dCstar: 0,
|
||||
dHhvMol: 0,
|
||||
dLhvMol: 0,
|
||||
dHhvv: 0,
|
||||
dLhvv: 0,
|
||||
dHhvm: 0,
|
||||
dLhvm: 0,
|
||||
dZb11062: 0,
|
||||
dRhob11062: 0,
|
||||
dRhof11062: 0,
|
||||
dRD_Ideal11062: 0,
|
||||
dRD_Real11062: 0,
|
||||
dWobbeIndex: 0,
|
||||
dPc: 0,
|
||||
dTC: 0,
|
||||
dBzsx: 0,
|
||||
dBzxx: 0,
|
||||
dTotalC: 0,
|
||||
dC2: 0,
|
||||
dC2j: 0,
|
||||
dC3j: 0,
|
||||
dC4j: 0,
|
||||
dC5j: 0,
|
||||
dC6j: 0,
|
||||
dC3C4: 0
|
||||
});
|
||||
const selectWidth = ref(180);
|
||||
|
||||
// 监听 elFormWidth 的变化
|
||||
watch(
|
||||
() => props.elFormWidth,
|
||||
(newVal) => {
|
||||
selectWidth.value = newVal;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 监听 value 的变化
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(newVal) => {
|
||||
console.log(newVal);
|
||||
const processedValue = { ...newVal };
|
||||
for (const key in processedValue) {
|
||||
if (processedValue.hasOwnProperty(key)) {
|
||||
const value = processedValue[key];
|
||||
// 判断是否为有效的数值
|
||||
if (typeof value === 'number' && !isNaN(value) && isFinite(value)) {
|
||||
// 使用 toFixed 方法设置小数点位数
|
||||
processedValue[key] = parseFloat(value.toFixed(6));
|
||||
}
|
||||
}
|
||||
}
|
||||
NGResult.value = JSON.parse(JSON.stringify(processedValue));
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 挂载后设置 selectWidth
|
||||
onMounted(() => {
|
||||
selectWidth.value = props.elFormWidth;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 可按需添加样式 */
|
||||
.app-container {
|
||||
height: 100%;
|
||||
}
|
||||
.flex-form {
|
||||
display: grid;
|
||||
/* 优化后的自适应规则 */
|
||||
grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
|
||||
gap: 5px;
|
||||
}
|
||||
</style>
|
422
src/components/NGTools/meterPar.vue
Normal file
422
src/components/NGTools/meterPar.vue
Normal file
@ -0,0 +1,422 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="meterPar" ref="dataForm" label-position="top" size="small" :inline="true" label-width="160px" class="flex-form">
|
||||
<el-form-item v-if="['0', '1', '2', '3'].includes(meterPar.dMeterType)" :style="{ width: selectWidth + 'px' }" label="流量计类别" prop="dMeterType">
|
||||
<el-select :key="'meter-type-' + meterPar.dMeterType" v-model="meterPar.dMeterType" placeholder="请选择流量计类别 " clearable>
|
||||
<el-option v-for="dict in ngtools_lljlx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="计算标准" prop="dFlowCalbz">
|
||||
<el-select v-model="meterPar.dFlowCalbz" placeholder="请选择计算标准 " clearable>
|
||||
<el-option v-for="dict in ngtools_lljsbz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="压缩因子计算标准" prop="dZcalbz">
|
||||
<el-select v-model="meterPar.dZcalbz" placeholder="请选择压缩因子计算标准 " clearable>
|
||||
<el-option v-for="dict in ngtools_ysyzjsbz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="计量参比条件压力" prop="dCbtj">
|
||||
<el-select v-model="meterPar.dCbtj" placeholder="请选择计量参比条件压力 " clearable>
|
||||
<el-option v-for="dict in ngtools_cbtj" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="节流装置类型" prop="dCoreType">
|
||||
<el-select v-model="meterPar.dCoreType" placeholder="请选择节流装置类型 " clearable>
|
||||
<el-option v-for="dict in ngtools_jlzzlx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="取压方式" prop="dPtmode">
|
||||
<el-select v-model="meterPar.dPtmode" placeholder="请选择取压方式 " clearable>
|
||||
<el-option v-for="dict in ngtools_qyfs" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="管道类型" prop="dPipeType">
|
||||
<el-select v-model="meterPar.dPipeType" placeholder="请选择管道类型 " clearable>
|
||||
<el-option v-for="dict in ngtools_gdlx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="管道材料" prop="dPipeMaterial">
|
||||
<el-select v-model="meterPar.dPipeMaterial" placeholder="请选择管道材料 " clearable>
|
||||
<el-option v-for="dict in ngtools_gdcz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="孔板材料" prop="dOrificeMaterial">
|
||||
<el-select v-model="meterPar.dOrificeMaterial" placeholder="请选择孔板材料 " clearable>
|
||||
<el-option v-for="dict in ngtools_gdcz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '0' || meterPar.dMeterType === '3'" :style="{ width: selectWidth + 'px' }" label="管道内径" prop="dPipeD">
|
||||
<unit-converter
|
||||
v-model="meterPar.dPipeD"
|
||||
:unit-type="'length'"
|
||||
v-model:unit-order="meterPar.dLenUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="孔板孔径" prop="dOrificeD">
|
||||
<unit-converter
|
||||
v-model="meterPar.dOrificeD"
|
||||
:unit-type="'length'"
|
||||
v-model:unit-order="meterPar.dOrificeUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dMeterType === '3'" :style="{ width: selectWidth + 'px' }" label="喉部直径" prop="dOrificeD">
|
||||
<unit-converter
|
||||
v-model="meterPar.dOrificeD"
|
||||
:unit-type="'length'"
|
||||
v-model:unit-order="meterPar.dOrificeUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="压力类型" prop="dPfType">
|
||||
<el-select v-model="meterPar.dPfType" placeholder="请选择压力类型 " clearable>
|
||||
<el-option v-for="dict in ngtools_yllx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dPfType === '0'" :style="{ width: selectWidth + 'px' }" label="当地大气压" prop="dPatm">
|
||||
<unit-converter
|
||||
v-model="meterPar.dPatm"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dPatmUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="6"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="输入压力" prop="dPf">
|
||||
<unit-converter
|
||||
v-model="meterPar.dPf"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dPfUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="输入温度" prop="dTf">
|
||||
<unit-converter
|
||||
v-model="meterPar.dTf"
|
||||
:unit-type="'temperature'"
|
||||
v-model:unit-order="meterPar.dTfUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="输入差压" prop="dDp">
|
||||
<unit-converter
|
||||
v-model="meterPar.dDp"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dDpUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item :style="{ width: selectWidth + 'px' }" label="体积流量单位" prop="dVFlowUnit">
|
||||
<el-input v-model="meterPar.dVFlowUnit" placeholder="请输入体积流量单位 " clearable />
|
||||
</el-form-item >
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="质量流量单位" prop="dMFlowUnit">
|
||||
<el-input v-model="meterPar.dMFlowUnit" placeholder="请输入质量流量单位 " clearable />
|
||||
</el-form-item >
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="能量流量单位" prop="dEFlowUnit">
|
||||
<el-input v-model="meterPar.dEFlowUnit" placeholder="请输入能量流量单位 " clearable />
|
||||
</el-form-item > -->
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '3'" :style="{ width: selectWidth + 'px' }" label="流出系数" prop="dCd">
|
||||
<el-input v-model="meterPar.dCd" placeholder="请输入流出系数 " clearable />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :style="{ width: selectWidth + 'px' }" label="流出系数计算方法" prop="dCdCalMethod">
|
||||
<el-select v-model="meterPar.dCdCalMethod" placeholder="请选择流出系数计算方法 " clearable >
|
||||
<el-option v-for="dict in ngtools_lcxsjsff" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item > -->
|
||||
<el-form-item v-if="meterPar.dMeterType === '1' || meterPar.dMeterType === '2'" :style="{ width: selectWidth + 'px' }" label="仪表系数" prop="dMeterFactor">
|
||||
<el-input v-model="meterPar.dMeterFactor" placeholder="请输入仪表系数 " clearable />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dMeterType === '1' || meterPar.dMeterType === '2'" :style="{ width: selectWidth + 'px' }" label="脉冲数" prop="dPulseNum">
|
||||
<unit-converter
|
||||
v-model="meterPar.dPulseNum"
|
||||
:unit-type="'user'"
|
||||
v-model:unit-order="meterPar.dVGscUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:user-defined="true"
|
||||
:user-definedunit-name="'个'"
|
||||
:enable-convert="false"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dMeterType === '5'" :style="{ width: selectWidth + 'px' }" label="管束车容积" prop="dVGsc">
|
||||
<unit-converter
|
||||
v-model="meterPar.dVGsc"
|
||||
:unit-type="'volume'"
|
||||
v-model:unit-order="meterPar.dVGscUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="最大体积流量" prop="dVFlowMax">
|
||||
<unit-converter
|
||||
v-model="meterPar.dVFlowMax"
|
||||
:unit-type="'volumeflow'"
|
||||
v-model:unit-order="meterPar.dVFlowUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="最小体积流量" prop="dVFlowMin">
|
||||
<unit-converter
|
||||
v-model="meterPar.dVFlowMin"
|
||||
:unit-type="'volumeflow'"
|
||||
v-model:unit-order="meterPar.dVFlowUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="常用流量" prop="dVFlowCon">
|
||||
<unit-converter
|
||||
v-model="meterPar.dVFlowCon"
|
||||
:unit-type="'volumeflow'"
|
||||
v-model:unit-order="meterPar.dVFlowUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:enable-convert="true"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="压力量程下限" prop="dPfRangeMin">
|
||||
<unit-converter
|
||||
v-model="meterPar.dPfRangeMin"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dPfUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="压力量程上限" prop="dPfRangeMax">
|
||||
<unit-converter
|
||||
v-model="meterPar.dPfRangeMax"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dPfUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="差压量程下限" prop="dDpRangeMin">
|
||||
<unit-converter
|
||||
v-model="meterPar.dDpRangeMin"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dDpUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="差压量程上限" prop="dDpRangeMax">
|
||||
<unit-converter
|
||||
v-model="meterPar.dDpRangeMax"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterPar.dDpUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="温度计量程下限" prop="dTfRangeMin">
|
||||
<unit-converter
|
||||
v-model="meterPar.dTfRangeMin"
|
||||
:unit-type="'temperature'"
|
||||
v-model:unit-order="meterPar.dTfUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="meterPar.dBqdd === '1'" :style="{ width: selectWidth + 'px' }" label="温度计量程上限" prop="dTfRangeMax">
|
||||
<unit-converter
|
||||
v-model="meterPar.dTfRangeMax"
|
||||
:unit-type="'temperature'"
|
||||
v-model:unit-order="meterPar.dTfUnit"
|
||||
:show-english-only="false"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, watch, onMounted, toRefs } from 'vue';
|
||||
import _ from 'lodash';
|
||||
import unitConverter from '@/components/inputValueUnit/index';
|
||||
|
||||
// 定义组件名称
|
||||
const __name = 'meterParComponents';
|
||||
const { proxy } = getCurrentInstance();
|
||||
// 定义字典数组
|
||||
const { ngtools_cbtj, ngtools_jlzzlx, ngtools_lljlx, ngtools_qyfs, ngtools_gdcz, ngtools_lcxsjsff, ngtools_gdlx, ngtools_yllx, ngtools_lljsbz, ngtools_ysyzjsbz } = proxy.useDict(
|
||||
'ngtools_cbtj',
|
||||
'ngtools_jlzzlx',
|
||||
'ngtools_lljlx',
|
||||
'ngtools_qyfs',
|
||||
'ngtools_gdcz',
|
||||
'ngtools_lcxsjsff',
|
||||
'ngtools_gdlx',
|
||||
'ngtools_yllx',
|
||||
'ngtools_lljsbz',
|
||||
'ngtools_ysyzjsbz'
|
||||
);
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Object,
|
||||
default: () => ({
|
||||
dFlowCalbz: null,
|
||||
dZcalbz: null,
|
||||
dCbtj: null,
|
||||
dpbM: null,
|
||||
dtbM: null,
|
||||
dpbE: null,
|
||||
dtbE: null,
|
||||
dPatm: null,
|
||||
dPatmUnit: null,
|
||||
dngCompents: null,
|
||||
dMeterType: null,
|
||||
dCoreType: null,
|
||||
dPtmode: null,
|
||||
dPipeType: null,
|
||||
dPipeD: null,
|
||||
dLenUnit: null,
|
||||
dPipeDtemp: null,
|
||||
dPileDtempU: null,
|
||||
dPipeMaterial: null,
|
||||
dOrificeD: null,
|
||||
dOrificeUnit: null,
|
||||
dOrificeDtemp: null,
|
||||
dOrificeDtempUnit: null,
|
||||
dOrificeMaterial: null,
|
||||
dOrificeSharpness: null,
|
||||
dOrificeRk: null,
|
||||
dOrificeRkLenU: null,
|
||||
dPf: null,
|
||||
dPfUnit: null,
|
||||
dPfType: null,
|
||||
dTf: null,
|
||||
dTfUnit: null,
|
||||
dDp: null,
|
||||
dDpUnit: null,
|
||||
dVFlowUnit: 0,
|
||||
dVFlowWorkUnit: 0,
|
||||
dMFlowUnit: 0,
|
||||
dEFlowUnit: 6,
|
||||
dCd: null,
|
||||
dCdCalMethod: null,
|
||||
dMeterFactor: null,
|
||||
dPulseNum: null,
|
||||
dVFlowMax: null,
|
||||
dVFlowMin: null,
|
||||
dVFlowCon: null,
|
||||
dPfRangeMin: null,
|
||||
dPfRangeMax: null,
|
||||
dDpRangeMin: null,
|
||||
dDpRangeMax: null,
|
||||
dTfRangeMin: null,
|
||||
dTfRangeMax: null,
|
||||
dVGsc: null,
|
||||
dCalcType: 0, // 0 流量 1 天然气 3 管束车
|
||||
dBqdd: 0 // 0 不计算,1 计算
|
||||
})
|
||||
},
|
||||
elFormWidth: {
|
||||
type: Number,
|
||||
default: 180
|
||||
}
|
||||
});
|
||||
|
||||
// 定义 emits
|
||||
const emits = defineEmits(['update:modelValue']); // 修改事件名称
|
||||
|
||||
// 定义响应式数据
|
||||
const selectWidth = ref(0);
|
||||
const meterPar = ref(_.cloneDeep(props.value));
|
||||
const isUpdating = ref(false);
|
||||
|
||||
// 在挂载后设置 selectWidth
|
||||
onMounted(() => {
|
||||
selectWidth.value = props.elFormWidth;
|
||||
});
|
||||
|
||||
// 对 meterPar 进行深度监听
|
||||
watch(
|
||||
meterPar,
|
||||
(newVal) => {
|
||||
if (!_.isEqual(newVal, props.value)) {
|
||||
console.log('Emit to parent', newVal);
|
||||
emits('update:modelValue', _.cloneDeep(newVal));
|
||||
}
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 对 elFormWidth 进行监听
|
||||
watch(
|
||||
() => props.elFormWidth,
|
||||
(newVal) => {
|
||||
selectWidth.value = newVal;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 对 value 进行深度监听
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(newVal, oldVal) => {
|
||||
if (!_.isEqual(newVal, meterPar.value)) {
|
||||
console.log('Update from parent', newVal);
|
||||
meterPar.value = _.cloneDeep({
|
||||
...newVal,
|
||||
dMeterType: String(newVal.dMeterType) // 强制类型转换
|
||||
});
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 在这里可以添加一些样式 */
|
||||
.app-container {
|
||||
height: 100%;
|
||||
}
|
||||
.flex-form {
|
||||
display: grid;
|
||||
/* 优化后的自适应规则 */
|
||||
grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
|
||||
gap: 5px;
|
||||
}
|
||||
</style>
|
231
src/components/NGTools/meterResult.vue
Normal file
231
src/components/NGTools/meterResult.vue
Normal file
@ -0,0 +1,231 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="meterResult" label-position="top" ref="queryRef" size="small" :inline="false" label-width="160px" class="flex-form">
|
||||
<el-form-item :style="{ width: selectWidth + 'px' }" label="标况体积流量m³/s" prop="dVFlowb">
|
||||
<unit-converter
|
||||
v-model="meterResult.dVFlowb"
|
||||
:unit-type="'volumeflow'"
|
||||
v-model:unit-order="meterResult.dVFlowUnit"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
:input-disable="true"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工况体积流量" prop="dVFlowf">
|
||||
<unit-converter
|
||||
v-model="meterResult.dVFlowf"
|
||||
:unit-type="'volumeflow'"
|
||||
v-model:unit-order="meterResult.dVFlowWorkUnit"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:input-disable="true"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量流量" prop="dMFlowb">
|
||||
<unit-converter
|
||||
v-model="meterResult.dMFlowb"
|
||||
:unit-type="'massflow'"
|
||||
v-model:unit-order="meterResult.dMFlowUnit"
|
||||
:input-disable="true"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标况能量流量" prop="dEFlowb">
|
||||
<unit-converter
|
||||
v-model="meterResult.dEFlowb"
|
||||
:unit-type="'energyflow'"
|
||||
v-model:unit-order="meterResult.dEFlowUnit"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:width="selectWidth"
|
||||
:input-disable="true"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="求渐近速度系数 E" prop="dE">
|
||||
<el-input class="el-input" readonly v-model="meterResult.dE" placeholder=" " />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="求相对密度系数 FG" prop="dFG">
|
||||
<el-input readonly v-model="meterResult.dFG" placeholder=" " />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="求流动温度系数 FT" prop="dFT">
|
||||
<el-input readonly v-model="meterResult.dFT" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="求动力粘度dlnd" prop="dDViscosity">
|
||||
<el-input readonly v-model="meterResult.dDViscosity" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="求可膨胀系数" prop="dDExpCoefficient">
|
||||
<el-input readonly v-model="meterResult.dDExpCoefficient" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="管道雷诺数" prop="dRnPipe">
|
||||
<el-input readonly v-model="meterResult.dRnPipe" placeholder="" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="dMeterType === '3'" :style="{ width: selectWidth + 'px' }" label="修正后的流出系数" prop="dCdCorrect">
|
||||
<el-input readonly v-model="meterResult.dCdCorrect" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '3'" :style="{ width: selectWidth + 'px' }" label="喷嘴的流出系数" prop="dCdNozell">
|
||||
<el-input readonly v-model="meterResult.dCdNozell" placeholder="" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="dMeterType === '0'" label="管道内天然气流速" prop="dVelocityFlow">
|
||||
<unit-converter
|
||||
v-model="meterResult.dVelocityFlow"
|
||||
:unit-type="'speed'"
|
||||
v-model:unit-order="meterResult.dVelocityUnit"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:input-disable="true"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" label="压力损失" prop="dPressLost">
|
||||
<unit-converter
|
||||
v-model="meterResult.dPressLost"
|
||||
:unit-type="'pressure'"
|
||||
v-model:unit-order="meterResult.dPressLostUnit"
|
||||
:show-english-only="true"
|
||||
:decimal-places="5"
|
||||
:input-disable="true"
|
||||
:width="selectWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="直径比" prop="dBeta">
|
||||
<el-input readonly v-model="meterResult.dBeta" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="等熵指数" prop="dKappa">
|
||||
<el-input readonly v-model="meterResult.dKappa" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="孔板锐利度系数Bk" prop="dBk">
|
||||
<el-input readonly v-model="meterResult.dBk" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dMeterType === '0'" :style="{ width: selectWidth + 'px' }" label="管道粗糙度系数 Gme" prop="dRoughNessPipe">
|
||||
<el-input readonly v-model="meterResult.dRoughNessPipe" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, watch, onMounted } from 'vue';
|
||||
import unitConverter from '@/components/inputValueUnit/index';
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Object,
|
||||
default: () => ({
|
||||
dE: 0,
|
||||
dFG: 0,
|
||||
dFT: 0,
|
||||
dDViscosity: 0,
|
||||
dDExpCoefficient: 0,
|
||||
dRnPipe: 0,
|
||||
dBk: 0,
|
||||
dRoughNessPipe: 0,
|
||||
dCdCorrect: 0,
|
||||
dCdNozell: 0,
|
||||
dVFlowb: 0,
|
||||
dVFlowf: 0,
|
||||
dVFlowUnit: 0,
|
||||
dMFlowb: 0,
|
||||
dMFlowUnit: 0,
|
||||
dEFlowb: 0,
|
||||
dEFlowUnit: 0,
|
||||
dVelocityFlow: 0,
|
||||
dVelocityUnit: 0,
|
||||
dPressLost: 0,
|
||||
dPressLostUnit: 0,
|
||||
dBeta: 0,
|
||||
dKappa: 0
|
||||
})
|
||||
},
|
||||
elFormWidth: {
|
||||
type: Number,
|
||||
default: 180
|
||||
},
|
||||
dMeterType: {
|
||||
type: String,
|
||||
default: '0'
|
||||
}
|
||||
});
|
||||
|
||||
// 定义响应式数据
|
||||
const meterResult = ref({
|
||||
dE: 0,
|
||||
dFG: 0,
|
||||
dFT: 0,
|
||||
dDViscosity: 0,
|
||||
dDExpCoefficient: 0,
|
||||
dRnPipe: 0,
|
||||
dBk: 0,
|
||||
dRoughNessPipe: 0,
|
||||
dCdCorrect: 0,
|
||||
dCdNozell: 0,
|
||||
dVFlowb: 0,
|
||||
dVFlowf: 0,
|
||||
dVFlowUnit: 0,
|
||||
dMFlowb: 0,
|
||||
dMFlowUnit: 0,
|
||||
dEFlowb: 0,
|
||||
dEFlowUnit: 0,
|
||||
dVelocityFlow: 0,
|
||||
dVelocityUnit: 0,
|
||||
dPressLost: 0,
|
||||
dPressLostUnit: 0,
|
||||
dBeta: 0,
|
||||
dKappa: 0
|
||||
});
|
||||
const selectWidth = ref(0);
|
||||
|
||||
// 监听 elFormWidth 的变化
|
||||
watch(
|
||||
() => props.elFormWidth,
|
||||
(newVal) => {
|
||||
selectWidth.value = newVal;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 监听 value 的变化
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(newVal) => {
|
||||
console.log(newVal);
|
||||
const processedValue = { ...newVal };
|
||||
for (const key in processedValue) {
|
||||
if (processedValue.hasOwnProperty(key)) {
|
||||
const value = processedValue[key];
|
||||
// 判断是否为有效的数值
|
||||
if (typeof value === 'number' && !isNaN(value) && isFinite(value)) {
|
||||
// 使用 toFixed 方法设置小数点位数
|
||||
processedValue[key] = parseFloat(value.toFixed(6));
|
||||
}
|
||||
}
|
||||
}
|
||||
meterResult.value = JSON.parse(JSON.stringify(processedValue));
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
// 挂载后设置 selectWidth
|
||||
onMounted(() => {
|
||||
// 在 DOM 更新后获取宽度
|
||||
selectWidth.value = props.elFormWidth;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 可按需添加样式 */
|
||||
.app-container {
|
||||
height: 100%;
|
||||
}
|
||||
.flex-form {
|
||||
display: grid;
|
||||
/* 优化后的自适应规则 */
|
||||
grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
|
||||
gap: 10px;
|
||||
}
|
||||
</style>
|
482
src/components/inputValueUnit/index.vue
Normal file
482
src/components/inputValueUnit/index.vue
Normal file
@ -0,0 +1,482 @@
|
||||
<template>
|
||||
<div class="unit-converter" :style="{ width: width + 'px' }">
|
||||
<!-- 数值输入框 -->
|
||||
<input
|
||||
v-model.number="inputValue"
|
||||
:disabled="inputDisable"
|
||||
class="input-field"
|
||||
type="number"
|
||||
ref="inputRef"
|
||||
:style="{ width: inputWidth + 'px', height: height + 'px' }"
|
||||
@change="handleInputChange"
|
||||
@focus="selectAllText"
|
||||
/>
|
||||
<!-- 单位标签 -->
|
||||
<span v-if="enableConvert" ref="unitLabel" @click="cycleUnit" @dblclick="toggleUnitSelector" class="unit-label" :style="{ color: 'blue', height: height + 'px' }">
|
||||
{{ ' ' + textUnitName + ' ' }}
|
||||
</span>
|
||||
<span v-else ref="unitLabel" class="unit-label" :style="{ color: 'blue', height: height + 'px' }">
|
||||
{{ ' ' + textUnitName + ' ' }}
|
||||
</span>
|
||||
<!-- 单位选择弹出窗口 -->
|
||||
<div v-if="showUnitSelector" class="unit-selector" ref="unitSelector" :style="{ left: unitSelectorLeft + 'px', top: unitSelectorTop + 'px' }">
|
||||
<div v-for="unit in sortedUnits" :key="unit.id" @click="selectUnit(unit)" class="unit-option">
|
||||
{{ showEnglishOnly ? unit.unitName.split('(')[0] : unit.unitName }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch, onMounted, onBeforeUnmount, computed, nextTick } from 'vue';
|
||||
import { listSysUnitConvert } from '@/api/system/sysUnitConvert.js';
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps({
|
||||
unitType: {
|
||||
// 当前单位类型 (required)
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
unitOrder: {
|
||||
// 当前单位序号 (sync)
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
modelValue: {
|
||||
// 输入数值 (sync)
|
||||
type: Number,
|
||||
required: true
|
||||
},
|
||||
showEnglishOnly: {
|
||||
// 是否只显示英文
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
decimalPlaces: {
|
||||
// 小数位数
|
||||
type: Number,
|
||||
default: 5,
|
||||
validator: (v) => v >= 0 && v <= 10
|
||||
},
|
||||
width: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 180
|
||||
},
|
||||
height: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 24
|
||||
},
|
||||
enableConvert: {
|
||||
//是否能够进行单位换算
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
userDefined: {
|
||||
//自定义输入单位显示
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
userDefinedunitName: {
|
||||
//自定义输入单位显示
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
inputDisable: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
});
|
||||
|
||||
// 定义 emits
|
||||
// 修改2:调整emits定义
|
||||
const emits = defineEmits([
|
||||
'update:modelValue', // 替换原来的update:value
|
||||
'update:unitOrder', // 保持原有事件
|
||||
'conversion'
|
||||
]);
|
||||
|
||||
// 定义响应式数据
|
||||
// 修改3:调整所有value相关操作
|
||||
const inputValue = ref(props.modelValue); // 初始化使用modelValue
|
||||
const unitData = ref([]); // 原始单位数据
|
||||
const showUnitSelector = ref(false); // 显示选择器
|
||||
const currentUnit = ref(null); // 当前选中单位
|
||||
const baseUnit = ref(null); // 基准单位
|
||||
const inputWidth = ref(120); //输入框的宽度
|
||||
const textUnitName = ref('');
|
||||
const unitSelectorLeft = ref(0);
|
||||
const unitSelectorTop = ref(0);
|
||||
// 新增三个数据项
|
||||
const originalValue = ref(props.value); // 原始输入值
|
||||
const originalUnit = ref(null); // 原始输入单位
|
||||
const isInternalUpdate = ref(false); // 更新锁定标志
|
||||
|
||||
// 定义 ref
|
||||
const inputRef = ref(null);
|
||||
const unitLabel = ref(null);
|
||||
const unitSelector = ref(null);
|
||||
|
||||
// 计算属性
|
||||
const displayUnitText = computed(() => {
|
||||
if (!currentUnit.value) return '';
|
||||
return props.showEnglishOnly ? currentUnit.value.unitName.split('(')[0].trim() : currentUnit.value.unitName;
|
||||
});
|
||||
|
||||
const sortedUnits = computed(() => {
|
||||
return unitData.value.filter((u) => u.unitType === props.unitType).sort((a, b) => a.unitOrder - b.unitOrder);
|
||||
});
|
||||
|
||||
const popupPosition = computed(() => {
|
||||
if (!unitLabel.value) return {};
|
||||
const rect = unitLabel.value.getBoundingClientRect();
|
||||
return {
|
||||
top: `${rect.bottom + window.scrollY}px`,
|
||||
left: `${rect.left + window.scrollX}px`
|
||||
};
|
||||
});
|
||||
|
||||
// 安全宽度更新方法
|
||||
const safeUpdateWidth = () => {
|
||||
if (unitLabel.value) {
|
||||
updateInputWidth();
|
||||
}
|
||||
};
|
||||
|
||||
const selectAllText = (event) => {
|
||||
// 通过 event.target 获取触发事件的 input 元素
|
||||
const input = event.target;
|
||||
// 调用 select() 方法全选文本
|
||||
input.select();
|
||||
};
|
||||
|
||||
const handleMouseMove = (event) => {
|
||||
if (showUnitSelector.value) {
|
||||
// 鼠标右下方偏移量
|
||||
const offsetX = 10;
|
||||
const offsetY = 10;
|
||||
unitSelectorLeft.value = event.clientX;
|
||||
unitSelectorTop.value = event.clientY + offsetY - 100;
|
||||
// 获取弹窗元素
|
||||
if (unitSelector.value) {
|
||||
// 检查是否超出屏幕右边界
|
||||
if (unitSelectorLeft.value + unitSelector.value.offsetWidth > window.innerWidth) {
|
||||
unitSelectorLeft.value = window.innerWidth - unitSelector.value.offsetWidth;
|
||||
}
|
||||
// 检查是否超出屏幕下边界
|
||||
if (unitSelectorTop.value + unitSelector.value.offsetHeight > window.innerHeight) {
|
||||
unitSelectorTop.value = window.innerHeight - unitSelector.value.offsetHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const updateInputWidth = () => {
|
||||
// 安全访问检查
|
||||
if (!unitLabel.value) {
|
||||
console.warn('Unit label ref not available');
|
||||
return;
|
||||
}
|
||||
|
||||
const spanWidth = unitLabel.value.offsetWidth + 10;
|
||||
inputWidth.value = Math.max(50, props.width - spanWidth); // 添加最小宽度限制
|
||||
};
|
||||
|
||||
// 处理全局点击事件
|
||||
const handleClickOutside = (event) => {
|
||||
if (unitSelector.value && !unitSelector.value.contains(event.target)) {
|
||||
showUnitSelector.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
// 切换单位选择器的显示状态
|
||||
const toggleUnitSelector = () => {
|
||||
showUnitSelector.value = !showUnitSelector.value;
|
||||
};
|
||||
|
||||
// 加载单位数据
|
||||
const loadUnits = async (unitType) => {
|
||||
try {
|
||||
const res = await listSysUnitConvert({
|
||||
unitType: unitType,
|
||||
status: 'Y'
|
||||
});
|
||||
unitData.value = res.rows;
|
||||
baseUnit.value = unitData.value.find((u) => u.baseUnit === 'Y');
|
||||
} catch (e) {
|
||||
console.error('单位数据加载失败:', e);
|
||||
}
|
||||
};
|
||||
|
||||
// 初始化当前单位
|
||||
const initCurrentUnit = () => {
|
||||
const target = sortedUnits.value.find((u) => u.unitOrder === props.unitOrder);
|
||||
currentUnit.value = target || baseUnit.value || sortedUnits.value[0];
|
||||
// 初始化时设置原始单位(关键修复)
|
||||
originalUnit.value = currentUnit.value;
|
||||
// 安全设置单位名称
|
||||
textUnitName.value = currentUnit.value ? (props.showEnglishOnly ? currentUnit.value.unitName.split('(')[0].trim() : currentUnit.value.unitName) : '';
|
||||
nextTick(() => {
|
||||
updateInputWidth();
|
||||
});
|
||||
};
|
||||
|
||||
// 输入变化处理
|
||||
const handleInputChange = () => {
|
||||
// 记录原始值和单位
|
||||
originalValue.value = inputValue.value;
|
||||
originalUnit.value = currentUnit.value;
|
||||
emits('update:modelValue', inputValue.value); // 触发modelValue更新
|
||||
};
|
||||
|
||||
// 循环切换单位
|
||||
const cycleUnit = () => {
|
||||
const index = sortedUnits.value.findIndex((u) => u === currentUnit.value);
|
||||
const newUnit = sortedUnits.value[(index + 1) % sortedUnits.value.length];
|
||||
currentUnit.value = newUnit;
|
||||
console.log(index, newUnit, currentUnit.value);
|
||||
textUnitName.value = props.showEnglishOnly ? newUnit.unitName.split('(')[0].trim() : newUnit.unitName;
|
||||
nextTick(() => {
|
||||
if (unitLabel.value) {
|
||||
updateInputWidth();
|
||||
convertAndEmit();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 选择单位
|
||||
const selectUnit = (unit) => {
|
||||
currentUnit.value = unit;
|
||||
showUnitSelector.value = false;
|
||||
nextTick(() => {
|
||||
updateInputWidth();
|
||||
convertAndEmit(); // 触发转换
|
||||
});
|
||||
};
|
||||
|
||||
// 执行换算并提交事件
|
||||
const convertAndEmit = () => {
|
||||
// 移除参数
|
||||
if (!currentUnit.value || !baseUnit.value || !originalUnit.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
let newValue = 0;
|
||||
if (props.unitType === 'temperature') {
|
||||
newValue = handleTemperatureConversion(originalUnit.value, currentUnit.value);
|
||||
} else {
|
||||
// 通过基准单位进行两次精确转换
|
||||
const baseValue = originalValue.value / originalUnit.value.conversionFactor;
|
||||
newValue = baseValue * currentUnit.value.conversionFactor;
|
||||
}
|
||||
|
||||
const roundedValue = roundValue(newValue);
|
||||
isInternalUpdate.value = true; // 锁定更新
|
||||
inputValue.value = roundedValue;
|
||||
// 同时触发两个更新事件
|
||||
emits('update:modelValue', roundedValue);
|
||||
emits('update:unitOrder', currentUnit.value.unitOrder);
|
||||
|
||||
emits('conversion', {
|
||||
initialValue: originalValue.value,
|
||||
newValue: roundedValue,
|
||||
oldUnit: originalUnit.value.unitName,
|
||||
newUnit: currentUnit.value.unitName,
|
||||
oldOrder: originalUnit.value.unitOrder,
|
||||
newOrder: currentUnit.value.unitOrder
|
||||
});
|
||||
};
|
||||
|
||||
// 温度单位换算
|
||||
const handleTemperatureConversion = (oldUnit, newUnit) => {
|
||||
const oldOrder = oldUnit.unitOrder;
|
||||
const newOrder = newUnit.unitOrder;
|
||||
let celsius;
|
||||
switch (oldOrder) {
|
||||
case 0:
|
||||
celsius = originalValue.value;
|
||||
break;
|
||||
case 1:
|
||||
celsius = ((originalValue.value - 32) * 5) / 9;
|
||||
break;
|
||||
case 2:
|
||||
celsius = originalValue.value - 273.15;
|
||||
break;
|
||||
default:
|
||||
throw new Error('无效温度单位');
|
||||
}
|
||||
|
||||
switch (newOrder) {
|
||||
case 0:
|
||||
return celsius;
|
||||
case 1:
|
||||
return (celsius * 9) / 5 + 32;
|
||||
case 2:
|
||||
return celsius + 273.15;
|
||||
default:
|
||||
throw new Error('无效温度单位');
|
||||
}
|
||||
};
|
||||
|
||||
// 四舍六入五成双
|
||||
const roundValue = (value) => {
|
||||
const multiplier = Math.pow(10, props.decimalPlaces);
|
||||
const val = value * multiplier;
|
||||
const intVal = Math.trunc(val);
|
||||
const decimalPart = val - intVal;
|
||||
if (decimalPart < 0.5) {
|
||||
return intVal / multiplier;
|
||||
} else if (decimalPart > 0.5) {
|
||||
return (intVal + 1) / multiplier;
|
||||
} else {
|
||||
return intVal % 2 === 0 ? intVal / multiplier : (intVal + 1) / multiplier;
|
||||
}
|
||||
};
|
||||
|
||||
// 监听单位类型变化
|
||||
watch(
|
||||
() => props.unitType,
|
||||
async (newType) => {
|
||||
if (props.userDefined) {
|
||||
textUnitName.value = props.userDefinedunitName;
|
||||
nextTick(() => {
|
||||
safeUpdateWidth();
|
||||
});
|
||||
} else {
|
||||
let temp = JSON.parse(localStorage.getItem('unitData'));
|
||||
unitData.value = temp ? temp[newType] : [];
|
||||
if (!unitData.value) {
|
||||
await loadUnits(newType);
|
||||
}
|
||||
nextTick(() => {
|
||||
baseUnit.value = unitData.value.find((u) => u.baseUnit === 'Y');
|
||||
safeUpdateWidth();
|
||||
initCurrentUnit();
|
||||
});
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
// 监听外部单位序号变化
|
||||
watch(
|
||||
() => props.unitOrder,
|
||||
(newOrder) => {
|
||||
if (props.userDefined) {
|
||||
textUnitName.value = props.userDefinedunitName;
|
||||
nextTick(safeUpdateWidth);
|
||||
return;
|
||||
}
|
||||
// 安全查找单位
|
||||
const target = sortedUnits.value.find((u) => u.unitOrder === newOrder);
|
||||
if (!target) {
|
||||
console.warn(`单位序号 ${newOrder} 未找到,使用基准单位`);
|
||||
currentUnit.value = baseUnit.value || sortedUnits.value[0];
|
||||
textUnitName.value = currentUnit.value ? (props.showEnglishOnly ? currentUnit.value.unitName?.split('(')[0]?.trim() : currentUnit.value.unitName) : '';
|
||||
return;
|
||||
}
|
||||
currentUnit.value = target;
|
||||
textUnitName.value = props.showEnglishOnly ? target.unitName?.split('(')[0]?.trim() : target.unitName;
|
||||
|
||||
nextTick(safeUpdateWidth);
|
||||
}
|
||||
);
|
||||
|
||||
// 监听输入值变化
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(newVal) => {
|
||||
console.log('收到父组件值更新:', newVal);
|
||||
if (!isInternalUpdate.value && !isNaN(newVal)) {
|
||||
originalValue.value = Number(newVal);
|
||||
inputValue.value = originalValue.value;
|
||||
console.log('外部更新处理:', {
|
||||
original: originalValue.value,
|
||||
input: inputValue.value
|
||||
});
|
||||
}
|
||||
isInternalUpdate.value = false;
|
||||
},
|
||||
{ immediate: true, deep: true }
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
nextTick(() => {
|
||||
safeUpdateWidth();
|
||||
});
|
||||
// 在挂载时添加全局点击事件监听器
|
||||
document.addEventListener('click', handleClickOutside);
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
// 清除所有未完成的异步操作
|
||||
showUnitSelector.value = false;
|
||||
document.removeEventListener('click', handleClickOutside);
|
||||
|
||||
// 清除引用
|
||||
inputRef.value = null;
|
||||
unitLabel.value = null;
|
||||
unitSelector.value = null;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.unit-converter {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.input-field {
|
||||
border: 1px solid #d6d5d5;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.unit-label {
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
border: 1px solid #d6d5d5;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
padding: 0 8px; /* 可根据需要调整左右内边距 */
|
||||
}
|
||||
|
||||
.unit-label:hover {
|
||||
background: #f0f8ff;
|
||||
}
|
||||
|
||||
.unit-selector {
|
||||
/* 设置容器的最大高度,当内容超出这个高度时会出现滚动条 */
|
||||
max-height: 100px;
|
||||
/* 超出内容时显示纵向滚动条 */
|
||||
overflow-y: auto;
|
||||
/* 横向内容不溢出,隐藏多余部分 */
|
||||
overflow-x: hidden;
|
||||
/* 其他样式保持不变 */
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
background-color: white;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
padding: 2px 0;
|
||||
min-width: 180px;
|
||||
list-style-type: none;
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
.unit-option {
|
||||
padding: 2px 10px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.unit-option:hover {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
</style>
|
1212
src/views/index.vue
1212
src/views/index.vue
File diff suppressed because it is too large
Load Diff
325
src/views/ngtools/FlowCal/index.vue
Normal file
325
src/views/ngtools/FlowCal/index.vue
Normal file
@ -0,0 +1,325 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="text-align: center; margin-top: 10px; margin-bottom: 10px">
|
||||
<button @click="btnCalc" type="primary" class="animated-button">{{ btnText }}</button>
|
||||
</div>
|
||||
|
||||
<el-tabs v-model="activeTab" style="width: 100%">
|
||||
<el-tab-pane label="工况参数" name="meterpar">
|
||||
<meterPar v-model="parentMeterPar" :el-form-width="elFormItemWidth" />
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="摩尔组分" name="ngComponents">
|
||||
<ngComponents v-model="parentMeterPar.dngComponents" :el-form-width="elFormItemWidthmin" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="计算结果" name="meterresult">
|
||||
<meterResult v-if="['0', '1', '2', '3'].includes(dMeterType)" :d-meter-type="dMeterType" v-model="parentMeterResult" :el-form-width="elFormItemWidth" />
|
||||
<NGResult v-if="['4', '5', '6', '7'].includes(dMeterType)" :d-meter-type="dMeterType" v-model="parentNGResult" :el-form-width="elFormItemWidthmin"></NGResult>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<div v-if="isShowMessage" class="message-box">{{ message }}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted, onBeforeMount, watch } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import meterPar from '@/components/NGTools/meterPar';
|
||||
import ngComponents from '@/components/NGTools/NGCom';
|
||||
import meterResult from '@/components/NGTools/meterResult';
|
||||
import NGResult from '@/components/NGTools/NGResult';
|
||||
import { calcNGPar, calcFlow } from '@/api/ngtools/NGCalcTools.js';
|
||||
|
||||
// 定义响应式数据
|
||||
const btnText = ref('');
|
||||
const elFormItemWidth = ref(160);
|
||||
const elFormItemWidthmin = ref(140);
|
||||
const activeTab = ref('meterpar');
|
||||
const isShowMessage = ref(false);
|
||||
const message = ref('');
|
||||
const parentMeterPar = ref({
|
||||
dFlowCalbz: '0',
|
||||
dZcalbz: '0',
|
||||
dCbtj: '0',
|
||||
dpbM: 0,
|
||||
dtbM: 0,
|
||||
dpbE: 0,
|
||||
dtbE: 0,
|
||||
dPatm: 0.0981,
|
||||
dPatmUnit: 2,
|
||||
dngComponents: '',
|
||||
dMeterType: '0',
|
||||
dCoreType: '0',
|
||||
dPtmode: '0',
|
||||
dPipeType: '0',
|
||||
dPipeD: 259.38,
|
||||
dLenUnit: 3,
|
||||
dPipeDtemp: 20,
|
||||
dPileDtempU: 0,
|
||||
dPipeMaterial: '11.16',
|
||||
dOrificeD: 150.25,
|
||||
dOrificeUnit: 3,
|
||||
dOrificeDtemp: 0,
|
||||
dOrificeDtempUnit: 0,
|
||||
dOrificeMaterial: '16.6',
|
||||
dOrificeSharpness: 0,
|
||||
dOrificeRk: 0,
|
||||
dOrificeRkLenU: 0,
|
||||
dPf: 1.48,
|
||||
dPfUnit: 2,
|
||||
dPfType: '0',
|
||||
dTf: 15,
|
||||
dTfUnit: 0,
|
||||
dDp: 12.5,
|
||||
dDpUnit: 1,
|
||||
dVFlowUnit: 0,
|
||||
dVFlowWorkUnit: 0,
|
||||
dMFlowUnit: 0,
|
||||
dEFlowUnit: 6,
|
||||
dCd: 0.9957,
|
||||
dCdCalMethod: 0,
|
||||
dMeterFactor: 2354,
|
||||
dPulseNum: 12000,
|
||||
dVFlowMax: 6,
|
||||
dVFlowMin: 3,
|
||||
dVFlowCon: 5,
|
||||
dPfRangeMin: 0,
|
||||
dPfRangeMax: 0,
|
||||
dDpRangeMin: 0,
|
||||
dDpRangeMax: 0,
|
||||
dTfRangeMin: 0,
|
||||
dTfRangeMax: 0,
|
||||
dVGsc: 300,
|
||||
dVGscUnit: 0,
|
||||
dCalcType: 0, //0 流量 1 天然气 3 管束车
|
||||
dBqdd: 0 //0 不计算,1 计算 计算不确定度
|
||||
});
|
||||
|
||||
const parentMeterResult = ref({
|
||||
dE: 0,
|
||||
dFG: 0,
|
||||
dFT: 0,
|
||||
dDViscosity: 0,
|
||||
dDExpCoefficient: 0,
|
||||
dRnPipe: 0,
|
||||
dBk: 0,
|
||||
dRoughNessPipe: 0,
|
||||
dCdCorrect: 0,
|
||||
dCdNozell: 0,
|
||||
dVFlowb: 0,
|
||||
dVFlowf: 0,
|
||||
dVFlowUnit: 2,
|
||||
dMFlowb: 0,
|
||||
dMFlowUnit: 0,
|
||||
dEFlowb: 0,
|
||||
dEFlowUnit: 0,
|
||||
dVelocityFlow: 0,
|
||||
dVelocityUnit: 0,
|
||||
dPressLost: 0,
|
||||
dPressLostUnit: 0,
|
||||
dBeta: 0,
|
||||
dKappa: 0
|
||||
});
|
||||
|
||||
const parentNGResult = ref({
|
||||
dMrx: 0,
|
||||
dZb: 0,
|
||||
dZf: 0,
|
||||
dFpv: 0,
|
||||
dDb: 0,
|
||||
dDf: 0,
|
||||
dRhob: 0,
|
||||
dRhof: 0,
|
||||
dRD_Ideal: 0,
|
||||
dRD_Real: 0,
|
||||
dHo: 0,
|
||||
dH: 0,
|
||||
dS: 0,
|
||||
dCpi: 0,
|
||||
dCp: 0,
|
||||
dCv: 0,
|
||||
dk: 0,
|
||||
dKappa: 0,
|
||||
dSOS: 0,
|
||||
dSOSUnit: 0,
|
||||
dCstar: 0,
|
||||
dHhvMol: 0,
|
||||
dLhvMol: 0,
|
||||
dHhvv: 0,
|
||||
dLhvv: 0,
|
||||
dHhvm: 0,
|
||||
dLhvm: 0,
|
||||
dZb11062: 0,
|
||||
dRhob11062: 0,
|
||||
dRhof11062: 0,
|
||||
dRD_Ideal11062: 0,
|
||||
dRD_Real11062: 0,
|
||||
dWobbeIndex: 0,
|
||||
dPc: 0,
|
||||
dTC: 0,
|
||||
dBzsx: 0,
|
||||
dBzxx: 0,
|
||||
dTotalC: 0,
|
||||
dC2: 0,
|
||||
dC2j: 0,
|
||||
dC3j: 0,
|
||||
dC4j: 0,
|
||||
dC5j: 0,
|
||||
dC6j: 0,
|
||||
dC3C4: 0
|
||||
});
|
||||
|
||||
const componentString = ref('');
|
||||
const dMeterType = ref(0);
|
||||
|
||||
// 获取路由信息
|
||||
const route = useRoute();
|
||||
|
||||
// 在组件挂载前获取路由参数
|
||||
onBeforeMount(() => {
|
||||
const params = route.query;
|
||||
dMeterType.value = params.dMeterType;
|
||||
});
|
||||
|
||||
// 在组件挂载后更新 parentMeterPar 的 dMeterType
|
||||
onMounted(() => {
|
||||
parentMeterPar.value.dMeterType = dMeterType.value;
|
||||
});
|
||||
|
||||
// 监听 dMeterType 的变化
|
||||
watch(dMeterType, (newValue) => {
|
||||
if (['0', '1', '2', '3'].includes(newValue)) {
|
||||
btnText.value = '计算流量';
|
||||
} else if (newValue === '4') {
|
||||
btnText.value = '计算压缩因子';
|
||||
} else if (newValue === '5') {
|
||||
btnText.value = '计算声速';
|
||||
} else if (newValue === '6') {
|
||||
btnText.value = '计算发热量';
|
||||
} else if (newValue === '7') {
|
||||
btnText.value = '计算其他参数';
|
||||
}
|
||||
parentMeterPar.value.dMeterType = newValue;
|
||||
console.log('dMeterType 变化后,parentMeterPar:', parentMeterPar.value);
|
||||
});
|
||||
|
||||
// 显示消息提示框
|
||||
const showMessage = () => {
|
||||
isShowMessage.value = true;
|
||||
setTimeout(() => {
|
||||
isShowMessage.value = false;
|
||||
}, 1000); // 1 秒后自动消失
|
||||
};
|
||||
|
||||
// 计算按钮点击事件
|
||||
const btnCalc = () => {
|
||||
if (['0', '1', '2', '3'].includes(dMeterType.value)) {
|
||||
calcBtnFlow();
|
||||
} else if (['4', '5', '6', '7'].includes(dMeterType.value)) {
|
||||
calc();
|
||||
}
|
||||
};
|
||||
|
||||
// 计算天然气参数
|
||||
const calc = async () => {
|
||||
console.log(parentMeterPar.value);
|
||||
if (parentMeterPar.value.dngComponents === '') {
|
||||
message.value = '组分为空,请输入天然气组分!';
|
||||
showMessage();
|
||||
activeTab.value = 'ngComponents';
|
||||
return;
|
||||
}
|
||||
// 清空 parentNGResult 的值
|
||||
for (const key in parentNGResult.value) {
|
||||
if (parentNGResult.value.hasOwnProperty(key)) {
|
||||
parentNGResult.value[key] = 0;
|
||||
}
|
||||
}
|
||||
try {
|
||||
const res = await calcNGPar(parentMeterPar.value);
|
||||
parentNGResult.value = res.data;
|
||||
activeTab.value = 'meterresult';
|
||||
console.log('Response:', res);
|
||||
} catch (error) {
|
||||
console.error('Request error:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 计算流量
|
||||
const calcBtnFlow = async () => {
|
||||
console.log(parentMeterPar.value);
|
||||
if (parentMeterPar.value.dngComponents === '') {
|
||||
message.value = '组分为空,请输入天然气组分!';
|
||||
showMessage();
|
||||
activeTab.value = 'ngComponents';
|
||||
return;
|
||||
}
|
||||
// 清空 parentMeterResult 的值
|
||||
for (const key in parentMeterResult.value) {
|
||||
if (parentMeterResult.value.hasOwnProperty(key)) {
|
||||
parentMeterResult.value[key] = 0;
|
||||
}
|
||||
}
|
||||
try {
|
||||
const res = await calcFlow(parentMeterPar.value);
|
||||
parentMeterResult.value = res.data[0];
|
||||
console.log('Response:', parentMeterResult.value);
|
||||
activeTab.value = 'meterresult';
|
||||
} catch (error) {
|
||||
console.error('Request error:', error);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.animated-button {
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
margin-right: 10px;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.animated-button:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.animated-button:hover {
|
||||
background-color: #0056b3;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.animated-button:active {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
|
||||
/* 在 Vue 3 中使用 :deep() 替代 /deep/ */
|
||||
:deep(.el-tabs__nav) {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
:deep(.el-tabs__item) {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.message-box {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background-color: #333;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border-radius: 5px;
|
||||
z-index: 9999;
|
||||
}
|
||||
</style>
|
444
src/views/ngtools/components/index.vue
Normal file
444
src/views/ngtools/components/index.vue
Normal file
@ -0,0 +1,444 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label=" 创建人名称 " prop="createName">
|
||||
<el-input v-model="queryParams.createName" placeholder="请输入 创建人名称 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 更新人名称 " prop="updateName">
|
||||
<el-input v-model="queryParams.updateName" placeholder="请输入 更新人名称 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 甲烷C1 " prop="ngC1">
|
||||
<el-input v-model="queryParams.ngC1" placeholder="请输入 甲烷C1 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氮气N2 " prop="ngN2">
|
||||
<el-input v-model="queryParams.ngN2" placeholder="请输入 氮气N2 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 二氧化碳CO2 " prop="ngCo2">
|
||||
<el-input v-model="queryParams.ngCo2" placeholder="请输入 二氧化碳CO2 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 乙烷C2 " prop="ngC2">
|
||||
<el-input v-model="queryParams.ngC2" placeholder="请输入 乙烷C2 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 丙烷C3 " prop="ngC3">
|
||||
<el-input v-model="queryParams.ngC3" placeholder="请输入 丙烷C3 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 水H2O " prop="ngH2o">
|
||||
<el-input v-model="queryParams.ngH2o" placeholder="请输入 水H2O " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 硫化氢H2S " prop="ngH2s">
|
||||
<el-input v-model="queryParams.ngH2s" placeholder="请输入 硫化氢H2S " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氢气H2 " prop="ngH2">
|
||||
<el-input v-model="queryParams.ngH2" placeholder="请输入 氢气H2 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 一氧化碳CO " prop="ngCo">
|
||||
<el-input v-model="queryParams.ngCo" placeholder="请输入 一氧化碳CO " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氧气O2 " prop="ngO2">
|
||||
<el-input v-model="queryParams.ngO2" placeholder="请输入 氧气O2 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 异丁烷iC4 " prop="ngIc4">
|
||||
<el-input v-model="queryParams.ngIc4" placeholder="请输入 异丁烷iC4 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 正丁烷nC4 " prop="ngNc4">
|
||||
<el-input v-model="queryParams.ngNc4" placeholder="请输入 正丁烷nC4 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 异戊烷iC5 " prop="ngIc5">
|
||||
<el-input v-model="queryParams.ngIc5" placeholder="请输入 异戊烷iC5 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 正戊烷nC5 " prop="ngNc5">
|
||||
<el-input v-model="queryParams.ngNc5" placeholder="请输入 正戊烷nC5 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 己烷C6 " prop="ngC6">
|
||||
<el-input v-model="queryParams.ngC6" placeholder="请输入 己烷C6 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 庚烷C7 " prop="ngC7">
|
||||
<el-input v-model="queryParams.ngC7" placeholder="请输入 庚烷C7 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 辛烷C8 " prop="ngC8">
|
||||
<el-input v-model="queryParams.ngC8" placeholder="请输入 辛烷C8 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 壬烷C9 " prop="ngC9">
|
||||
<el-input v-model="queryParams.ngC9" placeholder="请输入 壬烷C9 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 癸烷C10 " prop="ngC10">
|
||||
<el-input v-model="queryParams.ngC10" placeholder="请输入 癸烷C10 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氦气He " prop="ngHe">
|
||||
<el-input v-model="queryParams.ngHe" placeholder="请输入 氦气He " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氩气Ar " prop="ngAr">
|
||||
<el-input v-model="queryParams.ngAr" placeholder="请输入 氩气Ar " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合计" prop="sum">
|
||||
<el-input v-model="queryParams.sum" placeholder="请输入合计" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="取样编号" prop="sampleno">
|
||||
<el-input v-model="queryParams.sampleno" placeholder="请输入取样编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表编号" prop="meterno">
|
||||
<el-input v-model="queryParams.meterno" placeholder="请输入仪表编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="常用组分" prop="cyzf">
|
||||
<el-select v-model="queryParams.cyzf" placeholder="请选择常用组分" clearable>
|
||||
<el-option v-for="dict in ngtools_cyzf" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['ngtools:components:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['ngtools:components:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['ngtools:components:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['ngtools:components:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="componentsList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label=" ID " align="center" prop="id" />
|
||||
<el-table-column label=" 创建人名称 " align="center" prop="createName" />
|
||||
<el-table-column label=" 更新人名称 " align="center" prop="updateName" />
|
||||
<el-table-column label=" 甲烷C1 " align="center" prop="ngC1" />
|
||||
<el-table-column label=" 氮气N2 " align="center" prop="ngN2" />
|
||||
<el-table-column label=" 二氧化碳CO2 " align="center" prop="ngCo2" />
|
||||
<el-table-column label=" 乙烷C2 " align="center" prop="ngC2" />
|
||||
<el-table-column label=" 丙烷C3 " align="center" prop="ngC3" />
|
||||
<el-table-column label=" 水H2O " align="center" prop="ngH2o" />
|
||||
<el-table-column label=" 硫化氢H2S " align="center" prop="ngH2s" />
|
||||
<el-table-column label=" 氢气H2 " align="center" prop="ngH2" />
|
||||
<el-table-column label=" 一氧化碳CO " align="center" prop="ngCo" />
|
||||
<el-table-column label=" 氧气O2 " align="center" prop="ngO2" />
|
||||
<el-table-column label=" 异丁烷iC4 " align="center" prop="ngIc4" />
|
||||
<el-table-column label=" 正丁烷nC4 " align="center" prop="ngNc4" />
|
||||
<el-table-column label=" 异戊烷iC5 " align="center" prop="ngIc5" />
|
||||
<el-table-column label=" 正戊烷nC5 " align="center" prop="ngNc5" />
|
||||
<el-table-column label=" 己烷C6 " align="center" prop="ngC6" />
|
||||
<el-table-column label=" 庚烷C7 " align="center" prop="ngC7" />
|
||||
<el-table-column label=" 辛烷C8 " align="center" prop="ngC8" />
|
||||
<el-table-column label=" 壬烷C9 " align="center" prop="ngC9" />
|
||||
<el-table-column label=" 癸烷C10 " align="center" prop="ngC10" />
|
||||
<el-table-column label=" 氦气He " align="center" prop="ngHe" />
|
||||
<el-table-column label=" 氩气Ar " align="center" prop="ngAr" />
|
||||
<el-table-column label="合计" align="center" prop="sum" />
|
||||
<el-table-column label="取样编号" align="center" prop="sampleno" />
|
||||
<el-table-column label="仪表编号" align="center" prop="meterno" />
|
||||
<el-table-column label="常用组分" align="center" prop="cyzf">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_cyzf" :value="scope.row.cyzf" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['ngtools:components:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['ngtools:components:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改天然气组分对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="componentsRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label=" 创建人名称 " prop="createName">
|
||||
<el-input v-model="form.createName" placeholder="请输入 创建人名称 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 更新人名称 " prop="updateName">
|
||||
<el-input v-model="form.updateName" placeholder="请输入 更新人名称 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 甲烷C1 " prop="ngC1">
|
||||
<el-input v-model="form.ngC1" placeholder="请输入 甲烷C1 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氮气N2 " prop="ngN2">
|
||||
<el-input v-model="form.ngN2" placeholder="请输入 氮气N2 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 二氧化碳CO2 " prop="ngCo2">
|
||||
<el-input v-model="form.ngCo2" placeholder="请输入 二氧化碳CO2 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 乙烷C2 " prop="ngC2">
|
||||
<el-input v-model="form.ngC2" placeholder="请输入 乙烷C2 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 丙烷C3 " prop="ngC3">
|
||||
<el-input v-model="form.ngC3" placeholder="请输入 丙烷C3 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 水H2O " prop="ngH2o">
|
||||
<el-input v-model="form.ngH2o" placeholder="请输入 水H2O " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 硫化氢H2S " prop="ngH2s">
|
||||
<el-input v-model="form.ngH2s" placeholder="请输入 硫化氢H2S " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氢气H2 " prop="ngH2">
|
||||
<el-input v-model="form.ngH2" placeholder="请输入 氢气H2 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 一氧化碳CO " prop="ngCo">
|
||||
<el-input v-model="form.ngCo" placeholder="请输入 一氧化碳CO " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氧气O2 " prop="ngO2">
|
||||
<el-input v-model="form.ngO2" placeholder="请输入 氧气O2 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 异丁烷iC4 " prop="ngIc4">
|
||||
<el-input v-model="form.ngIc4" placeholder="请输入 异丁烷iC4 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 正丁烷nC4 " prop="ngNc4">
|
||||
<el-input v-model="form.ngNc4" placeholder="请输入 正丁烷nC4 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 异戊烷iC5 " prop="ngIc5">
|
||||
<el-input v-model="form.ngIc5" placeholder="请输入 异戊烷iC5 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 正戊烷nC5 " prop="ngNc5">
|
||||
<el-input v-model="form.ngNc5" placeholder="请输入 正戊烷nC5 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 己烷C6 " prop="ngC6">
|
||||
<el-input v-model="form.ngC6" placeholder="请输入 己烷C6 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 庚烷C7 " prop="ngC7">
|
||||
<el-input v-model="form.ngC7" placeholder="请输入 庚烷C7 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 辛烷C8 " prop="ngC8">
|
||||
<el-input v-model="form.ngC8" placeholder="请输入 辛烷C8 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 壬烷C9 " prop="ngC9">
|
||||
<el-input v-model="form.ngC9" placeholder="请输入 壬烷C9 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 癸烷C10 " prop="ngC10">
|
||||
<el-input v-model="form.ngC10" placeholder="请输入 癸烷C10 " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氦气He " prop="ngHe">
|
||||
<el-input v-model="form.ngHe" placeholder="请输入 氦气He " />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 氩气Ar " prop="ngAr">
|
||||
<el-input v-model="form.ngAr" placeholder="请输入 氩气Ar " />
|
||||
</el-form-item>
|
||||
<el-form-item label="合计" prop="sum">
|
||||
<el-input v-model="form.sum" placeholder="请输入合计" />
|
||||
</el-form-item>
|
||||
<el-form-item label="取样编号" prop="sampleno">
|
||||
<el-input v-model="form.sampleno" placeholder="请输入取样编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表编号" prop="meterno">
|
||||
<el-input v-model="form.meterno" placeholder="请输入仪表编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="常用组分" prop="cyzf">
|
||||
<el-select v-model="form.cyzf" placeholder="请选择常用组分">
|
||||
<el-option v-for="dict in ngtools_cyzf" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Components">
|
||||
import { listComponents, getComponents, delComponents, addComponents, updateComponents } from '@/api/ngtools/components';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { ngtools_cyzf } = proxy.useDict('ngtools_cyzf');
|
||||
|
||||
const componentsList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
createName: null,
|
||||
updateName: null,
|
||||
ngC1: null,
|
||||
ngN2: null,
|
||||
ngCo2: null,
|
||||
ngC2: null,
|
||||
ngC3: null,
|
||||
ngH2o: null,
|
||||
ngH2s: null,
|
||||
ngH2: null,
|
||||
ngCo: null,
|
||||
ngO2: null,
|
||||
ngIc4: null,
|
||||
ngNc4: null,
|
||||
ngIc5: null,
|
||||
ngNc5: null,
|
||||
ngC6: null,
|
||||
ngC7: null,
|
||||
ngC8: null,
|
||||
ngC9: null,
|
||||
ngC10: null,
|
||||
ngHe: null,
|
||||
ngAr: null,
|
||||
sum: null,
|
||||
sampleno: null,
|
||||
meterno: null,
|
||||
cyzf: null
|
||||
},
|
||||
rules: {}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询天然气组分列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listComponents(queryParams.value).then((response) => {
|
||||
componentsList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
createName: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateName: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
ngC1: null,
|
||||
ngN2: null,
|
||||
ngCo2: null,
|
||||
ngC2: null,
|
||||
ngC3: null,
|
||||
ngH2o: null,
|
||||
ngH2s: null,
|
||||
ngH2: null,
|
||||
ngCo: null,
|
||||
ngO2: null,
|
||||
ngIc4: null,
|
||||
ngNc4: null,
|
||||
ngIc5: null,
|
||||
ngNc5: null,
|
||||
ngC6: null,
|
||||
ngC7: null,
|
||||
ngC8: null,
|
||||
ngC9: null,
|
||||
ngC10: null,
|
||||
ngHe: null,
|
||||
ngAr: null,
|
||||
sum: null,
|
||||
sampleno: null,
|
||||
meterno: null,
|
||||
cyzf: null
|
||||
};
|
||||
proxy.resetForm('componentsRef');
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加天然气组分';
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getComponents(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改天然气组分';
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['componentsRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateComponents(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addComponents(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除天然气组分编号为"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delComponents(_ids);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'ngtools/components/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`components_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
815
src/views/ngtools/meterpar/index.vue
Normal file
815
src/views/ngtools/meterpar/index.vue
Normal file
@ -0,0 +1,815 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="创建人名称 " prop="createName">
|
||||
<el-input v-model="queryParams.createName" placeholder="请输入创建人名称 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="处置人姓名 " prop="createBy">
|
||||
<el-input v-model="queryParams.createBy" placeholder="请输入处置人姓名 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建处置时间 " prop="createTime">
|
||||
<el-date-picker clearable v-model="queryParams.createTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择创建处置时间 "></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人名称 " prop="updateName">
|
||||
<el-input v-model="queryParams.updateName" placeholder="请输入更新人名称 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人登录名称 " prop="updateBy">
|
||||
<el-input v-model="queryParams.updateBy" placeholder="请输入更新人登录名称 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新日期 " prop="updateTime">
|
||||
<el-date-picker clearable v-model="queryParams.updateTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择更新日期 "></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="流量计算标准 " prop="dFlowCalbz">
|
||||
<el-select v-model="queryParams.dFlowCalbz" placeholder="请选择流量计算标准 " clearable>
|
||||
<el-option v-for="dict in ngtools_lljsbz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="压缩因子计算标准 " prop="dZcalbz">
|
||||
<el-select v-model="queryParams.dZcalbz" placeholder="请选择压缩因子计算标准 " clearable>
|
||||
<el-option v-for="dict in ngtools_ysyzjsbz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计量参比条件压力 " prop="dCbtj">
|
||||
<el-select v-model="queryParams.dCbtj" placeholder="请选择计量参比条件压力 " clearable>
|
||||
<el-option v-for="dict in ngtools_cbtj" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计量参比条件压力 " prop="dpbM">
|
||||
<el-input v-model="queryParams.dpbM" placeholder="请输入计量参比条件压力 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="计量参比条件温度 " prop="dtbM">
|
||||
<el-input v-model="queryParams.dtbM" placeholder="请输入计量参比条件温度 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="燃烧参比条件压力 " prop="dpbE">
|
||||
<el-input v-model="queryParams.dpbE" placeholder="请输入燃烧参比条件压力 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="燃烧参比条件温度 " prop="dtbE">
|
||||
<el-input v-model="queryParams.dtbE" placeholder="请输入燃烧参比条件温度 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="当地大气压 " prop="dPatm">
|
||||
<el-input v-model="queryParams.dPatm" placeholder="请输入当地大气压 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="当地大气压单位 " prop="dPatmUnit">
|
||||
<el-input v-model="queryParams.dPatmUnit" placeholder="请输入当地大气压单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="天然气组分 " prop="dngCompents">
|
||||
<el-input v-model="queryParams.dngCompents" placeholder="请输入天然气组分 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流量计类别 " prop="dMeterType">
|
||||
<el-select v-model="queryParams.dMeterType" placeholder="请选择流量计类别 " clearable>
|
||||
<el-option v-for="dict in ngtools_lljlx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="节流装置类型 " prop="dCoreType">
|
||||
<el-select v-model="queryParams.dCoreType" placeholder="请选择节流装置类型 " clearable>
|
||||
<el-option v-for="dict in ngtools_jlzzlx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="取压方式 " prop="dPtmode">
|
||||
<el-select v-model="queryParams.dPtmode" placeholder="请选择取压方式 " clearable>
|
||||
<el-option v-for="dict in qyfs" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="管道类型 " prop="dPipeType">
|
||||
<el-select v-model="queryParams.dPipeType" placeholder="请选择管道类型 " clearable>
|
||||
<el-option v-for="dict in ngtools_gdlx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="管道内径 " prop="dPipeD">
|
||||
<el-input v-model="queryParams.dPipeD" placeholder="请输入管道内径 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度单位 " prop="dLenUnit">
|
||||
<el-input v-model="queryParams.dLenUnit" placeholder="请输入长度单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道内径参考温度 " prop="dPipeDtemp">
|
||||
<el-input v-model="queryParams.dPipeDtemp" placeholder="请输入管道内径参考温度 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度单位 " prop="dPileDtempU">
|
||||
<el-input v-model="queryParams.dPileDtempU" placeholder="请输入温度单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道材料 " prop="dPipeMaterial">
|
||||
<el-select v-model="queryParams.dPipeMaterial" placeholder="请选择管道材料 " clearable>
|
||||
<el-option v-for="dict in ngtools_gdcz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板孔径 " prop="dOrificeD">
|
||||
<el-input v-model="queryParams.dOrificeD" placeholder="请输入孔板孔径 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度单位 " prop="dOrificeUnit">
|
||||
<el-input v-model="queryParams.dOrificeUnit" placeholder="请输入长度单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板内径参考温度 " prop="dOrificeDtemp">
|
||||
<el-input v-model="queryParams.dOrificeDtemp" placeholder="请输入孔板内径参考温度 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度单位 " prop="dOrificeDtempUnit">
|
||||
<el-input v-model="queryParams.dOrificeDtempUnit" placeholder="请输入温度单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板材料 " prop="dOrificeMaterial">
|
||||
<el-select v-model="queryParams.dOrificeMaterial" placeholder="请选择孔板材料 " clearable>
|
||||
<el-option v-for="dict in ngtools_gdcz" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="锐利度系数计算方法 " prop="dOrificeSharpness">
|
||||
<el-input v-model="queryParams.dOrificeSharpness" placeholder="请输入锐利度系数计算方法 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板入口圆弧半径 " prop="dOrificeRk">
|
||||
<el-input v-model="queryParams.dOrificeRk" placeholder="请输入孔板入口圆弧半径 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度单位 " prop="dOrificeRkLenU">
|
||||
<el-input v-model="queryParams.dOrificeRkLenU" placeholder="请输入长度单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="输入压力 " prop="dPf">
|
||||
<el-input v-model="queryParams.dPf" placeholder="请输入输入压力 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力单位 " prop="dPfUnit">
|
||||
<el-input v-model="queryParams.dPfUnit" placeholder="请输入压力单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力类型 " prop="dPfType">
|
||||
<el-select v-model="queryParams.dPfType" placeholder="请选择压力类型 " clearable>
|
||||
<el-option v-for="dict in ngtools_yllx" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="输入温度 " prop="dTf">
|
||||
<el-input v-model="queryParams.dTf" placeholder="请输入输入温度 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度单位 " prop="dTfUnit">
|
||||
<el-input v-model="queryParams.dTfUnit" placeholder="请输入温度单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="输入差压 " prop="dDp">
|
||||
<el-input v-model="queryParams.dDp" placeholder="请输入输入差压 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力单位 " prop="dDpUnit">
|
||||
<el-input v-model="queryParams.dDpUnit" placeholder="请输入压力单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="体积流量单位 " prop="dVFlowUnit">
|
||||
<el-input v-model="queryParams.dVFlowUnit" placeholder="请输入体积流量单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量流量单位 " prop="dMFlowUnit">
|
||||
<el-input v-model="queryParams.dMFlowUnit" placeholder="请输入质量流量单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="能量流量单位 " prop="dEFlowUnit">
|
||||
<el-input v-model="queryParams.dEFlowUnit" placeholder="请输入能量流量单位 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流出系数 " prop="dCd">
|
||||
<el-input v-model="queryParams.dCd" placeholder="请输入流出系数 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流出系数计算方法 " prop="dCdCalMethod">
|
||||
<el-select v-model="queryParams.dCdCalMethod" placeholder="请选择流出系数计算方法 " clearable>
|
||||
<el-option v-for="dict in ngtools_lcxsjsff" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表系数 " prop="dMeterFactor">
|
||||
<el-input v-model="queryParams.dMeterFactor" placeholder="请输入仪表系数 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="脉冲数 " prop="dPulseNum">
|
||||
<el-input v-model="queryParams.dPulseNum" placeholder="请输入脉冲数 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最大体积流量 " prop="dVFlowMax">
|
||||
<el-input v-model="queryParams.dVFlowMax" placeholder="请输入最大体积流量 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最小体积流量 " prop="dVFlowMin">
|
||||
<el-input v-model="queryParams.dVFlowMin" placeholder="请输入最小体积流量 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="常用流量 " prop="dVFlowCon">
|
||||
<el-input v-model="queryParams.dVFlowCon" placeholder="请输入常用流量 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力量程下限 " prop="dPfRangeMin">
|
||||
<el-input v-model="queryParams.dPfRangeMin" placeholder="请输入压力量程下限 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力量程上限 " prop="dPfRangeMax">
|
||||
<el-input v-model="queryParams.dPfRangeMax" placeholder="请输入压力量程上限 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="差压量程下限 " prop="dDpRangeMin">
|
||||
<el-input v-model="queryParams.dDpRangeMin" placeholder="请输入差压量程下限 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="差压量程上限 " prop="dDpRangeMax">
|
||||
<el-input v-model="queryParams.dDpRangeMax" placeholder="请输入差压量程上限 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度计量程下限 " prop="dTfRangeMin">
|
||||
<el-input v-model="queryParams.dTfRangeMin" placeholder="请输入温度计量程下限 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度计量程上限 " prop="dTfRangeMax">
|
||||
<el-input v-model="queryParams.dTfRangeMax" placeholder="请输入温度计量程上限 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管束车容积 " prop="dVGsc">
|
||||
<el-input v-model="queryParams.dVGsc" placeholder="请输入管束车容积 " clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="取样编号" prop="sampleno">
|
||||
<el-input v-model="queryParams.sampleno" placeholder="请输入取样编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表编号" prop="meterno">
|
||||
<el-input v-model="queryParams.meterno" placeholder="请输入仪表编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['ngtools:meterpar:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['ngtools:meterpar:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['ngtools:meterpar:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['ngtools:meterpar:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="meterparList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="ID " align="center" prop="id" />
|
||||
<el-table-column label="创建人名称 " align="center" prop="createName" />
|
||||
<el-table-column label="处置人姓名 " align="center" prop="createBy" />
|
||||
<el-table-column label="创建处置时间 " align="center" prop="createTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新人名称 " align="center" prop="updateName" />
|
||||
<el-table-column label="更新人登录名称 " align="center" prop="updateBy" />
|
||||
<el-table-column label="更新日期 " align="center" prop="updateTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="流量计算标准 " align="center" prop="dFlowCalbz">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_lljsbz" :value="scope.row.dFlowCalbz" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="压缩因子计算标准 " align="center" prop="dZcalbz">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_ysyzjsbz" :value="scope.row.dZcalbz" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计量参比条件压力 " align="center" prop="dCbtj">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_cbtj" :value="scope.row.dCbtj" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计量参比条件压力 " align="center" prop="dpbM" />
|
||||
<el-table-column label="计量参比条件温度 " align="center" prop="dtbM" />
|
||||
<el-table-column label="燃烧参比条件压力 " align="center" prop="dpbE" />
|
||||
<el-table-column label="燃烧参比条件温度 " align="center" prop="dtbE" />
|
||||
<el-table-column label="当地大气压 " align="center" prop="dPatm" />
|
||||
<el-table-column label="当地大气压单位 " align="center" prop="dPatmUnit" />
|
||||
<el-table-column label="天然气组分 " align="center" prop="dngCompents" />
|
||||
<el-table-column label="流量计类别 " align="center" prop="dMeterType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_lljlx" :value="scope.row.dMeterType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="节流装置类型 " align="center" prop="dCoreType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_jlzzlx" :value="scope.row.dCoreType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="取压方式 " align="center" prop="dPtmode">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="qyfs" :value="scope.row.dPtmode" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="管道类型 " align="center" prop="dPipeType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_gdlx" :value="scope.row.dPipeType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="管道内径 " align="center" prop="dPipeD" />
|
||||
<el-table-column label="长度单位 " align="center" prop="dLenUnit" />
|
||||
<el-table-column label="管道内径参考温度 " align="center" prop="dPipeDtemp" />
|
||||
<el-table-column label="温度单位 " align="center" prop="dPileDtempU" />
|
||||
<el-table-column label="管道材料 " align="center" prop="dPipeMaterial">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_gdcz" :value="scope.row.dPipeMaterial" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="孔板孔径 " align="center" prop="dOrificeD" />
|
||||
<el-table-column label="长度单位 " align="center" prop="dOrificeUnit" />
|
||||
<el-table-column label="孔板内径参考温度 " align="center" prop="dOrificeDtemp" />
|
||||
<el-table-column label="温度单位 " align="center" prop="dOrificeDtempUnit" />
|
||||
<el-table-column label="孔板材料 " align="center" prop="dOrificeMaterial">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_gdcz" :value="scope.row.dOrificeMaterial" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="锐利度系数计算方法 " align="center" prop="dOrificeSharpness" />
|
||||
<el-table-column label="孔板入口圆弧半径 " align="center" prop="dOrificeRk" />
|
||||
<el-table-column label="长度单位 " align="center" prop="dOrificeRkLenU" />
|
||||
<el-table-column label="输入压力 " align="center" prop="dPf" />
|
||||
<el-table-column label="压力单位 " align="center" prop="dPfUnit" />
|
||||
<el-table-column label="压力类型 " align="center" prop="dPfType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_yllx" :value="scope.row.dPfType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="输入温度 " align="center" prop="dTf" />
|
||||
<el-table-column label="温度单位 " align="center" prop="dTfUnit" />
|
||||
<el-table-column label="输入差压 " align="center" prop="dDp" />
|
||||
<el-table-column label="压力单位 " align="center" prop="dDpUnit" />
|
||||
<el-table-column label="体积流量单位 " align="center" prop="dVFlowUnit" />
|
||||
<el-table-column label="质量流量单位 " align="center" prop="dMFlowUnit" />
|
||||
<el-table-column label="能量流量单位 " align="center" prop="dEFlowUnit" />
|
||||
<el-table-column label="流出系数 " align="center" prop="dCd" />
|
||||
<el-table-column label="流出系数计算方法 " align="center" prop="dCdCalMethod">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_lcxsjsff" :value="scope.row.dCdCalMethod" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="仪表系数 " align="center" prop="dMeterFactor" />
|
||||
<el-table-column label="脉冲数 " align="center" prop="dPulseNum" />
|
||||
<el-table-column label="最大体积流量 " align="center" prop="dVFlowMax" />
|
||||
<el-table-column label="最小体积流量 " align="center" prop="dVFlowMin" />
|
||||
<el-table-column label="常用流量 " align="center" prop="dVFlowCon" />
|
||||
<el-table-column label="压力量程下限 " align="center" prop="dPfRangeMin" />
|
||||
<el-table-column label="压力量程上限 " align="center" prop="dPfRangeMax" />
|
||||
<el-table-column label="差压量程下限 " align="center" prop="dDpRangeMin" />
|
||||
<el-table-column label="差压量程上限 " align="center" prop="dDpRangeMax" />
|
||||
<el-table-column label="温度计量程下限 " align="center" prop="dTfRangeMin" />
|
||||
<el-table-column label="温度计量程上限 " align="center" prop="dTfRangeMax" />
|
||||
<el-table-column label="管束车容积 " align="center" prop="dVGsc" />
|
||||
<el-table-column label="取样编号" align="center" prop="sampleno" />
|
||||
<el-table-column label="仪表编号" align="center" prop="meterno" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['ngtools:meterpar:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['ngtools:meterpar:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改流量计参数对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="meterparRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="创建人名称 " prop="createName">
|
||||
<el-input v-model="form.createName" placeholder="请输入创建人名称 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人名称 " prop="updateName">
|
||||
<el-input v-model="form.updateName" placeholder="请输入更新人名称 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="流量计算标准 " prop="dFlowCalbz">
|
||||
<el-select v-model="form.dFlowCalbz" placeholder="请选择流量计算标准 ">
|
||||
<el-option v-for="dict in ngtools_lljsbz" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="压缩因子计算标准 " prop="dZcalbz">
|
||||
<el-select v-model="form.dZcalbz" placeholder="请选择压缩因子计算标准 ">
|
||||
<el-option v-for="dict in ngtools_ysyzjsbz" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计量参比条件压力 " prop="dCbtj">
|
||||
<el-select v-model="form.dCbtj" placeholder="请选择计量参比条件压力 ">
|
||||
<el-option v-for="dict in ngtools_cbtj" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计量参比条件压力 " prop="dpbM">
|
||||
<el-input v-model="form.dpbM" placeholder="请输入计量参比条件压力 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="计量参比条件温度 " prop="dtbM">
|
||||
<el-input v-model="form.dtbM" placeholder="请输入计量参比条件温度 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="燃烧参比条件压力 " prop="dpbE">
|
||||
<el-input v-model="form.dpbE" placeholder="请输入燃烧参比条件压力 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="燃烧参比条件温度 " prop="dtbE">
|
||||
<el-input v-model="form.dtbE" placeholder="请输入燃烧参比条件温度 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="当地大气压 " prop="dPatm">
|
||||
<el-input v-model="form.dPatm" placeholder="请输入当地大气压 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="当地大气压单位 " prop="dPatmUnit">
|
||||
<el-input v-model="form.dPatmUnit" placeholder="请输入当地大气压单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="天然气组分 " prop="dngCompents">
|
||||
<el-input v-model="form.dngCompents" placeholder="请输入天然气组分 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="流量计类别 " prop="dMeterType">
|
||||
<el-select v-model="form.dMeterType" placeholder="请选择流量计类别 ">
|
||||
<el-option v-for="dict in ngtools_lljlx" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="节流装置类型 " prop="dCoreType">
|
||||
<el-select v-model="form.dCoreType" placeholder="请选择节流装置类型 ">
|
||||
<el-option v-for="dict in ngtools_jlzzlx" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="取压方式 " prop="dPtmode">
|
||||
<el-select v-model="form.dPtmode" placeholder="请选择取压方式 ">
|
||||
<el-option v-for="dict in qyfs" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="管道类型 " prop="dPipeType">
|
||||
<el-select v-model="form.dPipeType" placeholder="请选择管道类型 ">
|
||||
<el-option v-for="dict in ngtools_gdlx" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="管道内径 " prop="dPipeD">
|
||||
<el-input v-model="form.dPipeD" placeholder="请输入管道内径 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度单位 " prop="dLenUnit">
|
||||
<el-input v-model="form.dLenUnit" placeholder="请输入长度单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道内径参考温度 " prop="dPipeDtemp">
|
||||
<el-input v-model="form.dPipeDtemp" placeholder="请输入管道内径参考温度 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度单位 " prop="dPileDtempU">
|
||||
<el-input v-model="form.dPileDtempU" placeholder="请输入温度单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道材料 " prop="dPipeMaterial">
|
||||
<el-select v-model="form.dPipeMaterial" placeholder="请选择管道材料 ">
|
||||
<el-option v-for="dict in ngtools_gdcz" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板孔径 " prop="dOrificeD">
|
||||
<el-input v-model="form.dOrificeD" placeholder="请输入孔板孔径 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度单位 " prop="dOrificeUnit">
|
||||
<el-input v-model="form.dOrificeUnit" placeholder="请输入长度单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板内径参考温度 " prop="dOrificeDtemp">
|
||||
<el-input v-model="form.dOrificeDtemp" placeholder="请输入孔板内径参考温度 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度单位 " prop="dOrificeDtempUnit">
|
||||
<el-input v-model="form.dOrificeDtempUnit" placeholder="请输入温度单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板材料 " prop="dOrificeMaterial">
|
||||
<el-select v-model="form.dOrificeMaterial" placeholder="请选择孔板材料 ">
|
||||
<el-option v-for="dict in ngtools_gdcz" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="锐利度系数计算方法 " prop="dOrificeSharpness">
|
||||
<el-input v-model="form.dOrificeSharpness" placeholder="请输入锐利度系数计算方法 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板入口圆弧半径 " prop="dOrificeRk">
|
||||
<el-input v-model="form.dOrificeRk" placeholder="请输入孔板入口圆弧半径 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度单位 " prop="dOrificeRkLenU">
|
||||
<el-input v-model="form.dOrificeRkLenU" placeholder="请输入长度单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="输入压力 " prop="dPf">
|
||||
<el-input v-model="form.dPf" placeholder="请输入输入压力 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力单位 " prop="dPfUnit">
|
||||
<el-input v-model="form.dPfUnit" placeholder="请输入压力单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力类型 " prop="dPfType">
|
||||
<el-select v-model="form.dPfType" placeholder="请选择压力类型 ">
|
||||
<el-option v-for="dict in ngtools_yllx" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="输入温度 " prop="dTf">
|
||||
<el-input v-model="form.dTf" placeholder="请输入输入温度 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度单位 " prop="dTfUnit">
|
||||
<el-input v-model="form.dTfUnit" placeholder="请输入温度单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="输入差压 " prop="dDp">
|
||||
<el-input v-model="form.dDp" placeholder="请输入输入差压 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力单位 " prop="dDpUnit">
|
||||
<el-input v-model="form.dDpUnit" placeholder="请输入压力单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="体积流量单位 " prop="dVFlowUnit">
|
||||
<el-input v-model="form.dVFlowUnit" placeholder="请输入体积流量单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量流量单位 " prop="dMFlowUnit">
|
||||
<el-input v-model="form.dMFlowUnit" placeholder="请输入质量流量单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="能量流量单位 " prop="dEFlowUnit">
|
||||
<el-input v-model="form.dEFlowUnit" placeholder="请输入能量流量单位 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="流出系数 " prop="dCd">
|
||||
<el-input v-model="form.dCd" placeholder="请输入流出系数 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="流出系数计算方法 " prop="dCdCalMethod">
|
||||
<el-select v-model="form.dCdCalMethod" placeholder="请选择流出系数计算方法 ">
|
||||
<el-option v-for="dict in ngtools_lcxsjsff" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表系数 " prop="dMeterFactor">
|
||||
<el-input v-model="form.dMeterFactor" placeholder="请输入仪表系数 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="脉冲数 " prop="dPulseNum">
|
||||
<el-input v-model="form.dPulseNum" placeholder="请输入脉冲数 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="最大体积流量 " prop="dVFlowMax">
|
||||
<el-input v-model="form.dVFlowMax" placeholder="请输入最大体积流量 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="最小体积流量 " prop="dVFlowMin">
|
||||
<el-input v-model="form.dVFlowMin" placeholder="请输入最小体积流量 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="常用流量 " prop="dVFlowCon">
|
||||
<el-input v-model="form.dVFlowCon" placeholder="请输入常用流量 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力量程下限 " prop="dPfRangeMin">
|
||||
<el-input v-model="form.dPfRangeMin" placeholder="请输入压力量程下限 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力量程上限 " prop="dPfRangeMax">
|
||||
<el-input v-model="form.dPfRangeMax" placeholder="请输入压力量程上限 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="差压量程下限 " prop="dDpRangeMin">
|
||||
<el-input v-model="form.dDpRangeMin" placeholder="请输入差压量程下限 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="差压量程上限 " prop="dDpRangeMax">
|
||||
<el-input v-model="form.dDpRangeMax" placeholder="请输入差压量程上限 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度计量程下限 " prop="dTfRangeMin">
|
||||
<el-input v-model="form.dTfRangeMin" placeholder="请输入温度计量程下限 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度计量程上限 " prop="dTfRangeMax">
|
||||
<el-input v-model="form.dTfRangeMax" placeholder="请输入温度计量程上限 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="管束车容积 " prop="dVGsc">
|
||||
<el-input v-model="form.dVGsc" placeholder="请输入管束车容积 " />
|
||||
</el-form-item>
|
||||
<el-form-item label="取样编号" prop="sampleno">
|
||||
<el-input v-model="form.sampleno" placeholder="请输入取样编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表编号" prop="meterno">
|
||||
<el-input v-model="form.meterno" placeholder="请输入仪表编号" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Meterpar">
|
||||
import { listMeterpar, getMeterpar, delMeterpar, addMeterpar, updateMeterpar } from '@/api/ngtools/meterpar';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { ngtools_cbtj, ngtools_jlzzlx, ngtools_lljlx, qyfs, ngtools_gdcz, ngtools_lcxsjsff, ngtools_gdlx, ngtools_yllx, ngtools_lljsbz, ngtools_ysyzjsbz } = proxy.useDict(
|
||||
'ngtools_cbtj',
|
||||
'ngtools_jlzzlx',
|
||||
'ngtools_lljlx',
|
||||
'qyfs',
|
||||
'ngtools_gdcz',
|
||||
'ngtools_lcxsjsff',
|
||||
'ngtools_gdlx',
|
||||
'ngtools_yllx',
|
||||
'ngtools_lljsbz',
|
||||
'ngtools_ysyzjsbz'
|
||||
);
|
||||
|
||||
const meterparList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
createName: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateName: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
dFlowCalbz: null,
|
||||
dZcalbz: null,
|
||||
dCbtj: null,
|
||||
dpbM: null,
|
||||
dtbM: null,
|
||||
dpbE: null,
|
||||
dtbE: null,
|
||||
dPatm: null,
|
||||
dPatmUnit: null,
|
||||
dngCompents: null,
|
||||
dMeterType: null,
|
||||
dCoreType: null,
|
||||
dPtmode: null,
|
||||
dPipeType: null,
|
||||
dPipeD: null,
|
||||
dLenUnit: null,
|
||||
dPipeDtemp: null,
|
||||
dPileDtempU: null,
|
||||
dPipeMaterial: null,
|
||||
dOrificeD: null,
|
||||
dOrificeUnit: null,
|
||||
dOrificeDtemp: null,
|
||||
dOrificeDtempUnit: null,
|
||||
dOrificeMaterial: null,
|
||||
dOrificeSharpness: null,
|
||||
dOrificeRk: null,
|
||||
dOrificeRkLenU: null,
|
||||
dPf: null,
|
||||
dPfUnit: null,
|
||||
dPfType: null,
|
||||
dTf: null,
|
||||
dTfUnit: null,
|
||||
dDp: null,
|
||||
dDpUnit: null,
|
||||
dVFlowUnit: null,
|
||||
dMFlowUnit: null,
|
||||
dEFlowUnit: null,
|
||||
dCd: null,
|
||||
dCdCalMethod: null,
|
||||
dMeterFactor: null,
|
||||
dPulseNum: null,
|
||||
dVFlowMax: null,
|
||||
dVFlowMin: null,
|
||||
dVFlowCon: null,
|
||||
dPfRangeMin: null,
|
||||
dPfRangeMax: null,
|
||||
dDpRangeMin: null,
|
||||
dDpRangeMax: null,
|
||||
dTfRangeMin: null,
|
||||
dTfRangeMax: null,
|
||||
dVGsc: null,
|
||||
sampleno: null,
|
||||
meterno: null
|
||||
},
|
||||
rules: {}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询流量计参数列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listMeterpar(queryParams.value).then((response) => {
|
||||
meterparList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
createName: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateName: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
dFlowCalbz: null,
|
||||
dZcalbz: null,
|
||||
dCbtj: null,
|
||||
dpbM: null,
|
||||
dtbM: null,
|
||||
dpbE: null,
|
||||
dtbE: null,
|
||||
dPatm: null,
|
||||
dPatmUnit: null,
|
||||
dngCompents: null,
|
||||
dMeterType: null,
|
||||
dCoreType: null,
|
||||
dPtmode: null,
|
||||
dPipeType: null,
|
||||
dPipeD: null,
|
||||
dLenUnit: null,
|
||||
dPipeDtemp: null,
|
||||
dPileDtempU: null,
|
||||
dPipeMaterial: null,
|
||||
dOrificeD: null,
|
||||
dOrificeUnit: null,
|
||||
dOrificeDtemp: null,
|
||||
dOrificeDtempUnit: null,
|
||||
dOrificeMaterial: null,
|
||||
dOrificeSharpness: null,
|
||||
dOrificeRk: null,
|
||||
dOrificeRkLenU: null,
|
||||
dPf: null,
|
||||
dPfUnit: null,
|
||||
dPfType: null,
|
||||
dTf: null,
|
||||
dTfUnit: null,
|
||||
dDp: null,
|
||||
dDpUnit: null,
|
||||
dVFlowUnit: null,
|
||||
dMFlowUnit: null,
|
||||
dEFlowUnit: null,
|
||||
dCd: null,
|
||||
dCdCalMethod: null,
|
||||
dMeterFactor: null,
|
||||
dPulseNum: null,
|
||||
dVFlowMax: null,
|
||||
dVFlowMin: null,
|
||||
dVFlowCon: null,
|
||||
dPfRangeMin: null,
|
||||
dPfRangeMax: null,
|
||||
dDpRangeMin: null,
|
||||
dDpRangeMax: null,
|
||||
dTfRangeMin: null,
|
||||
dTfRangeMax: null,
|
||||
dVGsc: null,
|
||||
sampleno: null,
|
||||
meterno: null
|
||||
};
|
||||
proxy.resetForm('meterparRef');
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加流量计参数';
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getMeterpar(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改流量计参数';
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['meterparRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateMeterpar(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addMeterpar(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除流量计参数编号为"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delMeterpar(_ids);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'ngtools/meterpar/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`meterpar_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
399
src/views/ngtools/meterresult/index.vue
Normal file
399
src/views/ngtools/meterresult/index.vue
Normal file
@ -0,0 +1,399 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="创建人名称" prop="createName">
|
||||
<el-input v-model="queryParams.createName" placeholder="请输入创建人名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人名称" prop="updateName">
|
||||
<el-input v-model="queryParams.updateName" placeholder="请输入更新人名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流量计编号" prop="ybbh">
|
||||
<el-input v-model="queryParams.ybbh" placeholder="请输入流量计编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求渐近速度系数 E" prop="dE">
|
||||
<el-input v-model="queryParams.dE" placeholder="请输入求渐近速度系数 E" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求相对密度系数 FG" prop="dFG">
|
||||
<el-input v-model="queryParams.dFG" placeholder="请输入求相对密度系数 FG" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求流动温度系数 FT" prop="dFT">
|
||||
<el-input v-model="queryParams.dFT" placeholder="请输入求流动温度系数 FT" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求动力粘度dlnd" prop="dDViscosity">
|
||||
<el-input v-model="queryParams.dDViscosity" placeholder="请输入求动力粘度dlnd" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求可膨胀系数" prop="dDExpCoefficient">
|
||||
<el-input v-model="queryParams.dDExpCoefficient" placeholder="请输入求可膨胀系数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道雷诺数" prop="dRnPipe">
|
||||
<el-input v-model="queryParams.dRnPipe" placeholder="请输入管道雷诺数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板锐利度系数Bk" prop="dBk">
|
||||
<el-input v-model="queryParams.dBk" placeholder="请输入孔板锐利度系数Bk" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道粗糙度系数 Gme" prop="dRoughNessPipe">
|
||||
<el-input v-model="queryParams.dRoughNessPipe" placeholder="请输入管道粗糙度系数 Gme" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修正后的流出系数" prop="dCdCorrect">
|
||||
<el-input v-model="queryParams.dCdCorrect" placeholder="请输入修正后的流出系数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="喷嘴的流出系数" prop="dCdNozell">
|
||||
<el-input v-model="queryParams.dCdNozell" placeholder="请输入喷嘴的流出系数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况体积流量m³/s" prop="dVFlowb">
|
||||
<el-input v-model="queryParams.dVFlowb" placeholder="请输入标况体积流量m³/s" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况体积流量" prop="dVFlowf">
|
||||
<el-input v-model="queryParams.dVFlowf" placeholder="请输入工况体积流量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量流量" prop="dMFlowb">
|
||||
<el-input v-model="queryParams.dMFlowb" placeholder="请输入标况质量流量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况能量流量" prop="dEFlowb">
|
||||
<el-input v-model="queryParams.dEFlowb" placeholder="请输入标况能量流量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道内天然气流速" prop="dVelocityFlow">
|
||||
<el-input v-model="queryParams.dVelocityFlow" placeholder="请输入管道内天然气流速" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力损失" prop="dPressLost">
|
||||
<el-input v-model="queryParams.dPressLost" placeholder="请输入压力损失" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="直径比" prop="dBeta">
|
||||
<el-input v-model="queryParams.dBeta" placeholder="请输入直径比" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="等熵指数" prop="dKappa">
|
||||
<el-input v-model="queryParams.dKappa" placeholder="请输入等熵指数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="取样编号" prop="sampleno">
|
||||
<el-input v-model="queryParams.sampleno" placeholder="请输入取样编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表编号" prop="meterno">
|
||||
<el-input v-model="queryParams.meterno" placeholder="请输入仪表编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['ngtools:meterresult:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['ngtools:meterresult:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['ngtools:meterresult:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['ngtools:meterresult:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="meterresultList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="ID" align="center" prop="id" />
|
||||
<el-table-column label="创建人名称" align="center" prop="createName" />
|
||||
<el-table-column label="更新人名称" align="center" prop="updateName" />
|
||||
<el-table-column label="流量计编号" align="center" prop="ybbh" />
|
||||
<el-table-column label="求渐近速度系数 E" align="center" prop="dE" />
|
||||
<el-table-column label="求相对密度系数 FG" align="center" prop="dFG" />
|
||||
<el-table-column label="求流动温度系数 FT" align="center" prop="dFT" />
|
||||
<el-table-column label="求动力粘度dlnd" align="center" prop="dDViscosity" />
|
||||
<el-table-column label="求可膨胀系数" align="center" prop="dDExpCoefficient" />
|
||||
<el-table-column label="管道雷诺数" align="center" prop="dRnPipe" />
|
||||
<el-table-column label="孔板锐利度系数Bk" align="center" prop="dBk" />
|
||||
<el-table-column label="管道粗糙度系数 Gme" align="center" prop="dRoughNessPipe" />
|
||||
<el-table-column label="修正后的流出系数" align="center" prop="dCdCorrect" />
|
||||
<el-table-column label="喷嘴的流出系数" align="center" prop="dCdNozell" />
|
||||
<el-table-column label="标况体积流量m³/s" align="center" prop="dVFlowb" />
|
||||
<el-table-column label="工况体积流量" align="center" prop="dVFlowf" />
|
||||
<el-table-column label="标况质量流量" align="center" prop="dMFlowb" />
|
||||
<el-table-column label="标况能量流量" align="center" prop="dEFlowb" />
|
||||
<el-table-column label="管道内天然气流速" align="center" prop="dVelocityFlow" />
|
||||
<el-table-column label="压力损失" align="center" prop="dPressLost" />
|
||||
<el-table-column label="直径比" align="center" prop="dBeta" />
|
||||
<el-table-column label="等熵指数" align="center" prop="dKappa" />
|
||||
<el-table-column label="取样编号" align="center" prop="sampleno" />
|
||||
<el-table-column label="仪表编号" align="center" prop="meterno" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['ngtools:meterresult:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['ngtools:meterresult:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改流量计算结果对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="meterresultRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="创建人名称" prop="createName">
|
||||
<el-input v-model="form.createName" placeholder="请输入创建人名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人名称" prop="updateName">
|
||||
<el-input v-model="form.updateName" placeholder="请输入更新人名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流量计编号" prop="ybbh">
|
||||
<el-input v-model="form.ybbh" placeholder="请输入流量计编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求渐近速度系数 E" prop="dE">
|
||||
<el-input v-model="form.dE" placeholder="请输入求渐近速度系数 E" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求相对密度系数 FG" prop="dFG">
|
||||
<el-input v-model="form.dFG" placeholder="请输入求相对密度系数 FG" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求流动温度系数 FT" prop="dFT">
|
||||
<el-input v-model="form.dFT" placeholder="请输入求流动温度系数 FT" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求动力粘度dlnd" prop="dDViscosity">
|
||||
<el-input v-model="form.dDViscosity" placeholder="请输入求动力粘度dlnd" />
|
||||
</el-form-item>
|
||||
<el-form-item label="求可膨胀系数" prop="dDExpCoefficient">
|
||||
<el-input v-model="form.dDExpCoefficient" placeholder="请输入求可膨胀系数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道雷诺数" prop="dRnPipe">
|
||||
<el-input v-model="form.dRnPipe" placeholder="请输入管道雷诺数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="孔板锐利度系数Bk" prop="dBk">
|
||||
<el-input v-model="form.dBk" placeholder="请输入孔板锐利度系数Bk" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道粗糙度系数 Gme" prop="dRoughNessPipe">
|
||||
<el-input v-model="form.dRoughNessPipe" placeholder="请输入管道粗糙度系数 Gme" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修正后的流出系数" prop="dCdCorrect">
|
||||
<el-input v-model="form.dCdCorrect" placeholder="请输入修正后的流出系数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="喷嘴的流出系数" prop="dCdNozell">
|
||||
<el-input v-model="form.dCdNozell" placeholder="请输入喷嘴的流出系数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况体积流量m³/s" prop="dVFlowb">
|
||||
<el-input v-model="form.dVFlowb" placeholder="请输入标况体积流量m³/s" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况体积流量" prop="dVFlowf">
|
||||
<el-input v-model="form.dVFlowf" placeholder="请输入工况体积流量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量流量" prop="dMFlowb">
|
||||
<el-input v-model="form.dMFlowb" placeholder="请输入标况质量流量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况能量流量" prop="dEFlowb">
|
||||
<el-input v-model="form.dEFlowb" placeholder="请输入标况能量流量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管道内天然气流速" prop="dVelocityFlow">
|
||||
<el-input v-model="form.dVelocityFlow" placeholder="请输入管道内天然气流速" />
|
||||
</el-form-item>
|
||||
<el-form-item label="压力损失" prop="dPressLost">
|
||||
<el-input v-model="form.dPressLost" placeholder="请输入压力损失" />
|
||||
</el-form-item>
|
||||
<el-form-item label="直径比" prop="dBeta">
|
||||
<el-input v-model="form.dBeta" placeholder="请输入直径比" />
|
||||
</el-form-item>
|
||||
<el-form-item label="等熵指数" prop="dKappa">
|
||||
<el-input v-model="form.dKappa" placeholder="请输入等熵指数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="取样编号" prop="sampleno">
|
||||
<el-input v-model="form.sampleno" placeholder="请输入取样编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪表编号" prop="meterno">
|
||||
<el-input v-model="form.meterno" placeholder="请输入仪表编号" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Meterresult">
|
||||
import { listMeterresult, getMeterresult, delMeterresult, addMeterresult, updateMeterresult } from '@/api/ngtools/meterresult';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const meterresultList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
createName: null,
|
||||
updateName: null,
|
||||
ybbh: null,
|
||||
dE: null,
|
||||
dFG: null,
|
||||
dFT: null,
|
||||
dDViscosity: null,
|
||||
dDExpCoefficient: null,
|
||||
dRnPipe: null,
|
||||
dBk: null,
|
||||
dRoughNessPipe: null,
|
||||
dCdCorrect: null,
|
||||
dCdNozell: null,
|
||||
dVFlowb: null,
|
||||
dVFlowf: null,
|
||||
dMFlowb: null,
|
||||
dEFlowb: null,
|
||||
dVelocityFlow: null,
|
||||
dPressLost: null,
|
||||
dBeta: null,
|
||||
dKappa: null,
|
||||
sampleno: null,
|
||||
meterno: null
|
||||
},
|
||||
rules: {}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询流量计算结果列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listMeterresult(queryParams.value).then((response) => {
|
||||
meterresultList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
createName: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateName: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
ybbh: null,
|
||||
dE: null,
|
||||
dFG: null,
|
||||
dFT: null,
|
||||
dDViscosity: null,
|
||||
dDExpCoefficient: null,
|
||||
dRnPipe: null,
|
||||
dBk: null,
|
||||
dRoughNessPipe: null,
|
||||
dCdCorrect: null,
|
||||
dCdNozell: null,
|
||||
dVFlowb: null,
|
||||
dVFlowf: null,
|
||||
dMFlowb: null,
|
||||
dEFlowb: null,
|
||||
dVelocityFlow: null,
|
||||
dPressLost: null,
|
||||
dBeta: null,
|
||||
dKappa: null,
|
||||
sampleno: null,
|
||||
meterno: null
|
||||
};
|
||||
proxy.resetForm('meterresultRef');
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加流量计算结果';
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getMeterresult(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改流量计算结果';
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['meterresultRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateMeterresult(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addMeterresult(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除流量计算结果编号为"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delMeterresult(_ids);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'ngtools/meterresult/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`meterresult_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
693
src/views/ngtools/ngpar/index.vue
Normal file
693
src/views/ngtools/ngpar/index.vue
Normal file
@ -0,0 +1,693 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="创建人名称" prop="createName">
|
||||
<el-input v-model="queryParams.createName" placeholder="请输入创建人名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人名称" prop="updateName">
|
||||
<el-input v-model="queryParams.updateName" placeholder="请输入更新人名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="气体摩尔组成" prop="adMixture">
|
||||
<el-input v-model="queryParams.adMixture" placeholder="请输入气体摩尔组成" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="气体体积组成" prop="adMixtureV">
|
||||
<el-input v-model="queryParams.adMixtureV" placeholder="请输入气体体积组成" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="气体质量组成" prop="adMixtureD">
|
||||
<el-input v-model="queryParams.adMixtureD" placeholder="请输入气体质量组成" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="参比条件" prop="dCbtj">
|
||||
<el-select v-model="queryParams.dCbtj" placeholder="请选择参比条件" clearable>
|
||||
<el-option v-for="dict in ngtools_cbtj" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="参比压力" prop="dPb">
|
||||
<el-input v-model="queryParams.dPb" placeholder="请输入参比压力" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="参比温度" prop="dTb">
|
||||
<el-input v-model="queryParams.dTb" placeholder="请输入参比温度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="绝对压力" prop="dPf">
|
||||
<el-input v-model="queryParams.dPf" placeholder="请输入绝对压力" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况温度" prop="dTf">
|
||||
<el-input v-model="queryParams.dTf" placeholder="请输入工况温度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分子量" prop="dMrx">
|
||||
<el-input v-model="queryParams.dMrx" placeholder="请输入分子量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况压缩因子" prop="dZb">
|
||||
<el-input v-model="queryParams.dZb" placeholder="请输入标况压缩因子" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况压缩因子" prop="dZf">
|
||||
<el-input v-model="queryParams.dZf" placeholder="请输入工况压缩因子" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="超压缩系数" prop="dFpv">
|
||||
<el-input v-model="queryParams.dFpv" placeholder="请输入超压缩系数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况摩尔密度" prop="dDb">
|
||||
<el-input v-model="queryParams.dDb" placeholder="请输入标况摩尔密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况摩尔密度" prop="dDf">
|
||||
<el-input v-model="queryParams.dDf" placeholder="请输入工况摩尔密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量密度" prop="dRhob">
|
||||
<el-input v-model="queryParams.dRhob" placeholder="请输入标况质量密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况质量密度" prop="dRhof">
|
||||
<el-input v-model="queryParams.dRhof" placeholder="请输入工况质量密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体的相对密度" prop="drdIdeal">
|
||||
<el-input v-model="queryParams.drdIdeal" placeholder="请输入理想气体的相对密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的相对密度" prop="drdReal">
|
||||
<el-input v-model="queryParams.drdReal" placeholder="请输入真实气体的相对密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体的比焓" prop="dHo">
|
||||
<el-input v-model="queryParams.dHo" placeholder="请输入理想气体的比焓" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的焓" prop="dH">
|
||||
<el-input v-model="queryParams.dH" placeholder="请输入真实气体的焓" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的熵" prop="dS">
|
||||
<el-input v-model="queryParams.dS" placeholder="请输入真实气体的熵" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体定压热容" prop="dCpi">
|
||||
<el-input v-model="queryParams.dCpi" placeholder="请输入理想气体定压热容" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="定压热容" prop="dCp">
|
||||
<el-input v-model="queryParams.dCp" placeholder="请输入定压热容" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="定容积热容" prop="dCv">
|
||||
<el-input v-model="queryParams.dCv" placeholder="请输入定容积热容" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="比热比" prop="dk">
|
||||
<el-input v-model="queryParams.dk" placeholder="请输入比热比" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="等熵指数" prop="dKappa">
|
||||
<el-input v-model="queryParams.dKappa" placeholder="请输入等熵指数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="声速" prop="dSOS">
|
||||
<el-input v-model="queryParams.dSOS" placeholder="请输入声速" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临界流函数" prop="dCstar">
|
||||
<el-input v-model="queryParams.dCstar" placeholder="请输入临界流函数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="摩尔高位发热量" prop="dHhvMol">
|
||||
<el-input v-model="queryParams.dHhvMol" placeholder="请输入摩尔高位发热量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="摩尔低位发热量" prop="dLhvMol">
|
||||
<el-input v-model="queryParams.dLhvMol" placeholder="请输入摩尔低位发热量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="体积高位发热量" prop="dHhvv">
|
||||
<el-input v-model="queryParams.dHhvv" placeholder="请输入体积高位发热量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="体积低位发热量" prop="dLhvv">
|
||||
<el-input v-model="queryParams.dLhvv" placeholder="请输入体积低位发热量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量高位发热量" prop="dHhvm">
|
||||
<el-input v-model="queryParams.dHhvm" placeholder="请输入质量高位发热量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量地位发热量" prop="dLhvm">
|
||||
<el-input v-model="queryParams.dLhvm" placeholder="请输入质量地位发热量" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况压缩因子" prop="dZb11062">
|
||||
<el-input v-model="queryParams.dZb11062" placeholder="请输入标况压缩因子" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量密度" prop="dRhob11062">
|
||||
<el-input v-model="queryParams.dRhob11062" placeholder="请输入标况质量密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况质量密度" prop="dRhof11062">
|
||||
<el-input v-model="queryParams.dRhof11062" placeholder="请输入工况质量密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体的相对密度" prop="drdIdeal11062">
|
||||
<el-input v-model="queryParams.drdIdeal11062" placeholder="请输入理想气体的相对密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的相对密度" prop="drdReal11062">
|
||||
<el-input v-model="queryParams.drdReal11062" placeholder="请输入真实气体的相对密度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的沃泊指数" prop="dWobbeIndex">
|
||||
<el-input v-model="queryParams.dWobbeIndex" placeholder="请输入真实气体的沃泊指数" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临界压力" prop="dPc">
|
||||
<el-input v-model="queryParams.dPc" placeholder="请输入临界压力" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临界温度" prop="dTC">
|
||||
<el-input v-model="queryParams.dTC" placeholder="请输入临界温度" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="爆炸上限" prop="dBzsx">
|
||||
<el-input v-model="queryParams.dBzsx" placeholder="请输入爆炸上限" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="爆炸下限" prop="dBzxx">
|
||||
<el-input v-model="queryParams.dBzxx" placeholder="请输入爆炸下限" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总炭含量(kg/m3)" prop="dTotalC">
|
||||
<el-input v-model="queryParams.dTotalC" placeholder="请输入总炭含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C2组分含量(kg/m3)" prop="dC2">
|
||||
<el-input v-model="queryParams.dC2" placeholder="请输入C2组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C2以上组分含量(kg/m3)" prop="dC2j">
|
||||
<el-input v-model="queryParams.dC2j" placeholder="请输入C2以上组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C3以上组分含量(kg/m3)" prop="dC3j">
|
||||
<el-input v-model="queryParams.dC3j" placeholder="请输入C3以上组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C4以上组分含量(kg/m3)" prop="dC4j">
|
||||
<el-input v-model="queryParams.dC4j" placeholder="请输入C4以上组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C5以上组分含量(kg/m3)" prop="dC5j">
|
||||
<el-input v-model="queryParams.dC5j" placeholder="请输入C5以上组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C6以上组分含量(kg/m3)" prop="dC6j">
|
||||
<el-input v-model="queryParams.dC6j" placeholder="请输入C6以上组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C3C4组分含量(kg/m3)" prop="dC3C4">
|
||||
<el-input v-model="queryParams.dC3C4" placeholder="请输入C3C4组分含量(kg/m3)" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['ngtools:ngpar:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['ngtools:ngpar:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['ngtools:ngpar:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['ngtools:ngpar:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="ngparList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="ID" align="center" prop="id" />
|
||||
<el-table-column label="创建人名称" align="center" prop="createName" />
|
||||
<el-table-column label="更新人名称" align="center" prop="updateName" />
|
||||
<el-table-column label="气体摩尔组成" align="center" prop="adMixture" />
|
||||
<el-table-column label="气体体积组成" align="center" prop="adMixtureV" />
|
||||
<el-table-column label="气体质量组成" align="center" prop="adMixtureD" />
|
||||
<el-table-column label="参比条件" align="center" prop="dCbtj">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="ngtools_cbtj" :value="scope.row.dCbtj" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="参比压力" align="center" prop="dPb" />
|
||||
<el-table-column label="参比温度" align="center" prop="dTb" />
|
||||
<el-table-column label="绝对压力" align="center" prop="dPf" />
|
||||
<el-table-column label="工况温度" align="center" prop="dTf" />
|
||||
<el-table-column label="分子量" align="center" prop="dMrx" />
|
||||
<el-table-column label="标况压缩因子" align="center" prop="dZb" />
|
||||
<el-table-column label="工况压缩因子" align="center" prop="dZf" />
|
||||
<el-table-column label="超压缩系数" align="center" prop="dFpv" />
|
||||
<el-table-column label="标况摩尔密度" align="center" prop="dDb" />
|
||||
<el-table-column label="工况摩尔密度" align="center" prop="dDf" />
|
||||
<el-table-column label="标况质量密度" align="center" prop="dRhob" />
|
||||
<el-table-column label="工况质量密度" align="center" prop="dRhof" />
|
||||
<el-table-column label="理想气体的相对密度" align="center" prop="drdIdeal" />
|
||||
<el-table-column label="真实气体的相对密度" align="center" prop="drdReal" />
|
||||
<el-table-column label="理想气体的比焓" align="center" prop="dHo" />
|
||||
<el-table-column label="真实气体的焓" align="center" prop="dH" />
|
||||
<el-table-column label="真实气体的熵" align="center" prop="dS" />
|
||||
<el-table-column label="理想气体定压热容" align="center" prop="dCpi" />
|
||||
<el-table-column label="定压热容" align="center" prop="dCp" />
|
||||
<el-table-column label="定容积热容" align="center" prop="dCv" />
|
||||
<el-table-column label="比热比" align="center" prop="dk" />
|
||||
<el-table-column label="等熵指数" align="center" prop="dKappa" />
|
||||
<el-table-column label="声速" align="center" prop="dSOS" />
|
||||
<el-table-column label="临界流函数" align="center" prop="dCstar" />
|
||||
<el-table-column label="摩尔高位发热量" align="center" prop="dHhvMol" />
|
||||
<el-table-column label="摩尔低位发热量" align="center" prop="dLhvMol" />
|
||||
<el-table-column label="体积高位发热量" align="center" prop="dHhvv" />
|
||||
<el-table-column label="体积低位发热量" align="center" prop="dLhvv" />
|
||||
<el-table-column label="质量高位发热量" align="center" prop="dHhvm" />
|
||||
<el-table-column label="质量地位发热量" align="center" prop="dLhvm" />
|
||||
<el-table-column label="标况压缩因子" align="center" prop="dZb11062" />
|
||||
<el-table-column label="标况质量密度" align="center" prop="dRhob11062" />
|
||||
<el-table-column label="工况质量密度" align="center" prop="dRhof11062" />
|
||||
<el-table-column label="理想气体的相对密度" align="center" prop="drdIdeal11062" />
|
||||
<el-table-column label="真实气体的相对密度" align="center" prop="drdReal11062" />
|
||||
<el-table-column label="真实气体的沃泊指数" align="center" prop="dWobbeIndex" />
|
||||
<el-table-column label="临界压力" align="center" prop="dPc" />
|
||||
<el-table-column label="临界温度" align="center" prop="dTC" />
|
||||
<el-table-column label="爆炸上限" align="center" prop="dBzsx" />
|
||||
<el-table-column label="爆炸下限" align="center" prop="dBzxx" />
|
||||
<el-table-column label="总炭含量(kg/m3)" align="center" prop="dTotalC" />
|
||||
<el-table-column label="C2组分含量(kg/m3)" align="center" prop="dC2" />
|
||||
<el-table-column label="C2以上组分含量(kg/m3)" align="center" prop="dC2j" />
|
||||
<el-table-column label="C3以上组分含量(kg/m3)" align="center" prop="dC3j" />
|
||||
<el-table-column label="C4以上组分含量(kg/m3)" align="center" prop="dC4j" />
|
||||
<el-table-column label="C5以上组分含量(kg/m3)" align="center" prop="dC5j" />
|
||||
<el-table-column label="C6以上组分含量(kg/m3)" align="center" prop="dC6j" />
|
||||
<el-table-column label="C3C4组分含量(kg/m3)" align="center" prop="dC3C4" />
|
||||
<el-table-column label="取样编号" align="center" prop="sampleno" />
|
||||
<el-table-column label="仪表编号" align="center" prop="meterno" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['ngtools:ngpar:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['ngtools:ngpar:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改天然气物性参数对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="ngparRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="创建人名称" prop="createName">
|
||||
<el-input v-model="form.createName" placeholder="请输入创建人名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人名称" prop="updateName">
|
||||
<el-input v-model="form.updateName" placeholder="请输入更新人名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="气体摩尔组成" prop="adMixture">
|
||||
<el-input v-model="form.adMixture" placeholder="请输入气体摩尔组成" />
|
||||
</el-form-item>
|
||||
<el-form-item label="气体体积组成" prop="adMixtureV">
|
||||
<el-input v-model="form.adMixtureV" placeholder="请输入气体体积组成" />
|
||||
</el-form-item>
|
||||
<el-form-item label="气体质量组成" prop="adMixtureD">
|
||||
<el-input v-model="form.adMixtureD" placeholder="请输入气体质量组成" />
|
||||
</el-form-item>
|
||||
<el-form-item label="参比条件" prop="dCbtj">
|
||||
<el-select v-model="form.dCbtj" placeholder="请选择参比条件">
|
||||
<el-option v-for="dict in ngtools_cbtj" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="参比压力" prop="dPb">
|
||||
<el-input v-model="form.dPb" placeholder="请输入参比压力" />
|
||||
</el-form-item>
|
||||
<el-form-item label="参比温度" prop="dTb">
|
||||
<el-input v-model="form.dTb" placeholder="请输入参比温度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="绝对压力" prop="dPf">
|
||||
<el-input v-model="form.dPf" placeholder="请输入绝对压力" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况温度" prop="dTf">
|
||||
<el-input v-model="form.dTf" placeholder="请输入工况温度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分子量" prop="dMrx">
|
||||
<el-input v-model="form.dMrx" placeholder="请输入分子量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况压缩因子" prop="dZb">
|
||||
<el-input v-model="form.dZb" placeholder="请输入标况压缩因子" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况压缩因子" prop="dZf">
|
||||
<el-input v-model="form.dZf" placeholder="请输入工况压缩因子" />
|
||||
</el-form-item>
|
||||
<el-form-item label="超压缩系数" prop="dFpv">
|
||||
<el-input v-model="form.dFpv" placeholder="请输入超压缩系数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况摩尔密度" prop="dDb">
|
||||
<el-input v-model="form.dDb" placeholder="请输入标况摩尔密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况摩尔密度" prop="dDf">
|
||||
<el-input v-model="form.dDf" placeholder="请输入工况摩尔密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量密度" prop="dRhob">
|
||||
<el-input v-model="form.dRhob" placeholder="请输入标况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况质量密度" prop="dRhof">
|
||||
<el-input v-model="form.dRhof" placeholder="请输入工况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体的相对密度" prop="drdIdeal">
|
||||
<el-input v-model="form.drdIdeal" placeholder="请输入理想气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的相对密度" prop="drdReal">
|
||||
<el-input v-model="form.drdReal" placeholder="请输入真实气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体的比焓" prop="dHo">
|
||||
<el-input v-model="form.dHo" placeholder="请输入理想气体的比焓" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的焓" prop="dH">
|
||||
<el-input v-model="form.dH" placeholder="请输入真实气体的焓" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的熵" prop="dS">
|
||||
<el-input v-model="form.dS" placeholder="请输入真实气体的熵" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体定压热容" prop="dCpi">
|
||||
<el-input v-model="form.dCpi" placeholder="请输入理想气体定压热容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="定压热容" prop="dCp">
|
||||
<el-input v-model="form.dCp" placeholder="请输入定压热容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="定容积热容" prop="dCv">
|
||||
<el-input v-model="form.dCv" placeholder="请输入定容积热容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="比热比" prop="dk">
|
||||
<el-input v-model="form.dk" placeholder="请输入比热比" />
|
||||
</el-form-item>
|
||||
<el-form-item label="等熵指数" prop="dKappa">
|
||||
<el-input v-model="form.dKappa" placeholder="请输入等熵指数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="声速" prop="dSOS">
|
||||
<el-input v-model="form.dSOS" placeholder="请输入声速" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临界流函数" prop="dCstar">
|
||||
<el-input v-model="form.dCstar" placeholder="请输入临界流函数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="摩尔高位发热量" prop="dHhvMol">
|
||||
<el-input v-model="form.dHhvMol" placeholder="请输入摩尔高位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="摩尔低位发热量" prop="dLhvMol">
|
||||
<el-input v-model="form.dLhvMol" placeholder="请输入摩尔低位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="体积高位发热量" prop="dHhvv">
|
||||
<el-input v-model="form.dHhvv" placeholder="请输入体积高位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="体积低位发热量" prop="dLhvv">
|
||||
<el-input v-model="form.dLhvv" placeholder="请输入体积低位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量高位发热量" prop="dHhvm">
|
||||
<el-input v-model="form.dHhvm" placeholder="请输入质量高位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量地位发热量" prop="dLhvm">
|
||||
<el-input v-model="form.dLhvm" placeholder="请输入质量地位发热量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况压缩因子" prop="dZb11062">
|
||||
<el-input v-model="form.dZb11062" placeholder="请输入标况压缩因子" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标况质量密度" prop="dRhob11062">
|
||||
<el-input v-model="form.dRhob11062" placeholder="请输入标况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工况质量密度" prop="dRhof11062">
|
||||
<el-input v-model="form.dRhof11062" placeholder="请输入工况质量密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理想气体的相对密度" prop="drdIdeal11062">
|
||||
<el-input v-model="form.drdIdeal11062" placeholder="请输入理想气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的相对密度" prop="drdReal11062">
|
||||
<el-input v-model="form.drdReal11062" placeholder="请输入真实气体的相对密度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实气体的沃泊指数" prop="dWobbeIndex">
|
||||
<el-input v-model="form.dWobbeIndex" placeholder="请输入真实气体的沃泊指数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临界压力" prop="dPc">
|
||||
<el-input v-model="form.dPc" placeholder="请输入临界压力" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临界温度" prop="dTC">
|
||||
<el-input v-model="form.dTC" placeholder="请输入临界温度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="爆炸上限" prop="dBzsx">
|
||||
<el-input v-model="form.dBzsx" placeholder="请输入爆炸上限" />
|
||||
</el-form-item>
|
||||
<el-form-item label="爆炸下限" prop="dBzxx">
|
||||
<el-input v-model="form.dBzxx" placeholder="请输入爆炸下限" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总炭含量(kg/m3)" prop="dTotalC">
|
||||
<el-input v-model="form.dTotalC" placeholder="请输入总炭含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C2组分含量(kg/m3)" prop="dC2">
|
||||
<el-input v-model="form.dC2" placeholder="请输入C2组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C2以上组分含量(kg/m3)" prop="dC2j">
|
||||
<el-input v-model="form.dC2j" placeholder="请输入C2以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C3以上组分含量(kg/m3)" prop="dC3j">
|
||||
<el-input v-model="form.dC3j" placeholder="请输入C3以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C4以上组分含量(kg/m3)" prop="dC4j">
|
||||
<el-input v-model="form.dC4j" placeholder="请输入C4以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C5以上组分含量(kg/m3)" prop="dC5j">
|
||||
<el-input v-model="form.dC5j" placeholder="请输入C5以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C6以上组分含量(kg/m3)" prop="dC6j">
|
||||
<el-input v-model="form.dC6j" placeholder="请输入C6以上组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="C3C4组分含量(kg/m3)" prop="dC3C4">
|
||||
<el-input v-model="form.dC3C4" placeholder="请输入C3C4组分含量(kg/m3)" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Ngpar">
|
||||
import { listNgpar, getNgpar, delNgpar, addNgpar, updateNgpar } from '@/api/ngtools/ngpar';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { ngtools_cbtj } = proxy.useDict('ngtools_cbtj');
|
||||
|
||||
const ngparList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
createName: null,
|
||||
updateName: null,
|
||||
adMixture: null,
|
||||
adMixtureV: null,
|
||||
adMixtureD: null,
|
||||
dCbtj: null,
|
||||
dPb: null,
|
||||
dTb: null,
|
||||
dPf: null,
|
||||
dTf: null,
|
||||
dMrx: null,
|
||||
dZb: null,
|
||||
dZf: null,
|
||||
dFpv: null,
|
||||
dDb: null,
|
||||
dDf: null,
|
||||
dRhob: null,
|
||||
dRhof: null,
|
||||
drdIdeal: null,
|
||||
drdReal: null,
|
||||
dHo: null,
|
||||
dH: null,
|
||||
dS: null,
|
||||
dCpi: null,
|
||||
dCp: null,
|
||||
dCv: null,
|
||||
dk: null,
|
||||
dKappa: null,
|
||||
dSOS: null,
|
||||
dCstar: null,
|
||||
dHhvMol: null,
|
||||
dLhvMol: null,
|
||||
dHhvv: null,
|
||||
dLhvv: null,
|
||||
dHhvm: null,
|
||||
dLhvm: null,
|
||||
dZb11062: null,
|
||||
dRhob11062: null,
|
||||
dRhof11062: null,
|
||||
drdIdeal11062: null,
|
||||
drdReal11062: null,
|
||||
dWobbeIndex: null,
|
||||
dPc: null,
|
||||
dTC: null,
|
||||
dBzsx: null,
|
||||
dBzxx: null,
|
||||
dTotalC: null,
|
||||
dC2: null,
|
||||
dC2j: null,
|
||||
dC3j: null,
|
||||
dC4j: null,
|
||||
dC5j: null,
|
||||
dC6j: null,
|
||||
dC3C4: null,
|
||||
sampleno: null,
|
||||
meterno: null
|
||||
},
|
||||
rules: {}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询天然气物性参数列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listNgpar(queryParams.value).then((response) => {
|
||||
ngparList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
createName: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateName: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
adMixture: null,
|
||||
adMixtureV: null,
|
||||
adMixtureD: null,
|
||||
dCbtj: null,
|
||||
dPb: null,
|
||||
dTb: null,
|
||||
dPf: null,
|
||||
dTf: null,
|
||||
dMrx: null,
|
||||
dZb: null,
|
||||
dZf: null,
|
||||
dFpv: null,
|
||||
dDb: null,
|
||||
dDf: null,
|
||||
dRhob: null,
|
||||
dRhof: null,
|
||||
drdIdeal: null,
|
||||
drdReal: null,
|
||||
dHo: null,
|
||||
dH: null,
|
||||
dS: null,
|
||||
dCpi: null,
|
||||
dCp: null,
|
||||
dCv: null,
|
||||
dk: null,
|
||||
dKappa: null,
|
||||
dSOS: null,
|
||||
dCstar: null,
|
||||
dHhvMol: null,
|
||||
dLhvMol: null,
|
||||
dHhvv: null,
|
||||
dLhvv: null,
|
||||
dHhvm: null,
|
||||
dLhvm: null,
|
||||
dZb11062: null,
|
||||
dRhob11062: null,
|
||||
dRhof11062: null,
|
||||
drdIdeal11062: null,
|
||||
drdReal11062: null,
|
||||
dWobbeIndex: null,
|
||||
dPc: null,
|
||||
dTC: null,
|
||||
dBzsx: null,
|
||||
dBzxx: null,
|
||||
dTotalC: null,
|
||||
dC2: null,
|
||||
dC2j: null,
|
||||
dC3j: null,
|
||||
dC4j: null,
|
||||
dC5j: null,
|
||||
dC6j: null,
|
||||
dC3C4: null,
|
||||
sampleno: null,
|
||||
meterno: null
|
||||
};
|
||||
proxy.resetForm('ngparRef');
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加天然气物性参数';
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getNgpar(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改天然气物性参数';
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['ngparRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateNgpar(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addNgpar(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除天然气物性参数编号为"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delNgpar(_ids);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'ngtools/ngpar/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`ngpar_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="register">
|
||||
<el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
|
||||
<h3 class="title">若依后台管理系统</h3>
|
||||
<h3 class="title">天然气工具平台</h3>
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
v-model="registerForm.username"
|
||||
|
265
src/views/system/sysUnitConvert/index.vue
Normal file
265
src/views/system/sysUnitConvert/index.vue
Normal file
@ -0,0 +1,265 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="单位类型" prop="unitType">
|
||||
<el-select v-model="queryParams.unitType" placeholder="请选择单位类型" clearable style="width: 100px">
|
||||
<el-option v-for="dict in unit_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位名称" prop="unitName">
|
||||
<el-input v-model="queryParams.unitName" placeholder="请输入单位名称" clearable @keyup.enter="handleQuery" style="width: 120px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否基准" prop="baseUnit">
|
||||
<el-select v-model="queryParams.baseUnit" placeholder="请选择是否基准" clearable style="width: 100px">
|
||||
<el-option v-for="dict in sys_yes_no" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:sysUnitConvert:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['system:sysUnitConvert:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:sysUnitConvert:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:sysUnitConvert:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="sysUnitConvertList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="单位类型" align="center" prop="unitType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="unit_type" :value="scope.row.unitType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位名称" align="center" prop="unitName" />
|
||||
<el-table-column label="是否基准" align="center" prop="baseUnit">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.baseUnit" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="换算因子" align="center" prop="conversionFactor" />
|
||||
<el-table-column label="类型名称" align="center" prop="unitTypeName" />
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位序号" align="center" prop="unitOrder" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:sysUnitConvert:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:sysUnitConvert:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改单位换算对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="sysUnitConvertRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="单位类型" prop="unitType">
|
||||
<el-select v-model="form.unitType" placeholder="请选择单位类型">
|
||||
<el-option v-for="dict in unit_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位名称" prop="unitName">
|
||||
<el-input v-model="form.unitName" placeholder="请输入单位名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否基准" prop="baseUnit">
|
||||
<el-radio-group v-model="form.baseUnit">
|
||||
<el-radio v-for="dict in sys_yes_no" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="换算因子" prop="conversionFactor">
|
||||
<el-input v-model="form.conversionFactor" placeholder="请输入换算因子" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型名称" prop="unitTypeName">
|
||||
<el-input v-model="form.unitTypeName" placeholder="请输入类型名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio v-for="dict in sys_yes_no" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位序号" prop="unitOrder">
|
||||
<el-input v-model="form.unitOrder" placeholder="请输入单位序号" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="SysUnitConvert">
|
||||
import { listSysUnitConvert, getSysUnitConvert, delSysUnitConvert, addSysUnitConvert, updateSysUnitConvert } from '@/api/system/sysUnitConvert';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { sys_yes_no, unit_type } = proxy.useDict('sys_yes_no', 'unit_type');
|
||||
|
||||
const sysUnitConvertList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
unitType: null,
|
||||
unitName: null,
|
||||
baseUnit: null
|
||||
},
|
||||
rules: {
|
||||
unitType: [{ required: true, message: '单位类型不能为空', trigger: 'change' }],
|
||||
unitName: [{ required: true, message: '单位名称不能为空', trigger: 'blur' }],
|
||||
baseUnit: [{ required: true, message: '是否基准不能为空', trigger: 'change' }],
|
||||
conversionFactor: [{ required: true, message: '换算因子不能为空', trigger: 'blur' }],
|
||||
unitTypeName: [{ required: true, message: '类型名称不能为空', trigger: 'blur' }],
|
||||
unitOrder: [{ required: true, message: '单位序号不能为空', trigger: 'blur' }]
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询单位换算列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listSysUnitConvert(queryParams.value).then((response) => {
|
||||
sysUnitConvertList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
unitType: null,
|
||||
unitName: null,
|
||||
baseUnit: null,
|
||||
conversionFactor: null,
|
||||
unitTypeName: null,
|
||||
status: null,
|
||||
unitOrder: null
|
||||
};
|
||||
proxy.resetForm('sysUnitConvertRef');
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加单位换算';
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getSysUnitConvert(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改单位换算';
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['sysUnitConvertRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateSysUnitConvert(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addSysUnitConvert(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除单位换算编号为"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delSysUnitConvert(_ids);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'system/sysUnitConvert/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`sysUnitConvert_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
286
src/views/system/treeDict/index.vue
Normal file
286
src/views/system/treeDict/index.vue
Normal file
@ -0,0 +1,286 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="字典文本" prop="dictText">
|
||||
<el-input
|
||||
v-model="queryParams.dictText"
|
||||
placeholder="请输入字典文本"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="字典值" prop="dictValue">
|
||||
<el-input
|
||||
v-model="queryParams.dictValue"
|
||||
placeholder="请输入字典值"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="父ID" prop="pid">
|
||||
<el-input
|
||||
v-model="queryParams.pid"
|
||||
placeholder="请输入父ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门ID" prop="deptId">
|
||||
<el-input
|
||||
v-model="queryParams.deptId"
|
||||
placeholder="请输入部门ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="dictSort">
|
||||
<el-input
|
||||
v-model="queryParams.dictSort"
|
||||
placeholder="请输入排序"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:treeDict:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="info"
|
||||
plain
|
||||
icon="Sort"
|
||||
@click="toggleExpandAll"
|
||||
>展开/折叠</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-if="refreshTable"
|
||||
v-loading="loading"
|
||||
:data="treeDictList"
|
||||
row-key="id"
|
||||
:default-expand-all="isExpandAll"
|
||||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||
>
|
||||
<el-table-column label="字典文本" prop="dictText" />
|
||||
<el-table-column label="字典值" align="center" prop="dictValue" />
|
||||
<el-table-column label="父ID" align="center" prop="pid" />
|
||||
<el-table-column label="部门ID" align="center" prop="deptId" />
|
||||
<el-table-column label="排序" align="center" prop="dictSort" />
|
||||
<el-table-column label="状态" align="center" prop="status" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:treeDict:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['system:treeDict:add']">新增</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:treeDict:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 添加或修改树形字典对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="treeDictRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="字典文本" prop="dictText">
|
||||
<el-input v-model="form.dictText" placeholder="请输入字典文本" />
|
||||
</el-form-item>
|
||||
<el-form-item label="字典值" prop="dictValue">
|
||||
<el-input v-model="form.dictValue" placeholder="请输入字典值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="父ID" prop="pid">
|
||||
<el-input v-model="form.pid" placeholder="请输入父ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="部门ID" prop="deptId">
|
||||
<el-input v-model="form.deptId" placeholder="请输入部门ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="dictSort">
|
||||
<el-input v-model="form.dictSort" placeholder="请输入排序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="TreeDict">
|
||||
import { listTreeDict, getTreeDict, delTreeDict, addTreeDict, updateTreeDict } from "@/api/system/treeDict";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const treeDictList = ref([]);
|
||||
const treeDictOptions = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const title = ref("");
|
||||
const isExpandAll = ref(true);
|
||||
const refreshTable = ref(true);
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
dictText: null,
|
||||
dictValue: null,
|
||||
pid: null,
|
||||
deptId: null,
|
||||
dictSort: null,
|
||||
status: null,
|
||||
},
|
||||
rules: {
|
||||
dictText: [
|
||||
{ required: true, message: "字典文本不能为空", trigger: "blur" }
|
||||
],
|
||||
dictValue: [
|
||||
{ required: true, message: "字典值不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询树形字典列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listTreeDict(queryParams.value).then(response => {
|
||||
treeDictList.value = proxy.handleTree(response.data, "id", "id");
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询树形字典下拉树结构 */
|
||||
function getTreeselect() {
|
||||
listTreeDict().then(response => {
|
||||
treeDictOptions.value = [];
|
||||
const data = { id: 0, dictText: '顶级节点', children: [] };
|
||||
data.children = proxy.handleTree(response.data, "id", "id");
|
||||
treeDictOptions.value.push(data);
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
dictText: null,
|
||||
dictValue: null,
|
||||
pid: null,
|
||||
deptId: null,
|
||||
dictSort: null,
|
||||
status: null,
|
||||
remark: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
createBy: null,
|
||||
createTime: null
|
||||
};
|
||||
proxy.resetForm("treeDictRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd(row) {
|
||||
reset();
|
||||
getTreeselect();
|
||||
if (row != null && row.id) {
|
||||
form.value.id = row.id;
|
||||
} else {
|
||||
form.value.id = 0;
|
||||
}
|
||||
open.value = true;
|
||||
title.value = "添加树形字典";
|
||||
}
|
||||
|
||||
/** 展开/折叠操作 */
|
||||
function toggleExpandAll() {
|
||||
refreshTable.value = false;
|
||||
isExpandAll.value = !isExpandAll.value;
|
||||
nextTick(() => {
|
||||
refreshTable.value = true;
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
async function handleUpdate(row) {
|
||||
reset();
|
||||
await getTreeselect();
|
||||
if (row != null) {
|
||||
form.value.id = row.id;
|
||||
}
|
||||
getTreeDict(row.id).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改树形字典";
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["treeDictRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateTreeDict(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addTreeDict(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
proxy.$modal.confirm('是否确认删除树形字典编号为"' + row.id + '"的数据项?').then(function() {
|
||||
return delTreeDict(row.id);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
114
vite.config.js
114
vite.config.js
@ -1,58 +1,64 @@
|
||||
import { defineConfig, loadEnv } from 'vite'
|
||||
import {
|
||||
defineConfig,
|
||||
loadEnv
|
||||
} from 'vite'
|
||||
import path from 'path'
|
||||
import createVitePlugins from './vite/plugins'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig(({ mode, command }) => {
|
||||
const env = loadEnv(mode, process.cwd())
|
||||
const { VITE_APP_ENV } = env
|
||||
return {
|
||||
// 部署生产环境和开发环境下的URL。
|
||||
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
||||
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
||||
base: VITE_APP_ENV === 'production' ? '/' : '/',
|
||||
plugins: createVitePlugins(env, command === 'build'),
|
||||
resolve: {
|
||||
// https://cn.vitejs.dev/config/#resolve-alias
|
||||
alias: {
|
||||
// 设置路径
|
||||
'~': path.resolve(__dirname, './'),
|
||||
// 设置别名
|
||||
'@': path.resolve(__dirname, './src')
|
||||
},
|
||||
// https://cn.vitejs.dev/config/#resolve-extensions
|
||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
||||
},
|
||||
// vite 相关配置
|
||||
server: {
|
||||
port: 80,
|
||||
host: true,
|
||||
open: true,
|
||||
proxy: {
|
||||
// https://cn.vitejs.dev/config/#server-proxy
|
||||
'/dev-api': {
|
||||
target: 'http://localhost:8080',
|
||||
changeOrigin: true,
|
||||
rewrite: (p) => p.replace(/^\/dev-api/, '')
|
||||
}
|
||||
}
|
||||
},
|
||||
//fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file
|
||||
css: {
|
||||
postcss: {
|
||||
plugins: [
|
||||
{
|
||||
postcssPlugin: 'internal:charset-removal',
|
||||
AtRule: {
|
||||
charset: (atRule) => {
|
||||
if (atRule.name === 'charset') {
|
||||
atRule.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
export default defineConfig(({
|
||||
mode,
|
||||
command
|
||||
}) => {
|
||||
const env = loadEnv(mode, process.cwd())
|
||||
const {
|
||||
VITE_APP_ENV
|
||||
} = env
|
||||
return {
|
||||
// 部署生产环境和开发环境下的URL。
|
||||
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
||||
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
||||
base: VITE_APP_ENV === 'production' ? '/' : '/',
|
||||
plugins: createVitePlugins(env, command === 'build'),
|
||||
resolve: {
|
||||
// https://cn.vitejs.dev/config/#resolve-alias
|
||||
alias: {
|
||||
// 设置路径
|
||||
'~': path.resolve(__dirname, './'),
|
||||
// 设置别名
|
||||
'@': path.resolve(__dirname, './src')
|
||||
},
|
||||
// https://cn.vitejs.dev/config/#resolve-extensions
|
||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
||||
},
|
||||
// vite 相关配置
|
||||
server: {
|
||||
port: 80,
|
||||
host: true,
|
||||
open: true,
|
||||
proxy: {
|
||||
// https://cn.vitejs.dev/config/#server-proxy
|
||||
'/dev-api': {
|
||||
target: 'http://192.168.3.246:9090',
|
||||
changeOrigin: true,
|
||||
rewrite: (p) => p.replace(/^\/dev-api/, '')
|
||||
}
|
||||
}
|
||||
},
|
||||
//fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file
|
||||
css: {
|
||||
postcss: {
|
||||
plugins: [{
|
||||
postcssPlugin: 'internal:charset-removal',
|
||||
AtRule: {
|
||||
charset: (atRule) => {
|
||||
if (atRule.name === 'charset') {
|
||||
atRule.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
Loading…
Reference in New Issue
Block a user