Merge remote-tracking branch 'origin/0.8.X' into 0.8.X

# Conflicts:
#	klp-ui/src/utils/enum.js
This commit is contained in:
朱昊天
2026-07-08 10:45:10 +08:00
17 changed files with 2382 additions and 25 deletions

View File

@@ -0,0 +1,154 @@
import request from '@/utils/request'
// ═══════════════════════════════════════
// 厚度分类
// ═══════════════════════════════════════
export function listThickClass(query) {
return request({ url: '/pltcm/thickClass/list', method: 'get', params: query })
}
export function getThickClass(classId) {
return request({ url: '/pltcm/thickClass/' + classId, method: 'get' })
}
export function addThickClass(data) {
return request({ url: '/pltcm/thickClass', method: 'post', data })
}
export function updateThickClass(data) {
return request({ url: '/pltcm/thickClass', method: 'put', data })
}
export function delThickClass(classIds) {
return request({ url: '/pltcm/thickClass/' + classIds, method: 'delete' })
}
// ═══════════════════════════════════════
// 宽度分类
// ═══════════════════════════════════════
export function listWidthClass(query) {
return request({ url: '/pltcm/widthClass/list', method: 'get', params: query })
}
export function getWidthClass(classId) {
return request({ url: '/pltcm/widthClass/' + classId, method: 'get' })
}
export function addWidthClass(data) {
return request({ url: '/pltcm/widthClass', method: 'post', data })
}
export function updateWidthClass(data) {
return request({ url: '/pltcm/widthClass', method: 'put', data })
}
export function delWidthClass(classIds) {
return request({ url: '/pltcm/widthClass/' + classIds, method: 'delete' })
}
// ═══════════════════════════════════════
// 屈服强度分类
// ═══════════════════════════════════════
export function listYieldStressClass(query) {
return request({ url: '/pltcm/yieldStressClass/list', method: 'get', params: query })
}
export function getYieldStressClass(classId) {
return request({ url: '/pltcm/yieldStressClass/' + classId, method: 'get' })
}
export function addYieldStressClass(data) {
return request({ url: '/pltcm/yieldStressClass', method: 'post', data })
}
export function updateYieldStressClass(data) {
return request({ url: '/pltcm/yieldStressClass', method: 'put', data })
}
export function delYieldStressClass(classIds) {
return request({ url: '/pltcm/yieldStressClass/' + classIds, method: 'delete' })
}
// ═══════════════════════════════════════
// 策略关联
// ═══════════════════════════════════════
export function listStrategy(query) {
return request({ url: '/pltcm/strategy/list', method: 'get', params: query })
}
export function getStrategy(id) {
return request({ url: '/pltcm/strategy/' + id, method: 'get' })
}
export function addStrategy(data) {
return request({ url: '/pltcm/strategy', method: 'post', data })
}
export function updateStrategy(data) {
return request({ url: '/pltcm/strategy', method: 'put', data })
}
export function delStrategy(ids) {
return request({ url: '/pltcm/strategy/' + ids, method: 'delete' })
}
// ═══════════════════════════════════════
// 屈服强度与钢种对应关系
// ═══════════════════════════════════════
export function listSteelgrade(query) {
return request({ url: '/pltcm/steelgrade/list', method: 'get', params: query })
}
export function getSteelgrade(steelGrade) {
return request({ url: '/pltcm/steelgrade/' + steelGrade, method: 'get' })
}
export function addSteelgrade(data) {
return request({ url: '/pltcm/steelgrade', method: 'post', data })
}
export function updateSteelgrade(data) {
return request({ url: '/pltcm/steelgrade', method: 'put', data })
}
export function delSteelgrade(steelGrades) {
return request({ url: '/pltcm/steelgrade/' + steelGrades, method: 'delete' })
}
// ═══════════════════════════════════════
// 比例标准表
// ═══════════════════════════════════════
export function listRatio(query) {
return request({ url: '/pltcm/ratio/list', method: 'get', params: query })
}
export function getRatio(id) {
return request({ url: '/pltcm/ratio/' + id, method: 'get' })
}
export function addRatio(data) {
return request({ url: '/pltcm/ratio', method: 'post', data })
}
export function updateRatio(data) {
return request({ url: '/pltcm/ratio', method: 'put', data })
}
export function delRatio(ids) {
return request({ url: '/pltcm/ratio/' + ids, method: 'delete' })
}
// ═══════════════════════════════════════
// 设备启用状态
// ═══════════════════════════════════════
export function listDeviceEnable(query) {
return request({ url: '/pltcm/deviceEnable/list', method: 'get', params: query })
}
export function getDeviceEnable(id) {
return request({ url: '/pltcm/deviceEnable/' + id, method: 'get' })
}
export function updateDeviceEnable(data) {
return request({ url: '/pltcm/deviceEnable', method: 'put', data })
}

View File

@@ -58,6 +58,12 @@ export default {
disabled: {
type: Boolean,
default: false
},
// 下拉最多展示条数默认6条
maxSuggestions: {
type: Number,
default: 6,
validator: (value) => value > 0
}
},
data() {
@@ -118,7 +124,7 @@ export default {
});
}
cb(results); // 回调返回匹配结果
cb(results.slice(0, this.maxSuggestions)); // 回调返回匹配结果(限制条数)
},
/**

View File

@@ -411,7 +411,7 @@ import { listWarehouse } from '@/api/wms/warehouse'
export default {
name: 'QualityReview',
components: { CoilSelector },
dicts: ['quality_review_status', 'regrade_quality_type', 'coil_quality_status'],
dicts: ['quality_review_status', 'coil_quality_status'],
data() {
return {
// 列表

View File

@@ -93,7 +93,7 @@ import { listQualityReview, approveQualityReview, rejectQualityReview, getQualit
export default {
name: 'QualityReviewTodo',
dicts: ['quality_review_status', 'regrade_quality_type', 'coil_quality_status'],
dicts: ['quality_review_status', 'coil_quality_status'],
data() {
return {
loading: false,

File diff suppressed because it is too large Load Diff

View File

@@ -54,6 +54,10 @@
<i class="el-icon-alarm-clock"></i>
<span slot="title">app</span>
</el-menu-item>
<el-menu-item index="model">
<i class="el-icon-coin"></i>
<span slot="title">模型</span>
</el-menu-item>
</el-menu>
</div>
<div style="flex: 1; overflow: hidden;">
@@ -76,6 +80,7 @@ import Stoppage from '@/views/timing/stoppage/index.vue';
import AcidTiming from '@/views/lines/acid/index.vue';
import TrackingView from './components/TrackingView.vue';
import ProcessSpec from './components/ProcessSpec.vue';
import Model from './components/Model.vue';
export default {
name: 'AcidSystem',
@@ -92,7 +97,8 @@ export default {
Stoppage,
AcidTiming,
TrackingView,
ProcessSpec
ProcessSpec,
Model,
},
data() {
return {
@@ -115,6 +121,7 @@ export default {
acidTiming: 'AcidTiming',
tracking: 'TrackingView',
processSpec: 'ProcessSpec',
model: 'Model',
};
return componentMap[this.activeMenu];
},

View File

@@ -2,11 +2,10 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="调拨单号" prop="transferNo">
<el-input v-model="queryParams.transferNo" placeholder="请输入调拨单号" clearable @keyup.enter.native="handleQuery" />
<MemoInput storageKey="transferNo" v-model="queryParams.transferNo" placeholder="请输入调拨单号" />
</el-form-item>
<el-form-item label="调拨单名称" prop="transferName">
<el-input v-model="queryParams.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" clearable
@keyup.enter.native="handleQuery" />
<MemoInput storageKey="transferName" v-model="queryParams.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" />
</el-form-item>
<el-form-item label="调拨时间" prop="transferTime">
<el-date-picker clearable v-model="queryParams.transferTime" type="date" value-format="yyyy-MM-dd"
@@ -41,7 +40,7 @@
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
@click="handleDelete">删除</el-button>
v-hasRole="['glc']" @click="handleDelete">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
@@ -80,8 +79,8 @@
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
:disabled="!canEdit(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
:disabled="!canDelete(scope.row)">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" v-hasRole="['glc']"
@click="handleDelete(scope.row)">删除</el-button>
<el-button size="mini" plain type="text" @click="handleSubmitapprove(scope.row)"
v-if="(scope.row.approveStatus || '0') == '0'" icon="el-icon-check">提交</el-button>
<el-button size="mini" plain type="text" @click="handleWithdrawapprove(scope.row)"
@@ -103,10 +102,10 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="调拨单号" prop="transferNo">
<el-input v-model="form.transferNo" placeholder="请输入调拨单号" />
<MemoInput storageKey="transferNo" v-model="form.transferNo" placeholder="请输入调拨单号" />
</el-form-item>
<el-form-item label="调拨单名称" prop="transferName">
<el-input v-model="form.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" />
<MemoInput storageKey="transferName" v-model="form.transferName" placeholder="请输入调拨单名称,用于帮助记忆与沟通" />
</el-form-item>
<el-form-item label="调拨时间" prop="transferTime">
<el-date-picker clearable v-model="form.transferTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
@@ -297,12 +296,6 @@ export default {
const status = row.approveStatus || '0';
return status === '0' || status === '1' || status === '3';
},
/** 判断是否可以删除 */
canDelete(row) {
// 如果没有状态字段,则视为未提交
const status = row.approveStatus || '0';
return status === '0';
},
/** 提交审批 */
handleSubmitapprove(row) {
this.$confirm('确定要提交审批吗?', '提示', {
@@ -604,14 +597,10 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const orderIds = row.orderId || this.ids;
this.$modal.confirm('是否确认删除调拨单主编号为"' + orderIds + '"的数据项?').then(() => {
this.loading = true;
return delTransferOrder(orderIds);
}).then(() => {
this.loading = false;
this.loading = true;
delTransferOrder(orderIds).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});