| | |
| | | <div class="search_form"> |
| | | <div> |
| | | <span class="search_title ml10">参数名称:</span> |
| | | <el-input v-model="searchForm.materialCode" |
| | | <el-input v-model="searchForm.paramName" |
| | | style="width: 200px" |
| | | placeholder="请输入参数名称" |
| | | clearable /> |
| | | <!-- 关联产品类型搜索 --> |
| | | <!-- <span class="search_title ml10">关联产品类型:</span> |
| | | <el-input v-model="searchForm.productName" |
| | | style="width: 200px" |
| | | style="width: 200px"d |
| | | placeholder="请输入关联产品类型" |
| | | clearable /> --> |
| | | <el-button type="primary" |
| | |
| | | </div> |
| | | </div> |
| | | <div class="table_list"> |
| | | <PIMTable rowKey="materialCode" |
| | | <PIMTable rowKey="paramName" |
| | | :column="tableColumn" |
| | | :tableData="tableData" |
| | | :page="page" |
| | | height="calc(100vh - 320px)" |
| | | height="calc(100vh - 280px)" |
| | | :tableLoading="tableLoading" |
| | | :isSelection="false" |
| | | :isShowPagination="false" |
| | | @pagination="pagination"> |
| | | </PIMTable> |
| | | </div> |
| | |
| | | :rules="rules" |
| | | ref="formRef" |
| | | label-width="120px"> |
| | | <el-form-item label="参数编号" |
| | | prop="parameterCode"> |
| | | <el-input v-model="formData.parameterCode" |
| | | placeholder="请输入参数编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="参数名称" |
| | | prop="parameterName"> |
| | | <el-input v-model="formData.parameterName" |
| | | prop="paramName"> |
| | | <el-input v-model="formData.paramName" |
| | | placeholder="请输入参数名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="参数模式" |
| | | prop="parameterFormat"> |
| | | <el-select v-model="formData.parameterType2" |
| | | <el-form-item label="参数类型" |
| | | prop="paramType"> |
| | | <el-select v-model="formData.paramType" |
| | | placeholder="请选择参数类型"> |
| | | <el-option label="数值格式" |
| | | value="1" /> |
| | | <el-option label="文本格式" |
| | | value="2" /> |
| | | <el-option label="下拉选项" |
| | | value="3" /> |
| | | <el-option label="时间格式" |
| | | value="4" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="取值模式" |
| | | prop="valueMode"> |
| | | <el-select v-model="formData.valueMode" |
| | | @change="handleValueModeChange" |
| | | placeholder="请选择取值模式"> |
| | | <el-option label="单值" |
| | | value="1" /> |
| | | <el-option label="区间" |
| | | value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="参数类型" |
| | | prop="parameterType"> |
| | | <el-select v-model="formData.parameterType" |
| | | @change="handleParameterTypeChange" |
| | | placeholder="请选择参数类型"> |
| | | <el-option label="数值格式" |
| | | value="数值格式" /> |
| | | <el-option label="文本格式" |
| | | value="文本格式" /> |
| | | <el-option label="下拉选项" |
| | | value="下拉选项" /> |
| | | <el-option label="时间格式" |
| | | value="时间格式" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="formData.parameterType === '下拉选项'" |
| | | label="数据字典" |
| | | prop="parameterFormat"> |
| | | <el-select v-model="formData.parameterFormat" |
| | | placeholder="请选择数据字典"> |
| | | <el-option v-for="item in dictTypes" |
| | | :key="item.dictType" |
| | | :label="item.dictName" |
| | | :value="item.dictType" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-else-if="formData.parameterType === '时间格式'" |
| | | label="时间格式" |
| | | prop="parameterFormat"> |
| | | <el-select v-model="formData.parameterFormat" |
| | | placeholder="请选择时间格式"> |
| | | <el-option label="YYYY-MM-DD HH:mm:ss" |
| | | value="YYYY-MM-DD HH:mm:ss" /> |
| | | <el-option label="YYYY-MM-DD" |
| | | value="YYYY-MM-DD" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-else |
| | | label="参数格式" |
| | | prop="parameterFormat"> |
| | | <el-input v-model="formData.parameterFormat" |
| | | placeholder="请输入参数格式" /> |
| | | </el-form-item> |
| | | <!-- 关联产品类型 --> |
| | | <!-- <el-form-item label="关联产品类型" |
| | | prop="parameterValue"> |
| | | <el-select v-model="formData.parameterValue" |
| | | placeholder="请选择关联产品类型"> |
| | | <el-option v-for="item in productTypes" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <el-form-item label="标准值" |
| | | v-if="formData.parameterType2 === '1'" |
| | | prop="standardValue"> |
| | | <el-input v-model="formData.standardValue" |
| | | placeholder="请输入标准值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最大值" |
| | | v-if="formData.parameterType2 === '2'" |
| | | prop="standardValue"> |
| | | <el-input v-model="formData.standardValue" |
| | | placeholder="请输入标准值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最小值" |
| | | v-if="formData.parameterType2 === '2'" |
| | | prop="standardValue"> |
| | | <el-input v-model="formData.standardValue" |
| | | placeholder="请输入标准值" /> |
| | | </el-form-item> |
| | | <el-form-item label="单位" |
| | | prop="unit"> |
| | | <el-input v-model="formData.unit" |
| | | placeholder="请输入单位" /> |
| | | </el-form-item> |
| | | <el-form-item label="默认值" |
| | | v-if="formData.valueMode === '1'" |
| | | prop="defaultValue"> |
| | | <el-input v-model="formData.defaultValue" |
| | | placeholder="请输入默认值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最小值" |
| | | v-if="formData.valueMode === '2'" |
| | | prop="defaultMin"> |
| | | <el-input v-model="formData.defaultMin" |
| | | placeholder="请输入最小值" /> |
| | | </el-form-item> |
| | | <el-form-item label="最大值" |
| | | v-if="formData.valueMode === '2'" |
| | | prop="defaultMax"> |
| | | <el-input v-model="formData.defaultMax" |
| | | placeholder="请输入最大值" /> |
| | | </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" |
| | | type="textarea" |
| | | :rows="3" |
| | | placeholder="请输入备注" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | |
| | | addParameter, |
| | | updateParameter, |
| | | delParameter, |
| | | addBaseParam, |
| | | editBaseParam, |
| | | getBaseParamList, |
| | | removeBaseParam, |
| | | // getProductTypes as getProductTypesApi, |
| | | } from "@/api/basicData/parameterMaintenance.js"; |
| | | import { listType } from "@/api/system/dict/type"; |
| | |
| | | |
| | | const tableColumn = ref([ |
| | | { |
| | | label: "参数编号", |
| | | prop: "parameterCode", |
| | | className: "code-cell", |
| | | }, |
| | | { |
| | | label: "参数名称", |
| | | prop: "parameterName", |
| | | }, |
| | | { |
| | | label: "参数模式", |
| | | prop: "parameterType2", |
| | | prop: "paramName", |
| | | }, |
| | | { |
| | | label: "参数类型", |
| | | prop: "parameterType", |
| | | prop: "paramType", |
| | | dataType: "tag", |
| | | formatType: params => { |
| | | const typeMap = { |
| | | 数值格式: "primary", |
| | | 文本格式: "info", |
| | | 下拉选项: "warning", |
| | | 时间格式: "success", |
| | | 1: "primary", |
| | | 2: "info", |
| | | 3: "warning", |
| | | 4: "success", |
| | | }; |
| | | return typeMap[params] || "default"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "参数格式", |
| | | prop: "parameterFormat", |
| | | }, |
| | | // 关联产品类型列 |
| | | // { |
| | | // label: "关联产品类型", |
| | | // prop: "parameterValue", |
| | | // }, |
| | | { |
| | | label: "标准值", |
| | | prop: "standardValue", |
| | | className: row => { |
| | | return row.parameterType == "数值格式" ? "quantity-cell" : ""; |
| | | formatData: val => { |
| | | const labelMap = { |
| | | 1: "数值格式", |
| | | 2: "文本格式", |
| | | 3: "下拉选项", |
| | | 4: "时间格式", |
| | | }; |
| | | return labelMap[val] || val; |
| | | }, |
| | | }, |
| | | { |
| | | label: "最大值", |
| | | prop: "standardValue", |
| | | className: row => { |
| | | return row.parameterType == "数值格式" ? "quantity-cell" : ""; |
| | | label: "取值模式", |
| | | prop: "valueMode", |
| | | dataType: "tag", |
| | | formatType: params => { |
| | | return params === 2 ? "warning" : "success"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "最小值", |
| | | prop: "standardValue", |
| | | className: row => { |
| | | return row.parameterType == "数值格式" ? "quantity-cell" : ""; |
| | | formatData: val => { |
| | | return val === 2 ? "区间" : "单值"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "单位", |
| | | prop: "unit", |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | formatData: (val, row) => { |
| | | return row.valueMode === 2 ? "-" : val; |
| | | }, |
| | | }, |
| | | { |
| | | label: "最小值", |
| | | prop: "defaultMin", |
| | | formatData: (val, row) => { |
| | | return row.valueMode === 1 ? "-" : val; |
| | | }, |
| | | }, |
| | | { |
| | | label: "最大值", |
| | | prop: "defaultMax", |
| | | formatData: (val, row) => { |
| | | return row.valueMode === 1 ? "-" : val; |
| | | }, |
| | | }, |
| | | { |
| | | label: "是否必填", |
| | | prop: "isRequired", |
| | | dataType: "tag", |
| | | formatType: params => { |
| | | return params === 1 ? "danger" : "info"; |
| | | }, |
| | | formatData: val => { |
| | | return val === 1 ? "是" : "否"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | }, |
| | | { |
| | | label: "创建时间", |
| | | prop: "createTime", |
| | | }, |
| | | { |
| | | label: "操作", |
| | |
| | | size: 10, |
| | | total: 0, |
| | | }); |
| | | const handleValueModeChange = val => { |
| | | if (val === "2") { |
| | | formData.defaultMin = ""; |
| | | formData.defaultMax = ""; |
| | | } else { |
| | | formData.defaultValue = ""; |
| | | } |
| | | }; |
| | | |
| | | // 搜索表单 |
| | | const searchForm = reactive({ |
| | | materialCode: "", |
| | | paramName: "", |
| | | productName: "", |
| | | }); |
| | | |
| | |
| | | const dialogTitle = ref(""); |
| | | const formRef = ref(null); |
| | | const formData = reactive({ |
| | | parameterCode: "", |
| | | parameterName: "", |
| | | parameterType2: "1", |
| | | parameterType: "", |
| | | parameterFormat: "", |
| | | // parameterValue: "", |
| | | standardValue: "", |
| | | id: null, |
| | | paramName: "", |
| | | paramType: "", |
| | | valueMode: "1", |
| | | unit: "", |
| | | defaultValue: "", |
| | | defaultMin: "", |
| | | defaultMax: "", |
| | | isRequired: "0", |
| | | remark: "", |
| | | }); |
| | | const rules = reactive({ |
| | | parameterCode: [ |
| | | { required: true, message: "请输入参数编号", trigger: "blur" }, |
| | | ], |
| | | parameterName: [ |
| | | { required: true, message: "请输入参数名称", trigger: "blur" }, |
| | | ], |
| | | parameterType: [ |
| | | { required: true, message: "请选择参数类型", trigger: "change" }, |
| | | ], |
| | | parameterFormat: [ |
| | | { required: true, message: "请选择参数格式", trigger: "change" }, |
| | | ], |
| | | // parameterValue: [ |
| | | // { required: true, message: "请选择关联产品类型", trigger: "change" }, |
| | | // ], |
| | | standardValue: [{ required: true, message: "请输入标准值", trigger: "blur" }], |
| | | paramName: [{ required: true, message: "请输入参数名称", trigger: "blur" }], |
| | | paramType: [{ required: true, message: "请选择参数类型", trigger: "change" }], |
| | | valueMode: [{ required: true, message: "请选择取值模式", trigger: "change" }], |
| | | unit: [{ required: true, message: "请输入单位", trigger: "blur" }], |
| | | }); |
| | | // const productTypes = ref([]); |
| | |
| | | |
| | | /** 重置按钮操作 */ |
| | | const handleReset = () => { |
| | | searchForm.materialCode = ""; |
| | | searchForm.paramName = ""; |
| | | searchForm.productName = ""; |
| | | page.current = 1; |
| | | getList(); |
| | |
| | | |
| | | const getList = () => { |
| | | tableLoading.value = true; |
| | | // 注释掉API调用,使用假数据 |
| | | /*const params = { ...searchForm, ...page }; |
| | | parameterListPage(params) |
| | | .then(res => { |
| | | tableLoading.value = false; |
| | | tableData.value = res.data; |
| | | page.total = res.total || 0; |
| | | }) |
| | | .catch(() => { |
| | | tableLoading.value = false; |
| | | });*/ |
| | | |
| | | // 假数据 |
| | | setTimeout(() => { |
| | | tableLoading.value = false; |
| | | tableData.value = [ |
| | | { |
| | | id: 1, |
| | | parameterCode: "PARAM001", |
| | | parameterName: "长度", |
| | | parameterType2: "1", |
| | | parameterType: "数值格式", |
| | | parameterFormat: "", |
| | | parameterValue: "type1", |
| | | standardValue: "100", |
| | | unit: "mm", |
| | | }, |
| | | { |
| | | id: 2, |
| | | parameterCode: "PARAM002", |
| | | parameterName: "温度", |
| | | parameterType2: "2", |
| | | parameterType: "数值格式", |
| | | parameterFormat: "", |
| | | parameterValue: "type1", |
| | | standardValue: "25", |
| | | unit: "℃", |
| | | }, |
| | | { |
| | | id: 3, |
| | | parameterCode: "PARAM003", |
| | | parameterName: "颜色", |
| | | parameterType2: "1", |
| | | parameterType: "文本格式", |
| | | parameterFormat: "", |
| | | parameterValue: "type2", |
| | | standardValue: "红色", |
| | | unit: "", |
| | | }, |
| | | { |
| | | id: 4, |
| | | parameterCode: "PARAM004", |
| | | parameterName: "状态", |
| | | parameterType2: "1", |
| | | parameterType: "下拉选项", |
| | | parameterFormat: "status", |
| | | parameterValue: "type3", |
| | | standardValue: "正常", |
| | | unit: "", |
| | | }, |
| | | { |
| | | id: 5, |
| | | parameterCode: "PARAM005", |
| | | parameterName: "创建时间", |
| | | parameterType2: "1", |
| | | parameterType: "时间格式", |
| | | parameterFormat: "YYYY-MM-DD HH:mm:ss", |
| | | parameterValue: "type2", |
| | | standardValue: "2024-01-01 00:00:00", |
| | | unit: "", |
| | | }, |
| | | ]; |
| | | page.total = 5; |
| | | }, 500); |
| | | // 调用新接口 /baseParam/list |
| | | getBaseParamList({ paramName: searchForm.paramName }) |
| | | .then(res => { |
| | | tableLoading.value = false; |
| | | if (res.code === 200) { |
| | | tableData.value = res.data || []; |
| | | page.total = res.data?.length || 0; |
| | | } else { |
| | | ElMessage.error(res.msg || "查询失败"); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | tableLoading.value = false; |
| | | ElMessage.error("查询失败"); |
| | | }); |
| | | }; |
| | | |
| | | // 获取产品类型列表 - 已注释 |
| | |
| | | isEdit.value = false; |
| | | dialogTitle.value = "新增参数"; |
| | | // 重置表单 |
| | | formData.parameterCode = ""; |
| | | formData.parameterName = ""; |
| | | formData.parameterType2 = "1"; |
| | | formData.parameterType = ""; |
| | | formData.parameterFormat = ""; |
| | | // formData.parameterValue = ""; |
| | | formData.standardValue = ""; |
| | | formData.id = null; |
| | | formData.paramName = ""; |
| | | formData.paramType = ""; |
| | | formData.valueMode = "1"; |
| | | formData.unit = ""; |
| | | formData.defaultValue = ""; |
| | | formData.defaultMin = ""; |
| | | formData.defaultMax = ""; |
| | | formData.isRequired = "0"; |
| | | formData.remark = ""; |
| | | dialogVisible.value = true; |
| | | }; |
| | | |
| | |
| | | const handleEdit = row => { |
| | | isEdit.value = true; |
| | | dialogTitle.value = "编辑参数"; |
| | | // 填充表单数据 |
| | | formData.parameterCode = row.parameterCode; |
| | | formData.parameterName = row.parameterName; |
| | | formData.parameterType2 = row.parameterType2 || "1"; |
| | | formData.parameterType = row.parameterType; |
| | | formData.parameterFormat = row.parameterFormat; |
| | | // formData.parameterValue = row.parameterValue; |
| | | formData.standardValue = row.standardValue; |
| | | formData.unit = row.unit; |
| | | // 填充表单数据 - 将数字类型转换为字符串类型以匹配表单绑定 |
| | | formData.id = row.id; |
| | | formData.paramName = row.paramName || ""; |
| | | formData.paramType = row.paramType !== undefined ? String(row.paramType) : ""; |
| | | formData.valueMode = |
| | | row.valueMode !== undefined ? String(row.valueMode) : "1"; |
| | | formData.unit = row.unit || ""; |
| | | formData.defaultValue = |
| | | row.defaultValue !== undefined ? String(row.defaultValue) : ""; |
| | | formData.defaultMin = |
| | | row.defaultMin !== undefined ? String(row.defaultMin) : ""; |
| | | formData.defaultMax = |
| | | row.defaultMax !== undefined ? String(row.defaultMax) : ""; |
| | | formData.isRequired = |
| | | row.isRequired !== undefined ? String(row.isRequired) : "0"; |
| | | formData.remark = row.remark || ""; |
| | | dialogVisible.value = true; |
| | | }; |
| | | |
| | |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // 注释掉API调用,使用假数据 |
| | | /*delParameter(row.id) |
| | | .then(res => { |
| | | ElMessage.success("删除成功"); |
| | | getList(); |
| | | }) |
| | | .catch(() => { |
| | | ElMessage.error("删除失败"); |
| | | });*/ |
| | | |
| | | // 假数据模拟 |
| | | ElMessage.success("删除成功"); |
| | | getList(); |
| | | // 调用新接口 /baseParam/remove/{id} |
| | | removeBaseParam(row.id) |
| | | .then(res => { |
| | | ElMessage.success("删除成功"); |
| | | getList(); |
| | | }) |
| | | .catch(() => { |
| | | ElMessage.error("删除失败"); |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | // 取消删除 |
| | |
| | | const handleSubmit = () => { |
| | | formRef.value.validate(valid => { |
| | | if (valid) { |
| | | // 注释掉API调用,使用假数据 |
| | | /*const api = isEdit.value ? updateParameter : addParameter; |
| | | api(formData) |
| | | .then(res => { |
| | | ElMessage.success(isEdit.value ? "编辑成功" : "新增成功"); |
| | | dialogVisible.value = false; |
| | | getList(); |
| | | }) |
| | | .catch(() => { |
| | | ElMessage.error(isEdit.value ? "编辑失败" : "新增失败"); |
| | | });*/ |
| | | |
| | | // 假数据模拟 |
| | | ElMessage.success(isEdit.value ? "编辑成功" : "新增成功"); |
| | | dialogVisible.value = false; |
| | | getList(); |
| | | if (isEdit.value) { |
| | | // 编辑使用新接口 /baseParam/edit |
| | | editBaseParam(formData) |
| | | .then(res => { |
| | | ElMessage.success("编辑成功"); |
| | | dialogVisible.value = false; |
| | | getList(); |
| | | }) |
| | | .catch(() => { |
| | | // ElMessage.error("编辑失败"); |
| | | }); |
| | | } else { |
| | | // 新增使用新接口 /baseParam/add |
| | | addBaseParam(formData) |
| | | .then(res => { |
| | | ElMessage.success("新增成功"); |
| | | dialogVisible.value = false; |
| | | getList(); |
| | | }) |
| | | .catch(() => { |
| | | ElMessage.error("新增失败"); |
| | | }); |
| | | } |
| | | } else { |
| | | return false; |
| | | } |