|
|
@@ -185,7 +185,7 @@
|
|
|
<el-table-column align="left" label="工艺名称" prop="gy_name" min-width="280" />
|
|
|
<el-table-column align="center" label="生产工序" prop="big_process" width="100" />
|
|
|
<el-table-column align="right" label="标准工时" prop="standard_hour" width="96" />
|
|
|
- <el-table-column align="right" label="标准工价" prop="standard_score" width="96" />
|
|
|
+ <el-table-column align="right" label="标准工分" prop="standard_score" width="96" />
|
|
|
<el-table-column align="center" label="难度系数" prop="difficulty_coef" width="88" />
|
|
|
<el-table-column align="center" label="操作人" prop="sys_id" width="100" />
|
|
|
<el-table-column align="center" label="创建时间" prop="sys_rq" width="160" />
|
|
|
@@ -516,11 +516,11 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="标准工价" width="118">
|
|
|
+ <el-table-column label="标准工分" width="118">
|
|
|
<template #default="{ row }">
|
|
|
- <el-form-item prop="标准工价" class="list-process-table-form-item">
|
|
|
+ <el-form-item prop="标准工分" class="list-process-table-form-item">
|
|
|
<el-input-number
|
|
|
- v-model="row['标准工价']"
|
|
|
+ v-model="row['标准工分']"
|
|
|
:min="0"
|
|
|
:precision="2"
|
|
|
:step="0.5"
|
|
|
@@ -552,7 +552,7 @@
|
|
|
</div>
|
|
|
</el-form>
|
|
|
<div v-else class="list-process-add-by-part">
|
|
|
- <p class="list-process-by-part-hint">按部件分别填写工艺;选择工艺名称后自动带出生产工序、标准工时、标准工价,并会增加新行。</p>
|
|
|
+ <p class="list-process-by-part-hint">按部件分别填写工艺;选择工艺名称后自动带出生产工序、标准工时、标准工分,并会增加新行。</p>
|
|
|
<div
|
|
|
class="list-process-by-part-list"
|
|
|
:style="{
|
|
|
@@ -624,9 +624,9 @@
|
|
|
<el-input-number v-model="row['标准工时']" :min="0" :precision="2" :step="0.5" controls-position="right" style="width: 100%" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="标准工价" width="118">
|
|
|
+ <el-table-column label="标准工分" width="118">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input-number v-model="row['标准工价']" :min="0" :precision="2" :step="0.5" controls-position="right" style="width: 100%" />
|
|
|
+ <el-input-number v-model="row['标准工分']" :min="0" :precision="2" :step="0.5" controls-position="right" style="width: 100%" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="难度系数" width="110">
|
|
|
@@ -724,7 +724,7 @@
|
|
|
<el-table-column align="right" label="标准工时" width="96">
|
|
|
<template #default="{ row: r }">{{ r.standard_hour ?? '—' }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="right" label="标准工价" width="96">
|
|
|
+ <el-table-column align="right" label="标准工分" width="96">
|
|
|
<template #default="{ row: r }">{{ r.standard_score ?? '—' }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" label="难度系数" width="88">
|
|
|
@@ -773,7 +773,7 @@
|
|
|
</p>
|
|
|
<p class="process-excel-template-hint" style="color:red;">
|
|
|
Excel 首行必须为表头,固定列顺序:
|
|
|
- 部件名称、工艺名称、生产工序、标准工时、标准工价、难度系数
|
|
|
+ 部件名称、工艺名称、生产工序、标准工时、标准工分、难度系数
|
|
|
</p>
|
|
|
<el-upload
|
|
|
:key="processExcelUploadKey"
|
|
|
@@ -1505,7 +1505,7 @@ async function loadProcessLibNameOptions() {
|
|
|
gy_code: String(row.gy_code ?? '').trim(),
|
|
|
big_process: String(row.big_process ?? row['生产工序'] ?? '').trim(),
|
|
|
standard_hour: toNum(row.standard_hour ?? row['标准工时']),
|
|
|
- standard_score: toNum(row.standard_score ?? row['标准工价']),
|
|
|
+ standard_score: toNum(row.standard_score ?? row['标准工分']),
|
|
|
difficulty_coef: toNum(row.difficulty_coef ?? row['难度系数']) ?? 1,
|
|
|
}
|
|
|
}
|
|
|
@@ -1570,7 +1570,7 @@ const processForm = reactive({
|
|
|
工艺名称: '',
|
|
|
生产工序: '',
|
|
|
标准工时: undefined,
|
|
|
- 标准工价: undefined,
|
|
|
+ 标准工分: undefined,
|
|
|
难度系数: 1,
|
|
|
})
|
|
|
const processFormRules = {
|
|
|
@@ -1591,7 +1591,7 @@ function onProcessEditNameChange() {
|
|
|
processForm['工艺序号'] = ''
|
|
|
processForm['生产工序'] = ''
|
|
|
processForm['标准工时'] = undefined
|
|
|
- processForm['标准工价'] = undefined
|
|
|
+ processForm['标准工分'] = undefined
|
|
|
processForm['难度系数'] = 1
|
|
|
return
|
|
|
}
|
|
|
@@ -1599,12 +1599,12 @@ function onProcessEditNameChange() {
|
|
|
if (lib) {
|
|
|
processForm['生产工序'] = lib.big_process
|
|
|
processForm['标准工时'] = lib.standard_hour
|
|
|
- processForm['标准工价'] = lib.standard_score
|
|
|
+ processForm['标准工分'] = lib.standard_score
|
|
|
processForm['难度系数'] = lib.difficulty_coef ?? 1
|
|
|
} else {
|
|
|
processForm['生产工序'] = ''
|
|
|
processForm['标准工时'] = undefined
|
|
|
- processForm['标准工价'] = undefined
|
|
|
+ processForm['标准工分'] = undefined
|
|
|
processForm['难度系数'] = 1
|
|
|
}
|
|
|
}
|
|
|
@@ -1639,7 +1639,7 @@ function normalizeGyRow(row) {
|
|
|
工艺名称: row.gy_name ?? row['工艺名称'] ?? '',
|
|
|
生产工序: row.big_process ?? row['生产工序'] ?? '',
|
|
|
标准工时: row.standard_hour ?? row['标准工时'],
|
|
|
- 标准工价: row.standard_score ?? row['标准工价'],
|
|
|
+ 标准工分: row.standard_score ?? row['标准工分'],
|
|
|
难度系数: numOrOne(row.difficulty_coef ?? row['难度系数']),
|
|
|
}
|
|
|
}
|
|
|
@@ -1669,7 +1669,7 @@ const MAX_PROCESS_BATCH = 300
|
|
|
const MAX_EXCEL_IMPORT = 500
|
|
|
|
|
|
/** 导入产品工艺:首行表头固定列名与顺序(与弹窗说明一致) */
|
|
|
-const PROCESS_EXCEL_HEADER_ORDER = ['部件名称', '工艺名称', '生产工序', '标准工时', '标准工价', '难度系数']
|
|
|
+const PROCESS_EXCEL_HEADER_ORDER = ['部件名称', '工艺名称', '生产工序', '标准工时', '标准工分', '难度系数']
|
|
|
|
|
|
function validateProcessExcelHeaderCells(headerRow) {
|
|
|
const expected = PROCESS_EXCEL_HEADER_ORDER
|
|
|
@@ -1678,7 +1678,7 @@ function validateProcessExcelHeaderCells(headerRow) {
|
|
|
if (cells.length < expected.length) {
|
|
|
return {
|
|
|
ok: false,
|
|
|
- msg: '格式错误:表头列数不足,首行须按顺序为:部件名称、工艺名称、生产工序、标准工时、标准工价、难度系数',
|
|
|
+ msg: '格式错误:表头列数不足,首行须按顺序为:部件名称、工艺名称、生产工序、标准工时、标准工分、难度系数',
|
|
|
}
|
|
|
}
|
|
|
for (let i = 0; i < expected.length; i++) {
|
|
|
@@ -1870,7 +1870,7 @@ const onProcessExcelDialogClosed = () => {
|
|
|
|
|
|
/**
|
|
|
* 提交:只传 multipart,核心为 file(二进制),不再附带 rows 大 JSON,避免几百行时 stringify/上传卡顿。
|
|
|
- * 数值由服务端解析 Excel;请与表头「标准工时、标准工价、难度系数」等一致。
|
|
|
+ * 数值由服务端解析 Excel;请与表头「标准工时、标准工分、难度系数」等一致。
|
|
|
*/
|
|
|
const submitProcessExcelUpload = async () => {
|
|
|
const row = selectedRow.value
|
|
|
@@ -1922,7 +1922,7 @@ function newProcessLibRow() {
|
|
|
工艺名称: '',
|
|
|
生产工序: '',
|
|
|
标准工时: undefined,
|
|
|
- 标准工价: undefined,
|
|
|
+ 标准工分: undefined,
|
|
|
难度系数: 1,
|
|
|
_processFromLib: false,
|
|
|
}
|
|
|
@@ -1966,7 +1966,7 @@ const processLibAddSubmitCount = computed(() => {
|
|
|
for (const r of rows) {
|
|
|
const name = String(r['工艺名称'] ?? '').trim()
|
|
|
const gx = String(r['生产工序'] ?? '').trim()
|
|
|
- const empty = !name && !gx && r['标准工时'] == null && r['标准工价'] == null
|
|
|
+ const empty = !name && !gx && r['标准工时'] == null && r['标准工分'] == null
|
|
|
if (empty) continue
|
|
|
if (name && gx) n += 1
|
|
|
}
|
|
|
@@ -1997,7 +1997,7 @@ function collectProcessAddByPartBatchList() {
|
|
|
const r = rows[i]
|
|
|
const name = String(r['工艺名称'] ?? '').trim()
|
|
|
const gx = String(r['生产工序'] ?? '').trim()
|
|
|
- const empty = !name && !gx && r['标准工时'] == null && r['标准工价'] == null
|
|
|
+ const empty = !name && !gx && r['标准工时'] == null && r['标准工分'] == null
|
|
|
if (empty) continue
|
|
|
if (!name || !gx) {
|
|
|
const pn = part.part_name || part['部件名称'] || partSort
|
|
|
@@ -2009,7 +2009,7 @@ function collectProcessAddByPartBatchList() {
|
|
|
gy_name: name,
|
|
|
big_process: gx,
|
|
|
standard_hour: numOrNull(r['标准工时']),
|
|
|
- standard_score: numOrNull(r['标准工价']),
|
|
|
+ standard_score: numOrNull(r['标准工分']),
|
|
|
difficulty_coef: numOrOne(r['难度系数']),
|
|
|
product_code: pc,
|
|
|
part_sort: partSort,
|
|
|
@@ -2028,7 +2028,7 @@ const resetProcessLibForm = () => {
|
|
|
processForm['工艺名称'] = ''
|
|
|
processForm['生产工序'] = ''
|
|
|
processForm['标准工时'] = undefined
|
|
|
- processForm['标准工价'] = undefined
|
|
|
+ processForm['标准工分'] = undefined
|
|
|
processForm['难度系数'] = 1
|
|
|
processIsEdit.value = false
|
|
|
processAddPartList.value = []
|
|
|
@@ -2092,7 +2092,7 @@ const onGyEdit = async (row) => {
|
|
|
processForm['工艺名称'] = r.工艺名称 ?? ''
|
|
|
processForm['生产工序'] = r.生产工序 ?? ''
|
|
|
processForm['标准工时'] = parseNum(r.标准工时)
|
|
|
- processForm['标准工价'] = parseNum(r.标准工价)
|
|
|
+ processForm['标准工分'] = parseNum(r.标准工分)
|
|
|
processForm['难度系数'] = numOrOne(r.难度系数 ?? r.difficulty_coef)
|
|
|
processDialogVisible.value = true
|
|
|
}
|
|
|
@@ -2128,21 +2128,21 @@ function onProcessLibNameSelectChangeForPart(partKey, rowIndex) {
|
|
|
row._processFromLib = false
|
|
|
row['生产工序'] = ''
|
|
|
row['标准工时'] = undefined
|
|
|
- row['标准工价'] = undefined
|
|
|
+ row['标准工分'] = undefined
|
|
|
row['难度系数'] = 1
|
|
|
} else {
|
|
|
const lib = processLibByName.value[name]
|
|
|
if (lib) {
|
|
|
row['生产工序'] = lib.big_process
|
|
|
row['标准工时'] = lib.standard_hour
|
|
|
- row['标准工价'] = lib.standard_score
|
|
|
+ row['标准工分'] = lib.standard_score
|
|
|
row['难度系数'] = lib.difficulty_coef ?? 1
|
|
|
row._processFromLib = true
|
|
|
} else {
|
|
|
row._processFromLib = false
|
|
|
row['生产工序'] = ''
|
|
|
row['标准工时'] = undefined
|
|
|
- row['标准工价'] = undefined
|
|
|
+ row['标准工分'] = undefined
|
|
|
row['难度系数'] = 1
|
|
|
}
|
|
|
}
|
|
|
@@ -2186,7 +2186,7 @@ const buildProcessEditPayload = () => {
|
|
|
gy_name: String(processForm['工艺名称'] ?? '').trim(),
|
|
|
big_process: String(processForm['生产工序'] ?? '').trim(),
|
|
|
standard_hour: numOrNull(processForm['标准工时']),
|
|
|
- standard_score: numOrNull(processForm['标准工价']),
|
|
|
+ standard_score: numOrNull(processForm['标准工分']),
|
|
|
difficulty_coef: numOrOne(processForm['难度系数']),
|
|
|
part_name: partName || undefined,
|
|
|
sys_id: sysId,
|