| | |
| | | method: "post", |
| | | responseType: "blob", |
| | | }); |
| | | } |
| | | |
| | | // 获取工序参数列表 |
| | | export function getProcessParamList(processId) { |
| | | return request({ |
| | | url: `/productProcessParam/list/${processId}`, |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 添加工序参数 |
| | | export function addProcessParam(data) { |
| | | return request({ |
| | | url: "/productProcessParam/add", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 编辑工序参数 |
| | | export function editProcessParam(data) { |
| | | return request({ |
| | | url: "/productProcessParam/edit", |
| | | method: "put", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 删除工序参数 |
| | | export function deleteProcessParam(id) { |
| | | return request({ |
| | | url: `/productProcessParam/${id}`, |
| | | method: "delete", |
| | | }); |
| | | } |
| | |
| | | value="YYYY-MM-DD HH:mm:ss" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="是否必填" |
| | | prop="isRequired"> |
| | | <el-radio-group v-model="formData.isRequired"> |
| | | <el-radio label="1">是</el-radio> |
| | | <el-radio label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="备注" |
| | | prop="remark"> |
| | | <el-input v-model="formData.remark" |
| | |
| | | }, |
| | | }, |
| | | { |
| | | label: "是否必填", |
| | | prop: "isRequired", |
| | | dataType: "tag", |
| | | formatType: params => { |
| | | return params === 1 ? "danger" : "info"; |
| | | }, |
| | | formatData: val => { |
| | | return val === 1 ? "是" : "否"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | }, |
| | |
| | | paramType: "", |
| | | valueMode: "1", |
| | | unit: "", |
| | | isRequired: "0", |
| | | remark: "", |
| | | }); |
| | | const rules = reactive({ |
| | |
| | | formData.paramType = ""; |
| | | formData.valueMode = "1"; |
| | | formData.unit = ""; |
| | | formData.isRequired = "0"; |
| | | formData.remark = ""; |
| | | dialogVisible.value = true; |
| | | }; |
| | |
| | | formData.valueMode = |
| | | row.valueMode !== undefined ? String(row.valueMode) : "1"; |
| | | formData.unit = row.unit || ""; |
| | | formData.isRequired = |
| | | row.isRequired !== undefined ? String(row.isRequired) : "0"; |
| | | formData.remark = row.remark || ""; |
| | | dialogVisible.value = true; |
| | | }; |
| | |
| | | <template> |
| | | <el-dialog v-model="visible" |
| | | title="选择产品" |
| | | width="900px" |
| | | width="1000px" |
| | | destroy-on-close |
| | | :close-on-click-modal="false"> |
| | | <el-form :inline="true" |
| | | :model="query" |
| | | class="mb-2"> |
| | | class="mb-2 search-form"> |
| | | <el-form-item label="产品名称"> |
| | | <el-input v-model="query.materialName" |
| | | size="small" |
| | | placeholder="输入产品名称" |
| | | clearable |
| | | @keyup.enter="onSearch" /> |
| | | </el-form-item> |
| | | <el-form-item label="规格"> |
| | | <el-input v-model="query.specification" |
| | | size="small" |
| | | placeholder="输入规格" |
| | | clearable |
| | | @keyup.enter="onSearch" /> |
| | | </el-form-item> |
| | | <el-form-item label="物料编码"> |
| | | <el-input v-model="query.materialCode" |
| | | size="small" |
| | | placeholder="输入物料编码" |
| | | clearable |
| | | @keyup.enter="onSearch" /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-form-item style="200px"> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="onSearch">搜索</el-button> |
| | | <el-button @click="onReset">重置</el-button> |
| | | <el-button size="small" |
| | | @click="onReset">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- 列表 --> |
| | |
| | | const query = reactive({ |
| | | specification: "", |
| | | materialCode: "", |
| | | materialName: "", |
| | | }); |
| | | |
| | | const page = reactive({ |
| | |
| | | function onReset() { |
| | | query.specification = ""; |
| | | query.materialCode = ""; |
| | | query.materialName = ""; |
| | | page.pageNum = 1; |
| | | loadData(); |
| | | } |
| | |
| | | const res: any = await modelListPage({ |
| | | specification: query.specification.trim(), |
| | | materialCode: query.materialCode.trim(), |
| | | materialName: query.materialName.trim(), |
| | | type: 1, |
| | | current: page.pageNum, |
| | | size: page.pageSize, |
| | | }); |
| | |
| | | loadData(); |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .search-form { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .search-form .el-form-item { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .search-form .el-input { |
| | | width: 180px; |
| | | } |
| | | .el-form--inline .el-form-item { |
| | | margin-right: 5px; |
| | | } |
| | | .justify-end { |
| | | margin-top: 10px; |
| | | } |
| | | </style> |
| | |
| | | :tableData="paramList" |
| | | :page="paramPage" |
| | | height="calc(100vh - 280px)" |
| | | :tableLoading="paramLoading" |
| | | :isSelection="false" |
| | | @pagination="handleParamPagination" /> |
| | | <div v-else |
| | |
| | | placeholder="请输入参数名称搜索" |
| | | clearable |
| | | size="small" |
| | | @input="handleParamSearch"> |
| | | @input="handleSelectParam"> |
| | | <template #prefix> |
| | | <el-icon> |
| | | <Search /> |
| | |
| | | border |
| | | highlight-current-row |
| | | @current-change="handleParamSelect"> |
| | | <el-table-column prop="parameterCode" |
| | | label="参数编号" |
| | | width="100" /> |
| | | <el-table-column prop="paramName" |
| | | label="参数名称" /> |
| | | <el-table-column prop="paramType" |
| | | label="参数类型" |
| | | width="100"> |
| | | label="参数类型"> |
| | | <template #default="scope"> |
| | | <el-tag size="small" |
| | | :type="getParamTypeTag(scope.row.paramType)"> |
| | | {{ scope.row.paramType }} |
| | | {{ getParamTypeText(scope.row.paramType) }} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | :model="selectedParam" |
| | | label-width="100px" |
| | | class="param-detail-form"> |
| | | <el-form-item label="参数编号"> |
| | | <span class="detail-text">{{ selectedParam.parameterCode }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="参数名称"> |
| | | <span class="detail-text">{{ selectedParam.paramName }}</span> |
| | | </el-form-item> |
| | |
| | | <el-form-item label="参数类型"> |
| | | <el-tag size="small" |
| | | :type="getParamTypeTag(selectedParam.paramType)"> |
| | | {{ selectedParam.paramType }} |
| | | {{ getParamTypeText(selectedParam.paramType) }} |
| | | </el-tag> |
| | | </el-form-item> |
| | | <el-form-item label="参数格式"> |
| | |
| | | <el-form-item label="单位"> |
| | | <span class="detail-text">{{ selectedParam.unit || '-' }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="默认值" |
| | | v-if="selectedParam.valueMode === '1'"> |
| | | <el-input v-model="selectedParam.defaultValue" |
| | | <el-form-item label="标准值" |
| | | v-if="selectedParam.valueMode == '1'"> |
| | | <el-input v-model="selectedParam.standardValue" |
| | | type="number" |
| | | placeholder="请输入默认值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最小值" |
| | | v-if="selectedParam.valueMode === '2'"> |
| | | <el-input v-model="selectedParam.defaultMin" |
| | | v-if="selectedParam.valueMode == '2'"> |
| | | <el-input v-model="selectedParam.minValue" |
| | | type="number" |
| | | placeholder="请输入最小值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最大值" |
| | | v-if="selectedParam.valueMode === '2'"> |
| | | <el-input v-model="selectedParam.defaultMax" |
| | | v-if="selectedParam.valueMode == '2'"> |
| | | <el-input v-model="selectedParam.maxValue" |
| | | type="number" |
| | | placeholder="请输入最大值" /> |
| | | </el-form-item> |
| | | <el-form-item label="排序"> |
| | | <el-input v-model="selectedParam.sort" |
| | | type="number" |
| | | placeholder="请输入排序" /> |
| | | </el-form-item> |
| | | <el-form-item label="是否必填"> |
| | | <el-switch v-model="selectedParam.isRequired" |
| | | :active-value="1" |
| | | :inactive-value="0" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-empty v-else |
| | |
| | | <el-button type="primary" |
| | | :disabled="!selectedParam" |
| | | @click="handleParamSubmit">确定</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- 编辑参数对话框 --> |
| | | <el-dialog v-model="editParamDialogVisible" |
| | | title="编辑参数" |
| | | width="600px"> |
| | | <el-form :model="editParamForm" |
| | | :rules="editParamRules" |
| | | ref="editParamFormRef" |
| | | label-width="120px"> |
| | | <el-form-item label="参数名称"> |
| | | <span class="detail-text">{{ editParamForm.paramName }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="参数模式"> |
| | | <el-tag size="small" |
| | | :type="editParamForm.valueMode == '1' ? 'success' : 'warning'"> |
| | | {{ editParamForm.valueMode == '1' ? '单值' : '区间' }} |
| | | </el-tag> |
| | | </el-form-item> |
| | | <el-form-item label="标准值" |
| | | v-if="editParamForm.valueMode == '1'" |
| | | prop="standardValue"> |
| | | <el-input v-model="editParamForm.standardValue" |
| | | type="number" |
| | | placeholder="请输入标准值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最小值" |
| | | v-if="editParamForm.valueMode == '2'" |
| | | prop="minValue"> |
| | | <el-input v-model="editParamForm.minValue" |
| | | type="number" |
| | | placeholder="请输入最小值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最大值" |
| | | v-if="editParamForm.valueMode == '2'" |
| | | prop="maxValue"> |
| | | <el-input v-model="editParamForm.maxValue" |
| | | type="number" |
| | | placeholder="请输入最大值" /> |
| | | </el-form-item> |
| | | <el-form-item label="排序" |
| | | prop="sort"> |
| | | <el-input v-model="editParamForm.sort" |
| | | type="number" |
| | | placeholder="请输入排序" /> |
| | | </el-form-item> |
| | | <el-form-item label="是否必填" |
| | | prop="isRequired"> |
| | | <el-switch v-model="editParamForm.isRequired" |
| | | :active-value="1" |
| | | :inactive-value="0" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="editParamDialogVisible = false">取消</el-button> |
| | | <el-button type="primary" |
| | | @click="handleEditParamSubmit">确定</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | |
| | | del, |
| | | list as getProcessListApi, |
| | | processList, |
| | | getProcessParamList, |
| | | addProcessParam, |
| | | editProcessParam, |
| | | deleteProcessParam, |
| | | } from "@/api/productionManagement/productionProcess.js"; |
| | | import { getBaseParamList } from "@/api/basicData/parameterMaintenance.js"; |
| | | |
| | | // 工序列表数据 |
| | | const processValueList = ref([]); |
| | |
| | | const selectedParam = ref(null); |
| | | const paramSearchKeyword = ref(""); |
| | | |
| | | // 编辑参数对话框 |
| | | const editParamDialogVisible = ref(false); |
| | | const editParamFormRef = ref(null); |
| | | const editParamForm = reactive({ |
| | | id: null, |
| | | processId: null, |
| | | paramId: null, |
| | | paramName: "", |
| | | valueMode: "1", |
| | | standardValue: null, |
| | | minValue: null, |
| | | maxValue: null, |
| | | sort: 1, |
| | | isRequired: 0, |
| | | tenantId: 1, |
| | | }); |
| | | const editParamRules = { |
| | | standardValue: [ |
| | | { |
| | | required: true, |
| | | message: "请输入标准值", |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | if (value === null || value === undefined || value === "") { |
| | | callback(new Error("请输入标准值")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | }, |
| | | ], |
| | | minValue: [ |
| | | { |
| | | required: true, |
| | | message: "请输入最小值", |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | if (value === null || value === undefined || value === "") { |
| | | callback(new Error("请输入最小值")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | }, |
| | | ], |
| | | maxValue: [ |
| | | { |
| | | required: true, |
| | | message: "请输入最大值", |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | if (value === null || value === undefined || value === "") { |
| | | callback(new Error("请输入最大值")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | }, |
| | | ], |
| | | sort: [ |
| | | { |
| | | required: true, |
| | | message: "请输入排序", |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | if (value === null || value === undefined || value === "") { |
| | | callback(new Error("请输入排序")); |
| | | } else if (isNaN(value) || value < 1) { |
| | | callback(new Error("排序必须是大于0的整数")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | // 参数表格列配置 |
| | | const paramColumn = ref([ |
| | | { |
| | | label: "参数编号", |
| | | prop: "parameterCode", |
| | | className: "code-cell", |
| | | }, |
| | | { |
| | | label: "参数名称", |
| | | prop: "paramName", |
| | |
| | | label: "参数类型", |
| | | prop: "paramType", |
| | | dataType: "tag", |
| | | formatType: row => { |
| | | formatType: params => { |
| | | const typeMap = { |
| | | 数值格式: "primary", |
| | | 文本格式: "info", |
| | | 下拉选项: "warning", |
| | | 时间格式: "success", |
| | | 1: "primary", |
| | | 2: "info", |
| | | 3: "warning", |
| | | 4: "success", |
| | | }; |
| | | return typeMap[row.paramType] || "default"; |
| | | return typeMap[params] || "default"; |
| | | }, |
| | | formatData: val => { |
| | | const labelMap = { |
| | | 1: "数值格式", |
| | | 2: "文本格式", |
| | | 3: "下拉选项", |
| | | 4: "时间格式", |
| | | }; |
| | | return labelMap[val] || val; |
| | | }, |
| | | }, |
| | | { |
| | | label: "参数格式", |
| | | label: "取值格式", |
| | | prop: "paramFormat", |
| | | formatData: (val, row) => { |
| | | if (row.paramType == "3") { |
| | | const dict = dictTypes.value.find(item => item.dictType === val); |
| | | return dict ? "字典:" + dict.dictName : val; |
| | | } |
| | | return val; |
| | | }, |
| | | }, |
| | | { |
| | | label: "标准值", |
| | | prop: "defaultValue", |
| | | className: row => (row.paramType === "数值格式" ? "quantity-cell" : ""), |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | prop: "standardValue", |
| | | formatData: (val, row) => { |
| | | return row.valueMode === "1" ? val : "-"; |
| | | return row.valueMode == "1" ? val : "-"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "最小值", |
| | | prop: "defaultMin", |
| | | prop: "minValue", |
| | | formatData: (val, row) => { |
| | | return row.valueMode === "2" ? val : "-"; |
| | | return row.valueMode == "2" ? val : "-"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "最大值", |
| | | prop: "defaultMax", |
| | | prop: "maxValue", |
| | | formatData: (val, row) => { |
| | | return row.valueMode === "2" ? val : "-"; |
| | | return row.valueMode == "2" ? val : "-"; |
| | | }, |
| | | }, |
| | | { |
| | |
| | | prop: "unit", |
| | | }, |
| | | { |
| | | label: "排序", |
| | | prop: "sort", |
| | | }, |
| | | { |
| | | label: "是否必填", |
| | | prop: "isRequired", |
| | | dataType: "tag", |
| | | formatType: row => (row.isRequired === 1 ? "success" : "info"), |
| | | formatData: row => (row.isRequired === 1 ? "是" : "否"), |
| | | }, |
| | | { |
| | | label: "操作", |
| | | dataType: "action", |
| | | width: "100", |
| | | width: "150", |
| | | operation: [ |
| | | { |
| | | name: "编辑", |
| | | clickFun: row => handleEditParam(row), |
| | | }, |
| | | { |
| | | name: "删除", |
| | | clickFun: row => handleDeleteParam(row), |
| | |
| | | ElMessage.warning("请先选择一个工序"); |
| | | return; |
| | | } |
| | | // 获取可选参数列表(假数据) |
| | | availableParamList.value = [ |
| | | { |
| | | id: 101, |
| | | parameterCode: "P101", |
| | | paramName: "温度", |
| | | valueMode: "2", |
| | | paramType: "数值格式", |
| | | paramFormat: "", |
| | | defaultValue: "20-30", |
| | | unit: "℃", |
| | | }, |
| | | { |
| | | id: 102, |
| | | parameterCode: "P102", |
| | | paramName: "压力", |
| | | valueMode: "1", |
| | | paramType: "数值格式", |
| | | paramFormat: "", |
| | | defaultValue: "0.5", |
| | | unit: "MPa", |
| | | }, |
| | | { |
| | | id: 103, |
| | | parameterCode: "P103", |
| | | paramName: "湿度", |
| | | valueMode: "2", |
| | | paramType: "数值格式", |
| | | paramFormat: "", |
| | | defaultValue: "40-60", |
| | | unit: "%", |
| | | }, |
| | | { |
| | | id: 104, |
| | | parameterCode: "P104", |
| | | paramName: "速度", |
| | | valueMode: "1", |
| | | paramType: "数值格式", |
| | | paramFormat: "", |
| | | defaultValue: "100", |
| | | unit: "m/min", |
| | | }, |
| | | { |
| | | id: 105, |
| | | parameterCode: "P105", |
| | | paramName: "状态", |
| | | valueMode: "1", |
| | | paramType: "下拉选项", |
| | | paramFormat: "status", |
| | | defaultValue: "正常", |
| | | unit: "", |
| | | }, |
| | | { |
| | | id: 106, |
| | | parameterCode: "P106", |
| | | paramName: "记录时间", |
| | | valueMode: "1", |
| | | paramType: "时间格式", |
| | | paramFormat: "YYYY-MM-DD HH:mm:ss", |
| | | defaultValue: "2024-01-01 08:00:00", |
| | | unit: "", |
| | | }, |
| | | { |
| | | id: 107, |
| | | parameterCode: "P107", |
| | | paramName: "备注", |
| | | valueMode: "1", |
| | | paramType: "文本格式", |
| | | paramFormat: "", |
| | | defaultValue: "无", |
| | | unit: "", |
| | | }, |
| | | ]; |
| | | filteredParamList.value = availableParamList.value; |
| | | paramSearchKeyword.value = ""; |
| | | // 获取可选参数列表 |
| | | getBaseParamList({ paramName: paramSearchKeyword.value }).then(res => { |
| | | if (res.code === 200) { |
| | | filteredParamList.value = res.data || []; |
| | | page.total = res.data?.length || 0; |
| | | } else { |
| | | ElMessage.error(res.msg || "查询失败"); |
| | | } |
| | | }); |
| | | console.log(filteredParamList.value, "可选参数列表"); |
| | | selectedParam.value = null; |
| | | paramDialogVisible.value = true; |
| | | }; |
| | |
| | | ); |
| | | } |
| | | }; |
| | | |
| | | const getParamTypeText = type => { |
| | | const typeMap = { |
| | | 1: "数值格式", |
| | | 2: "文本格式", |
| | | 3: "下拉选项", |
| | | 4: "时间格式", |
| | | }; |
| | | return typeMap[type] || "未知参数类型"; |
| | | }; |
| | | const getParamTypeTag = type => { |
| | | const typeMap = { |
| | | 数值格式: "primary", |
| | | 文本格式: "info", |
| | | 下拉选项: "warning", |
| | | 时间格式: "success", |
| | | 1: "primary", |
| | | 2: "info", |
| | | 3: "warning", |
| | | 4: "success", |
| | | }; |
| | | return typeMap[type] || "default"; |
| | | }; |
| | |
| | | }); |
| | | }; |
| | | |
| | | const handleEditParam = row => { |
| | | editParamForm.id = row.id; |
| | | editParamForm.processId = row.processId; |
| | | editParamForm.paramId = row.paramId; |
| | | editParamForm.paramName = row.paramName; |
| | | editParamForm.valueMode = row.valueMode; |
| | | editParamForm.standardValue = row.standardValue; |
| | | editParamForm.minValue = row.minValue; |
| | | editParamForm.maxValue = row.maxValue; |
| | | editParamForm.sort = row.sort || 1; |
| | | editParamForm.isRequired = row.isRequired || 0; |
| | | editParamForm.tenantId = 1; |
| | | editParamDialogVisible.value = true; |
| | | }; |
| | | |
| | | const handleEditParamSubmit = () => { |
| | | editParamFormRef.value.validate(valid => { |
| | | if (valid) { |
| | | editProcessParam(editParamForm) |
| | | .then(() => { |
| | | ElMessage.success("编辑成功"); |
| | | editParamDialogVisible.value = false; |
| | | getParamList(selectedProcess.value.id); |
| | | }) |
| | | .catch(() => { |
| | | ElMessage.error("编辑失败"); |
| | | }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | const handleParamSubmit = () => { |
| | | if (!selectedParam.value) { |
| | | ElMessage.warning("请先选择一个参数"); |
| | |
| | | addProcessParam({ |
| | | processId: selectedProcess.value.id, |
| | | paramId: selectedParam.value.id, |
| | | defaultValue: selectedParam.value.defaultValue, |
| | | defaultMin: selectedParam.value.defaultMin, |
| | | defaultMax: selectedParam.value.defaultMax, |
| | | sort: selectedParam.value.sort || 1, |
| | | standardValue: selectedParam.value.standardValue, |
| | | minValue: selectedParam.value.minValue, |
| | | maxValue: selectedParam.value.maxValue, |
| | | isRequired: selectedParam.value.isRequired || 0, |
| | | tenantId: 1, |
| | | }) |
| | | .then(() => { |
| | | ElMessage.success("添加成功"); |
| | |
| | | // 左侧工序列表 |
| | | .process-list-section { |
| | | width: 370px; |
| | | min-width: 370px; |
| | | flex-shrink: 0; |
| | | background: #fff; |
| | | border-radius: 8px; |
| | | box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
| | |
| | | .param-table-wrapper { |
| | | flex: 1; |
| | | padding: 0 20px 20px; |
| | | overflow: hidden; |
| | | overflow: auto; |
| | | } |
| | | |
| | | /* 表格横向滚动 */ |
| | | :deep(.el-table) { |
| | | // min-width: 800px; |
| | | } |
| | | |
| | | .empty-tip { |
| | |
| | | height: 450px; |
| | | |
| | | .param-list-area { |
| | | flex: 1; |
| | | // flex: 1; |
| | | width: 380px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | |
| | | } |
| | | |
| | | .param-detail-area { |
| | | width: 380px; |
| | | // width: 380px; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #f5f7fa; |