From 2cdbad409e82d4354e4eca5cffa65c6bef7a4d20 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 16 三月 2026 13:36:37 +0800
Subject: [PATCH] bom添加产品编码
---
src/views/productionManagement/productionProcess/index.vue | 889 +++++++++++++++++++++++++++++++++-------------------------
1 files changed, 500 insertions(+), 389 deletions(-)
diff --git a/src/views/productionManagement/productionProcess/index.vue b/src/views/productionManagement/productionProcess/index.vue
index 5ecb747..af6bbfa 100644
--- a/src/views/productionManagement/productionProcess/index.vue
+++ b/src/views/productionManagement/productionProcess/index.vue
@@ -13,14 +13,15 @@
</el-icon>鏂板宸ュ簭
</el-button>
</div>
- <div class="process-card-list">
- <div v-for="process in processList"
+ <div class="process-card-list"
+ v-loading="processLoading">
+ <div v-for="process in processValueList"
:key="process.id"
class="process-card"
:class="{ active: selectedProcess?.id === process.id }"
@click="selectProcess(process)">
<div class="card-header">
- <span class="process-code">{{ process.processCode }}</span>
+ <div class="process-name">{{ process.name }} <span class="process-code">{{ process.no }}</span></div>
<div class="card-actions">
<el-button link
type="primary"
@@ -41,15 +42,21 @@
</div>
</div>
<div class="card-body">
- <div class="process-name">{{ process.processName }}</div>
- <div class="process-desc">{{ process.processDesc || '鏆傛棤鎻忚堪' }}</div>
+ <!-- <div class="process-name">{{ process.name }}</div> -->
+ <div class="process-desc">{{ process.remark || '鏆傛棤鎻忚堪' }}</div>
</div>
<div class="card-footer">
- <el-tag size="small"
- :type="process.status === '1' ? 'success' : 'info'">
- {{ process.status === '1' ? '鍚敤' : '鍋滅敤' }}
- </el-tag>
- <span class="param-count">鍙傛暟: {{ process.paramCount || 0 }}涓�</span>
+ <div class="status-tag"> <el-tag size="small"
+ :type="process.status ? 'success' : 'info'">
+ {{ process.status ? '鍚敤' : '鍋滅敤' }}
+ </el-tag>
+ <el-tag size="small"
+ :type="process.isQuality ? 'warning' : 'info'"
+ style="margin-left: 8px">
+ {{ process.isQuality ? '璐ㄦ' : '闈炶川妫�' }}
+ </el-tag>
+ </div>
+ <span class="param-count">宸ヨ祫瀹氶: 楼{{ process.salaryQuota || 0 }}</span>
</div>
</div>
</div>
@@ -58,7 +65,7 @@
<div class="param-list-section">
<div class="section-header">
<h3 class="section-title">
- {{ selectedProcess ? selectedProcess.processName + ' - 鍙傛暟閰嶇疆' : '璇烽�夋嫨宸ュ簭' }}
+ {{ selectedProcess ? selectedProcess.name + ' - 鍙傛暟閰嶇疆' : '璇烽�夋嫨宸ュ簭' }}
</h3>
<el-button type="primary"
size="small"
@@ -76,7 +83,6 @@
:tableData="paramList"
:page="paramPage"
height="calc(100vh - 280px)"
- :tableLoading="paramLoading"
:isSelection="false"
@pagination="handleParamPagination" />
<div v-else
@@ -95,18 +101,30 @@
ref="processFormRef"
label-width="100px">
<el-form-item label="宸ュ簭缂栫爜"
- prop="processCode">
- <el-input v-model="processForm.processCode"
+ prop="no">
+ <el-input v-model="processForm.no"
placeholder="璇疯緭鍏ュ伐搴忕紪鐮�" />
</el-form-item>
<el-form-item label="宸ュ簭鍚嶇О"
- prop="processName">
- <el-input v-model="processForm.processName"
+ prop="name">
+ <el-input v-model="processForm.name"
placeholder="璇疯緭鍏ュ伐搴忓悕绉�" />
</el-form-item>
+ <el-form-item label="宸ヨ祫瀹氶"
+ prop="salaryQuota">
+ <el-input v-model="processForm.salaryQuota"
+ type="number"
+ :step="0.001" />
+ </el-form-item>
+ <el-form-item label="鏄惁璐ㄦ"
+ prop="isQuality">
+ <el-switch v-model="processForm.isQuality"
+ :active-value="true"
+ inactive-value="false" />
+ </el-form-item>
<el-form-item label="宸ュ簭鎻忚堪"
- prop="processDesc">
- <el-input v-model="processForm.processDesc"
+ prop="remark">
+ <el-input v-model="processForm.remark"
type="textarea"
:rows="3"
placeholder="璇疯緭鍏ュ伐搴忔弿杩�" />
@@ -114,8 +132,8 @@
<el-form-item label="鐘舵��"
prop="status">
<el-radio-group v-model="processForm.status">
- <el-radio label="1">鍚敤</el-radio>
- <el-radio label="0">鍋滅敤</el-radio>
+ <el-radio :label="true">鍚敤</el-radio>
+ <el-radio :label="false">鍋滅敤</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
@@ -140,7 +158,7 @@
placeholder="璇疯緭鍏ュ弬鏁板悕绉版悳绱�"
clearable
size="small"
- @input="handleParamSearch">
+ @input="handleSelectParam">
<template #prefix>
<el-icon>
<Search />
@@ -149,26 +167,34 @@
</el-input>
</div>
<el-table :data="filteredParamList"
- height="360"
+ height="300"
border
highlight-current-row
@current-change="handleParamSelect">
- <el-table-column prop="parameterCode"
- label="鍙傛暟缂栧彿"
- width="100" />
- <el-table-column prop="parameterName"
+ <el-table-column prop="paramName"
label="鍙傛暟鍚嶇О" />
- <el-table-column prop="parameterType"
- label="鍙傛暟绫诲瀷"
- width="100">
+ <el-table-column prop="paramType"
+ label="鍙傛暟绫诲瀷">
<template #default="scope">
<el-tag size="small"
- :type="getParamTypeTag(scope.row.parameterType)">
- {{ scope.row.parameterType }}
+ :type="getParamTypeTag(scope.row.paramType)">
+ {{ getParamTypeText(scope.row.paramType) }}
</el-tag>
</template>
</el-table-column>
</el-table>
+ <!-- 鍒嗛〉鎺т欢 -->
+ <div class="pagination-container"
+ style="margin-top: 10px;">
+ <el-pagination v-model:current-page="paramPage.current"
+ v-model:page-size="paramPage.size"
+ :page-sizes="[10, 20, 50, 100]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="paramPage.total"
+ @size-change="handleParamSizeChange"
+ @current-change="handleParamCurrentChange"
+ size="small" />
+ </div>
</div>
<!-- 鍙充晶鍙傛暟璇︽儏 -->
<div class="param-detail-area">
@@ -177,32 +203,54 @@
: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.parameterName }}</span>
+ <span class="detail-text">{{ selectedParam.paramName }}</span>
</el-form-item>
<el-form-item label="鍙傛暟妯″紡">
<el-tag size="small"
- :type="selectedParam.parameterType2 === '1' ? 'success' : 'warning'">
- {{ selectedParam.parameterType2 === '1' ? '鍗曞��' : '鍖洪棿' }}
+ :type="selectedParam.valueMode == '1' ? 'success' : 'warning'">
+ {{ selectedParam.valueMode == '1' ? '鍗曞��' : '鍖洪棿' }}
</el-tag>
</el-form-item>
<el-form-item label="鍙傛暟绫诲瀷">
<el-tag size="small"
- :type="getParamTypeTag(selectedParam.parameterType)">
- {{ selectedParam.parameterType }}
+ :type="getParamTypeTag(selectedParam.paramType)">
+ {{ getParamTypeText(selectedParam.paramType) }}
</el-tag>
</el-form-item>
<el-form-item label="鍙傛暟鏍煎紡">
- <span class="detail-text">{{ selectedParam.parameterFormat || '-' }}</span>
- </el-form-item>
- <el-form-item label="鏍囧噯鍊�">
- <span class="detail-text">{{ selectedParam.standardValue }}</span>
+ <span class="detail-text">{{ selectedParam.paramFormat || '-' }}</span>
</el-form-item>
<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.standardValue"
+ type="number"
+ placeholder="璇疯緭鍏ラ粯璁ゅ��" />
+ </el-form-item>
+ <el-form-item label="鏈�灏忓��"
+ 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.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
@@ -218,6 +266,65 @@
</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>
</div>
</template>
@@ -227,20 +334,27 @@
import { Plus, Edit, Delete, Search } from "@element-plus/icons-vue";
import PIMTable from "@/components/PIMTable/PIMTable.vue";
import { listType } from "@/api/system/dict/type";
+ import {
+ add,
+ update,
+ del,
+ list as getProcessListApi,
+ processList,
+ getProcessParamList,
+ addProcessParam,
+ editProcessParam,
+ deleteProcessParam,
+ } from "@/api/productionManagement/productionProcess.js";
+ import { getBaseParamList } from "@/api/basicData/parameterMaintenance.js";
// 宸ュ簭鍒楄〃鏁版嵁
- const processList = ref([]);
+ const processValueList = ref([]);
const selectedProcess = ref(null);
const processLoading = ref(false);
// 鍙傛暟鍒楄〃鏁版嵁
const paramList = ref([]);
const paramLoading = ref(false);
- const paramPage = reactive({
- current: 1,
- size: 10,
- total: 0,
- });
// 鏁版嵁瀛楀吀
const dictTypes = ref([]);
@@ -251,14 +365,30 @@
const processFormRef = ref(null);
const processForm = reactive({
id: null,
- processCode: "",
- processName: "",
- processDesc: "",
- status: "1",
+ no: "",
+ name: "",
+ salaryQuota: null,
+ isQuality: false,
+ remark: "",
+ status: true,
});
const processRules = {
- processCode: [{ required: true, message: "璇疯緭鍏ュ伐搴忕紪鐮�", trigger: "blur" }],
- processName: [{ required: true, message: "璇疯緭鍏ュ伐搴忓悕绉�", trigger: "blur" }],
+ no: [{ required: true, message: "璇疯緭鍏ュ伐搴忕紪鐮�", trigger: "blur" }],
+ name: [{ required: true, message: "璇疯緭鍏ュ伐搴忓悕绉�", trigger: "blur" }],
+ salaryQuota: [
+ {
+ required: false,
+ message: "璇疯緭鍏ュ伐璧勫畾棰�",
+ trigger: "blur",
+ validator: (rule, value, callback) => {
+ if (isNaN(value) || value < 0) {
+ callback(new Error("宸ヨ祫瀹氶蹇呴』鏄潪璐熸暟瀛�"));
+ } else {
+ callback();
+ }
+ },
+ },
+ ],
};
// 鍙傛暟瀵硅瘽妗�
@@ -268,56 +398,182 @@
const selectedParam = ref(null);
const paramSearchKeyword = ref("");
+ // 鍙�夊弬鏁板垎椤�
+ const paramPage = reactive({
+ current: 1,
+ size: 10,
+ total: 0,
+ });
+
+ // 缂栬緫鍙傛暟瀵硅瘽妗�
+ 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: "parameterName",
+ prop: "paramName",
},
{
label: "鍙傛暟妯″紡",
- prop: "parameterType2",
+ prop: "valueMode",
dataType: "tag",
- formatType: row => (row.parameterType2 === "1" ? "success" : "warning"),
- formatData: row => (row.parameterType2 === "1" ? "鍗曞��" : "鍖洪棿"),
+ formatType: row => (row.valueMode === "1" ? "success" : "warning"),
+ formatData: row => (row.valueMode === "1" ? "鍗曞��" : "鍖洪棿"),
},
{
label: "鍙傛暟绫诲瀷",
- prop: "parameterType",
+ 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.parameterType] || "default";
+ return typeMap[params] || "default";
+ },
+ formatData: val => {
+ const labelMap = {
+ 1: "鏁板�兼牸寮�",
+ 2: "鏂囨湰鏍煎紡",
+ 3: "涓嬫媺閫夐」",
+ 4: "鏃堕棿鏍煎紡",
+ };
+ return labelMap[val] || val;
},
},
{
- label: "鍙傛暟鏍煎紡",
- prop: "parameterFormat",
+ 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: "standardValue",
- className: row => (row.parameterType === "鏁板�兼牸寮�" ? "quantity-cell" : ""),
+ formatData: (val, row) => {
+ return row.valueMode == "1" ? val : "-";
+ },
+ },
+ {
+ label: "鏈�灏忓��",
+ prop: "minValue",
+ formatData: (val, row) => {
+ return row.valueMode == "2" ? val : "-";
+ },
+ },
+ {
+ label: "鏈�澶у��",
+ prop: "maxValue",
+ formatData: (val, row) => {
+ return row.valueMode == "2" ? val : "-";
+ },
},
{
label: "鍗曚綅",
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),
@@ -328,212 +584,33 @@
// 鑾峰彇宸ュ簭鍒楄〃
const getProcessList = () => {
- // 鍋囨暟鎹�
- processList.value = [
- {
- id: 1,
- processCode: "PROC001",
- processName: "鍘熸枡閰嶆瘮",
- processDesc: "鍘熸潗鏂欓厤姣斿伐搴�",
- status: "1",
- paramCount: 3,
- },
- {
- id: 2,
- processCode: "PROC002",
- processName: "鎼呮媽娣峰悎",
- processDesc: "鎼呮媽娣峰悎宸ュ簭",
- status: "1",
- paramCount: 2,
- },
- {
- id: 3,
- processCode: "PROC003",
- processName: "娴囩瓚鎴愬瀷",
- processDesc: "娴囩瓚鎴愬瀷宸ュ簭",
- status: "1",
- paramCount: 4,
- },
- {
- id: 4,
- processCode: "PROC004",
- processName: "钂稿帇鍏绘姢",
- processDesc: "钂稿帇鍏绘姢宸ュ簭",
- status: "0",
- paramCount: 2,
- },
- {
- id: 5,
- processCode: "PROC005",
- processName: "鍒囧壊鍔犲伐",
- processDesc: "鍒囧壊鍔犲伐宸ュ簭",
- status: "1",
- paramCount: 3,
- },
- ];
+ processLoading.value = true;
+ getProcessListApi()
+ .then(res => {
+ processValueList.value = res.data || [];
+ })
+ .catch(() => {
+ ElMessage.error("鑾峰彇宸ュ簭鍒楄〃澶辫触");
+ })
+ .finally(() => {
+ processLoading.value = false;
+ });
};
// 鑾峰彇鍙傛暟鍒楄〃
const getParamList = processId => {
paramLoading.value = true;
- // 鍋囨暟鎹�
- setTimeout(() => {
- paramLoading.value = false;
- const mockData = {
- 1: [
- {
- id: 1,
- parameterCode: "P001",
- parameterName: "姘存偿姣斾緥",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "30",
- unit: "%",
- },
- {
- id: 2,
- parameterCode: "P002",
- parameterName: "鐮傛瘮渚�",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "60",
- unit: "%",
- },
- {
- id: 3,
- parameterCode: "P003",
- parameterName: "姘存瘮渚�",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "10",
- unit: "%",
- },
- ],
- 2: [
- {
- id: 4,
- parameterCode: "P004",
- parameterName: "鎼呮媽鏃堕棿",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "5",
- unit: "鍒嗛挓",
- },
- {
- id: 5,
- parameterCode: "P005",
- parameterName: "鎼呮媽閫熷害",
- parameterType2: "2",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "100-200",
- unit: "rpm",
- },
- ],
- 3: [
- {
- id: 6,
- parameterCode: "P006",
- parameterName: "娴囩瓚娓╁害",
- parameterType2: "2",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "20-30",
- unit: "鈩�",
- },
- {
- id: 7,
- parameterCode: "P007",
- parameterName: "娴囩瓚鍘嬪姏",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "0.5",
- unit: "MPa",
- },
- {
- id: 8,
- parameterCode: "P008",
- parameterName: "鎴愬瀷鐘舵��",
- parameterType2: "1",
- parameterType: "涓嬫媺閫夐」",
- parameterFormat: "status",
- standardValue: "姝e父",
- unit: "",
- },
- {
- id: 9,
- parameterCode: "P009",
- parameterName: "鎴愬瀷鏃堕棿",
- parameterType2: "1",
- parameterType: "鏃堕棿鏍煎紡",
- parameterFormat: "YYYY-MM-DD HH:mm:ss",
- standardValue: "2024-01-01 08:00:00",
- unit: "",
- },
- ],
- 4: [
- {
- id: 10,
- parameterCode: "P010",
- parameterName: "钂稿帇娓╁害",
- parameterType2: "2",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "180-200",
- unit: "鈩�",
- },
- {
- id: 11,
- parameterCode: "P011",
- parameterName: "钂稿帇鍘嬪姏",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "1.2",
- unit: "MPa",
- },
- ],
- 5: [
- {
- id: 12,
- parameterCode: "P012",
- parameterName: "鍒囧壊灏哄",
- parameterType2: "1",
- parameterType: "鏂囨湰鏍煎紡",
- parameterFormat: "",
- standardValue: "600x200x100",
- unit: "mm",
- },
- {
- id: 13,
- parameterCode: "P013",
- parameterName: "鍒囧壊绮惧害",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "卤1",
- unit: "mm",
- },
- {
- id: 14,
- parameterCode: "P014",
- parameterName: "鍒囧壊閫熷害",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "2",
- unit: "m/min",
- },
- ],
- };
- paramList.value = mockData[processId] || [];
- paramPage.total = paramList.value.length;
- }, 300);
+ getProcessParamList(processId)
+ .then(res => {
+ paramList.value = res.data || [];
+ paramPage.total = paramList.value.length;
+ })
+ .catch(() => {
+ ElMessage.error("鑾峰彇鍙傛暟鍒楄〃澶辫触");
+ })
+ .finally(() => {
+ paramLoading.value = false;
+ });
};
// 閫夋嫨宸ュ簭
@@ -546,19 +623,23 @@
const handleAddProcess = () => {
isProcessEdit.value = false;
processForm.id = null;
- processForm.processCode = "";
- processForm.processName = "";
- processForm.processDesc = "";
- processForm.status = "1";
+ processForm.no = "";
+ processForm.name = "";
+ processForm.salaryQuota = null;
+ processForm.isQuality = false;
+ processForm.remark = "";
+ processForm.status = true;
processDialogVisible.value = true;
};
const handleEditProcess = process => {
isProcessEdit.value = true;
processForm.id = process.id;
- processForm.processCode = process.processCode;
- processForm.processName = process.processName;
- processForm.processDesc = process.processDesc;
+ processForm.no = process.no;
+ processForm.name = process.name;
+ processForm.salaryQuota = process.salaryQuota;
+ processForm.isQuality = process.isQuality || false;
+ processForm.remark = process.remark || "";
processForm.status = process.status;
processDialogVisible.value = true;
};
@@ -569,21 +650,34 @@
cancelButtonText: "鍙栨秷",
type: "warning",
}).then(() => {
- ElMessage.success("鍒犻櫎鎴愬姛");
- getProcessList();
- if (selectedProcess.value?.id === process.id) {
- selectedProcess.value = null;
- paramList.value = [];
- }
+ del([process.id])
+ .then(() => {
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ getProcessList();
+ if (selectedProcess.value?.id === process.id) {
+ selectedProcess.value = null;
+ paramList.value = [];
+ }
+ })
+ .catch(() => {
+ ElMessage.error("鍒犻櫎澶辫触");
+ });
});
};
const handleProcessSubmit = () => {
processFormRef.value.validate(valid => {
if (valid) {
- ElMessage.success(isProcessEdit.value ? "缂栬緫鎴愬姛" : "鏂板鎴愬姛");
- processDialogVisible.value = false;
- getProcessList();
+ const apiMethod = isProcessEdit.value ? update : add;
+ apiMethod(processForm)
+ .then(() => {
+ ElMessage.success(isProcessEdit.value ? "缂栬緫鎴愬姛" : "鏂板鎴愬姛");
+ processDialogVisible.value = false;
+ getProcessList();
+ })
+ .catch(() => {
+ ElMessage.error(isProcessEdit.value ? "缂栬緫澶辫触" : "鏂板澶辫触");
+ });
}
});
};
@@ -594,81 +688,20 @@
ElMessage.warning("璇峰厛閫夋嫨涓�涓伐搴�");
return;
}
- // 鑾峰彇鍙�夊弬鏁板垪琛紙鍋囨暟鎹級
- availableParamList.value = [
- {
- id: 101,
- parameterCode: "P101",
- parameterName: "娓╁害",
- parameterType2: "2",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "20-30",
- unit: "鈩�",
- },
- {
- id: 102,
- parameterCode: "P102",
- parameterName: "鍘嬪姏",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "0.5",
- unit: "MPa",
- },
- {
- id: 103,
- parameterCode: "P103",
- parameterName: "婀垮害",
- parameterType2: "2",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "40-60",
- unit: "%",
- },
- {
- id: 104,
- parameterCode: "P104",
- parameterName: "閫熷害",
- parameterType2: "1",
- parameterType: "鏁板�兼牸寮�",
- parameterFormat: "",
- standardValue: "100",
- unit: "m/min",
- },
- {
- id: 105,
- parameterCode: "P105",
- parameterName: "鐘舵��",
- parameterType2: "1",
- parameterType: "涓嬫媺閫夐」",
- parameterFormat: "status",
- standardValue: "姝e父",
- unit: "",
- },
- {
- id: 106,
- parameterCode: "P106",
- parameterName: "璁板綍鏃堕棿",
- parameterType2: "1",
- parameterType: "鏃堕棿鏍煎紡",
- parameterFormat: "YYYY-MM-DD HH:mm:ss",
- standardValue: "2024-01-01 08:00:00",
- unit: "",
- },
- {
- id: 107,
- parameterCode: "P107",
- parameterName: "澶囨敞",
- parameterType2: "1",
- parameterType: "鏂囨湰鏍煎紡",
- parameterFormat: "",
- standardValue: "鏃�",
- unit: "",
- },
- ];
- filteredParamList.value = availableParamList.value;
- paramSearchKeyword.value = "";
+ // 鑾峰彇鍙�夊弬鏁板垪琛�
+ getBaseParamList({
+ paramName: paramSearchKeyword.value,
+ current: paramPage.current,
+ size: paramPage.size,
+ }).then(res => {
+ if (res.code === 200) {
+ filteredParamList.value = res.data?.records || [];
+ paramPage.total = res.data?.total || 0;
+ } else {
+ ElMessage.error(res.msg || "鏌ヨ澶辫触");
+ }
+ });
+ console.log(filteredParamList.value, "鍙�夊弬鏁板垪琛�");
selectedParam.value = null;
paramDialogVisible.value = true;
};
@@ -678,22 +711,38 @@
};
const handleParamSearch = () => {
- const keyword = paramSearchKeyword.value.trim().toLowerCase();
- if (!keyword) {
- filteredParamList.value = availableParamList.value;
- } else {
- filteredParamList.value = availableParamList.value.filter(item =>
- item.parameterName.toLowerCase().includes(keyword)
- );
- }
+ // 閲嶇疆鍒嗛〉
+ paramPage.current = 1;
+ // 閲嶆柊鍔犺浇鏁版嵁
+ handleSelectParam();
};
+ // 澶勭悊鍒嗛〉澶у皬鍙樺寲
+ const handleParamSizeChange = size => {
+ paramPage.size = size;
+ handleSelectParam();
+ };
+
+ // 澶勭悊褰撳墠椤电爜鍙樺寲
+ const handleParamCurrentChange = current => {
+ paramPage.current = current;
+ handleSelectParam();
+ };
+ 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";
};
@@ -704,8 +753,45 @@
cancelButtonText: "鍙栨秷",
type: "warning",
}).then(() => {
- ElMessage.success("鍒犻櫎鎴愬姛");
- getParamList(selectedProcess.value.id);
+ deleteProcessParam(row.id)
+ .then(() => {
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ getParamList(selectedProcess.value.id);
+ })
+ .catch(() => {
+ ElMessage.error("鍒犻櫎澶辫触");
+ });
+ });
+ };
+
+ 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("缂栬緫澶辫触");
+ });
+ }
});
};
@@ -714,9 +800,24 @@
ElMessage.warning("璇峰厛閫夋嫨涓�涓弬鏁�");
return;
}
- ElMessage.success("娣诲姞鎴愬姛");
- paramDialogVisible.value = false;
- getParamList(selectedProcess.value.id);
+ addProcessParam({
+ processId: selectedProcess.value.id,
+ paramId: selectedParam.value.id,
+ 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("娣诲姞鎴愬姛");
+ paramDialogVisible.value = false;
+ getParamList(selectedProcess.value.id);
+ })
+ .catch(() => {
+ ElMessage.error("娣诲姞澶辫触");
+ });
};
const handleParamPagination = obj => {
@@ -754,6 +855,8 @@
// 宸︿晶宸ュ簭鍒楄〃
.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);
@@ -810,7 +913,8 @@
.process-code {
font-size: 12px;
- color: #909399;
+ // color: #909399;
+ color: #cb9b18;
font-family: "Courier New", monospace;
}
@@ -868,7 +972,12 @@
.param-table-wrapper {
flex: 1;
padding: 0 20px 20px;
- overflow: hidden;
+ overflow: auto;
+ }
+
+ /* 琛ㄦ牸妯悜婊氬姩 */
+ :deep(.el-table) {
+ // min-width: 800px;
}
.empty-tip {
@@ -890,7 +999,7 @@
th {
background: transparent;
font-weight: 600;
- color: #ffffff;
+ // color: #ffffff;
border-bottom: none;
padding: 16px 0;
}
@@ -938,7 +1047,8 @@
height: 450px;
.param-list-area {
- flex: 1;
+ // flex: 1;
+ width: 380px;
display: flex;
flex-direction: column;
@@ -961,7 +1071,8 @@
}
.param-detail-area {
- width: 380px;
+ // width: 380px;
+ flex: 1;
display: flex;
flex-direction: column;
background: #f5f7fa;
--
Gitblit v1.9.3