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

This commit is contained in:
2026-03-04 10:33:38 +08:00
18 changed files with 59 additions and 91 deletions

View File

@@ -103,35 +103,34 @@
</el-form-item> -->
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称" />
<MemoInput storageKey="productName" v-model="form.productName" placeholder="请输入产品名称" />
</el-form-item>
<!-- <el-form-item label="负责人" prop="owner">
<el-input v-model="form.owner" :multiple="false" placeholder="请填写负责人" />
</el-form-item> -->
<el-form-item label="计量单位" prop="unit">
<!-- <el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入计量单位" />
</el-form-item>
</el-form-item> -->
<el-form-item label="规格" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格" />
<MemoInput storageKey="coilSpec" v-model="form.specification" placeholder="请输入规格" />
</el-form-item>
<el-form-item label="材质" prop="material">
<el-input v-model="form.material" placeholder="请输入材质" />
<MemoInput storageKey="material" v-model="form.material" placeholder="请输入材质" />
</el-form-item>
<el-form-item label="厂家" prop="manufacturer">
<el-input v-model="form.manufacturer" placeholder="请输入厂家" />
<MemoInput storageKey="manufacturer" v-model="form.manufacturer" placeholder="请输入厂家" />
</el-form-item>
<el-form-item label="表面处理" prop="surfaceTreatmentDesc">
<el-input v-model="form.surfaceTreatmentDesc" placeholder="请输入表面处理" />
<MemoInput storageKey="surfaceTreatmentDesc" v-model="form.surfaceTreatmentDesc" placeholder="请输入表面处理" />
</el-form-item>
<el-form-item label="镀层质量" prop="zincLayer">
<el-input v-model="form.zincLayer" placeholder="请输入镀层质量" />
<MemoInput storageKey="zincLayer" v-model="form.zincLayer" placeholder="请输入镀层质量" />
</el-form-item>
</el-form>
@@ -359,6 +358,7 @@ export default {
} else {
addProduct({
...this.form,
unit: '卷',
productCode: this.form.material || '' + (this.form.zincLayer || '') + new Date().getTime(),
}).then(response => {
this.$modal.msgSuccess("新增成功");

View File

@@ -98,28 +98,25 @@
<el-input v-model="form.rawMaterialCode" placeholder="请输入原材料编号" />
</el-form-item> -->
<el-form-item label="原材料名称" prop="rawMaterialName">
<el-input v-model="form.rawMaterialName" placeholder="请输入原材料名称" />
<MemoInput storageKey="productName" v-model="form.rawMaterialName" placeholder="请输入原材料名称" />
</el-form-item>
<el-form-item label="规格" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格" />
<MemoInput storageKey="coilSpec" v-model="form.specification" placeholder="请输入规格" />
</el-form-item>
<el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入计量单位" />
</el-form-item>
<el-form-item label="材质" prop="material">
<el-input v-model="form.material" placeholder="请输入材质" />
<el-form-item label="材质" prop="material">
<MemoInput storageKey="material" v-model="form.material" placeholder="请输入材质" />
</el-form-item>
<el-form-item label="厂家" prop="manufacturer">
<el-input v-model="form.manufacturer" placeholder="请输入厂家" />
<MemoInput storageKey="manufacturer" v-model="form.manufacturer" placeholder="请输入厂家" />
</el-form-item>
<el-form-item label="表面处理" prop="surfaceTreatmentDesc">
<el-input v-model="form.surfaceTreatmentDesc" placeholder="请输入表面处理" />
<MemoInput storageKey="surfaceTreatmentDesc" v-model="form.surfaceTreatmentDesc" placeholder="请输入表面处理" />
</el-form-item>
<el-form-item label="镀层质量" prop="zincLayer">
<el-input v-model="form.zincLayer" placeholder="请输入镀层质量" />
<MemoInput storageKey="zincLayer" v-model="form.zincLayer" placeholder="请输入镀层质量" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -316,6 +313,7 @@ export default {
} else {
addRawMaterial({
...this.form,
unit: '卷',
rawMaterialCode: this.form.material || '' + (this.form.zincLayer || '') + new Date().getTime(),
}).then(response => {
this.$modal.msgSuccess("新增成功");

View File

@@ -26,6 +26,14 @@
{{ specification }}
</span>
</div>
<div class="info-item">
<span class="label">净重</span>
<span class="value">{{ netWeight }}</span>
</div>
<div class="info-item">
<span class="label">厂家卷号</span>
<span class="value">{{ supplierCoilNo }}</span>
</div>
</div>
<el-tag type="info" size="small" slot="reference">{{ currentCoilNo }}</el-tag>
@@ -73,6 +81,12 @@ export default {
},
currentCoilNo() {
return this.coilNo || this.coilInfo?.currentCoilNo || '-'
},
netWeight() {
return this.coilInfo.netWeight || '-'
},
supplierCoilNo() {
return this.coilInfo.supplierCoilNo || '-'
}
},
methods: {

View File

@@ -45,6 +45,9 @@ import VueMeta from 'vue-meta'
// 字典数据组件
import DictData from '@/components/DictData'
import KLPTable from '@/components/KLPUI/KLPTable/index.vue'
import MemoInput from '@/components/MemoInput/index.vue'
// 全局方法挂载
Vue.prototype.getDicts = getDicts
@@ -68,6 +71,7 @@ Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
Vue.component('KLPTable', KLPTable)
Vue.component('MemoInput', MemoInput)
Vue.use(vueFlvPlayer)
Vue.use(directive)

View File

@@ -11,4 +11,5 @@ export const MemoInputStorageKey = {
packingStatus: 'packingStatus', // 打包状态
packagingRequirement: 'packagingRequirement', // 打包要求
coilSpec: 'coilSpec', // 钢卷规格
coatingType: 'coatingType', // 钢卷镀层种类
}

View File

@@ -335,7 +335,7 @@
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@@ -592,7 +592,7 @@ export default {
methods: {
parseTime,
getBorderStyle(row) {
console.log(row);
// console.log(row);
// 已发货
if (row.status == 1) {
return { border: '1.5px solid #007bff' }

View File

@@ -135,7 +135,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">

View File

@@ -133,7 +133,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">

View File

@@ -124,7 +124,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">

View File

@@ -115,7 +115,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">
@@ -326,7 +326,7 @@
<el-input v-model="editCoil.form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="editCoil.form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="editCoil.form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="editCoil.form.remark" placeholder="请输入备注" />

View File

@@ -192,7 +192,7 @@
<el-input v-model="targetCoil.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区">
<WarehouseSelect v-model="targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />

View File

@@ -104,60 +104,6 @@
</div>
</el-col>
</el-row>
<!-- 回滚专属删除/恢复钢卷信息优化为关键信息展示 -->
<!-- <el-row class="detail-row" v-if="step.action === '回滚'">
<el-col :span="8" class="detail-label">删除钢卷</el-col>
<el-col :span="16" class="detail-value">
<div class="coil-info-item" v-if="step.deletedCoilInfo">
<el-popover
placement="right"
trigger="hover"
width="400"
:loading="loadingCoilDetails"
>
<div class="coil-detail-item">
<p><b>物料类型</b>{{ step.deletedCoilInfo.materialType || '-' }}</p>
<p><b>物料名称</b>{{ step.deletedCoilInfo.itemName || '-' }}</p>
<p><b>规格</b>{{ step.deletedCoilInfo.specification || '-' }}</p>
<p><b>材质</b>{{ step.deletedCoilInfo.material || '-' }}</p>
<p><b>净重</b>{{ step.deletedCoilInfo.netWeight }} kg</p>
<p><b>创建时间</b>{{ step.deletedCoilInfo.createTime || '-' }}</p>
</div>
<div slot="reference" class="coil-info-summary">
{{ step.deletedCoilInfo.currentCoilNo || '-' }} {{ step.deletedCoilInfo.itemName }}{{ step.deletedCoilInfo.specification }}- {{ step.deletedCoilInfo.materialType }}
</div>
</el-popover>
</div>
<span v-else></span>
</el-col>
</el-row>
<el-row class="detail-row" v-if="step.action === '回滚'">
<el-col :span="8" class="detail-label">恢复钢卷</el-col>
<el-col :span="16" class="detail-value">
<div class="coil-info-item" v-if="step.restoredCoilInfo">
<el-popover
placement="right"
trigger="hover"
width="400"
:loading="loadingCoilDetails"
>
<div class="coil-detail-item">
<p><b>物料类型</b>{{ step.restoredCoilInfo.materialType || '-' }}</p>
<p><b>物料名称</b>{{ step.restoredCoilInfo.itemName || '-' }}</p>
<p><b>规格</b>{{ step.restoredCoilInfo.specification || '-' }}</p>
<p><b>材质</b>{{ step.restoredCoilInfo.material || '-' }}</p>
<p><b>净重</b>{{ step.restoredCoilInfo.netWeight }} kg</p>
<p><b>创建时间</b>{{ step.restoredCoilInfo.createTime || '-' }}</p>
</div>
<div slot="reference" class="coil-info-summary">
{{ step.restoredCoilInfo.currentCoilNo || '-' }} {{ step.restoredCoilInfo.itemName }}{{ step.restoredCoilInfo.specification }}- {{ step.restoredCoilInfo.materialType }}
</div>
</el-popover>
</div>
<span v-else></span>
</el-col>
</el-row> -->
</div>
</el-card>
</el-timeline-item>
@@ -303,14 +249,14 @@ export default {
}
// 2. 操作时间(优先取更新时间/回滚时间)
if (originalStep.update_time) {
standardStep.time = this.formatTime(originalStep.update_time);
if (originalStep.update_time || originalStep.create_time) {
standardStep.time = this.formatTime(originalStep.update_time || originalStep.create_time);
} else if (originalStep.rollback_time) {
standardStep.time = this.formatTime(originalStep.rollback_time);
}
// 3. 操作人(优先昵称,其次账号)
standardStep.operation = originalStep.operator_nickname || originalStep.operator || '-';
standardStep.operation = originalStep.operator_nickname || originalStep.operator || originalStep.create_by || '-';
// 4. 核心ID映射oldCoilIds操作前钢卷ID列表
switch (standardStep.action) {

View File

@@ -275,7 +275,7 @@
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />

View File

@@ -38,6 +38,7 @@
highlight-current-row border stripe>
<el-table-column prop="currentCoilNo" label="当前钢卷号" />
<el-table-column prop="materialType" label="材料类型" />
<el-table-column prop="netWeight" label="净重" />
<el-table-column prop="dataType" label="钢卷状态">
<template #default="scope">
<div v-if="scope.row.status == 1">
@@ -137,7 +138,7 @@
<el-input v-model="splitForm.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="splitForm.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="splitForm.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="splitForm.remark" placeholder="请输入备注" type="textarea" />

View File

@@ -196,7 +196,7 @@
<el-input v-model="item.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="item.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="item.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区" required>
<WarehouseSelect v-model="item.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />

View File

@@ -173,7 +173,7 @@
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="updateForm.coatingType" placeholder="请输入镀层种类" />
<MemoInput storageKey="coatingType" v-model="updateForm.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区" prop="warehouseId">

View File

@@ -164,7 +164,7 @@ export default {
// 按钮loading
buttonLoading: false,
// 遮罩层
loading: true,
loading: false,
// 选中数组
ids: [],
// 非单个禁用
@@ -218,7 +218,10 @@ export default {
},
methods: {
/** 查询发货单明细列表 */
getList() {
getList() {
if (!this.waybillId) {
return;
}
this.loading = true;
listDeliveryWaybillDetail({ ...this.queryParams, waybillId: this.waybillId }).then(response => {
this.deliveryWaybillDetailList = response.rows;

View File

@@ -41,6 +41,7 @@
<el-table-column label="发货单唯一ID" align="center" prop="waybillId" v-if="false" />
<el-table-column label="发货单名称" align="center" prop="waybillName" />
<el-table-column label="车牌" align="center" prop="licensePlate" width="100" />
<el-table-column label="收货单位" align="center" prop="consigneeUnit" />
<el-table-column label="发货单位" align="center" prop="senderUnit" />
<el-table-column label="发货时间" align="center" prop="deliveryTime" width="100">
<template slot-scope="scope">
@@ -48,7 +49,7 @@
</template>
</el-table-column>
<el-table-column label="负责人" align="center" prop="principal" />
<el-table-column label="负责人电话" align="center" prop="principalPhone" width="100" />
<!-- <el-table-column label="负责人电话" align="center" prop="principalPhone" width="100" /> -->
<el-table-column label="完成状态" align="center" prop="status" width="120">
<template slot-scope="scope">
<el-select v-model="scope.row.status" placeholder="请选择完成状态" @change="handleStatusChange(scope.row)">