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

View File

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

View File

@@ -26,6 +26,14 @@
{{ specification }} {{ specification }}
</span> </span>
</div> </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> </div>
<el-tag type="info" size="small" slot="reference">{{ currentCoilNo }}</el-tag> <el-tag type="info" size="small" slot="reference">{{ currentCoilNo }}</el-tag>
@@ -73,6 +81,12 @@ export default {
}, },
currentCoilNo() { currentCoilNo() {
return this.coilNo || this.coilInfo?.currentCoilNo || '-' return this.coilNo || this.coilInfo?.currentCoilNo || '-'
},
netWeight() {
return this.coilInfo.netWeight || '-'
},
supplierCoilNo() {
return this.coilInfo.supplierCoilNo || '-'
} }
}, },
methods: { methods: {

View File

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

View File

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

View File

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

View File

@@ -135,7 +135,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType"> <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>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">

View File

@@ -133,7 +133,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType"> <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>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">

View File

@@ -124,7 +124,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType"> <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>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">

View File

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

View File

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

View File

@@ -104,60 +104,6 @@
</div> </div>
</el-col> </el-col>
</el-row> </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> </div>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
@@ -303,14 +249,14 @@ export default {
} }
// 2. 操作时间(优先取更新时间/回滚时间) // 2. 操作时间(优先取更新时间/回滚时间)
if (originalStep.update_time) { if (originalStep.update_time || originalStep.create_time) {
standardStep.time = this.formatTime(originalStep.update_time); standardStep.time = this.formatTime(originalStep.update_time || originalStep.create_time);
} else if (originalStep.rollback_time) { } else if (originalStep.rollback_time) {
standardStep.time = this.formatTime(originalStep.rollback_time); standardStep.time = this.formatTime(originalStep.rollback_time);
} }
// 3. 操作人(优先昵称,其次账号) // 3. 操作人(优先昵称,其次账号)
standardStep.operation = originalStep.operator_nickname || originalStep.operator || '-'; standardStep.operation = originalStep.operator_nickname || originalStep.operator || originalStep.create_by || '-';
// 4. 核心ID映射oldCoilIds操作前钢卷ID列表 // 4. 核心ID映射oldCoilIds操作前钢卷ID列表
switch (standardStep.action) { switch (standardStep.action) {

View File

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

View File

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

View File

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

View File

@@ -173,7 +173,7 @@
</el-form-item> </el-form-item>
<el-form-item label="镀层种类" prop="coatingType"> <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>
<el-form-item label="逻辑库区" prop="warehouseId"> <el-form-item label="逻辑库区" prop="warehouseId">

View File

@@ -164,7 +164,7 @@ export default {
// 按钮loading // 按钮loading
buttonLoading: false, buttonLoading: false,
// 遮罩层 // 遮罩层
loading: true, loading: false,
// 选中数组 // 选中数组
ids: [], ids: [],
// 非单个禁用 // 非单个禁用
@@ -219,6 +219,9 @@ export default {
methods: { methods: {
/** 查询发货单明细列表 */ /** 查询发货单明细列表 */
getList() { getList() {
if (!this.waybillId) {
return;
}
this.loading = true; this.loading = true;
listDeliveryWaybillDetail({ ...this.queryParams, waybillId: this.waybillId }).then(response => { listDeliveryWaybillDetail({ ...this.queryParams, waybillId: this.waybillId }).then(response => {
this.deliveryWaybillDetailList = response.rows; 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="发货单唯一ID" align="center" prop="waybillId" v-if="false" />
<el-table-column label="发货单名称" align="center" prop="waybillName" /> <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="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="senderUnit" />
<el-table-column label="发货时间" align="center" prop="deliveryTime" width="100"> <el-table-column label="发货时间" align="center" prop="deliveryTime" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -48,7 +49,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="负责人" align="center" prop="principal" /> <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"> <el-table-column label="完成状态" align="center" prop="status" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.status" placeholder="请选择完成状态" @change="handleStatusChange(scope.row)"> <el-select v-model="scope.row.status" placeholder="请选择完成状态" @change="handleStatusChange(scope.row)">