@@ -38,8 +38,8 @@ | |||
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %> | |||
<script> | |||
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.103:8080/pms-am'; | |||
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.49:8080/pms-am'; // tengyun | |||
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.67:8080/pms-am'; // wenzhang | |||
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.49:8080/pms-am'; // tengyun | |||
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.67:8080/pms-am'; // wenzhang | |||
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.62:8080/pms-am'; // tao | |||
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.21:8080/pms-am'; // xv | |||
// window.SITE_CONFIG['apiURL'] = 'http://localhost:3000/p//////ms-am'; // xv | |||
@@ -270,6 +270,7 @@ export default { | |||
inject: ["urls"], | |||
data() { | |||
const dataForm = {}; | |||
let dataForm__duplicate = null; | |||
const autoDisabledQueue = []; | |||
const watingToRefreshQueue = []; | |||
const cached = {}; | |||
@@ -373,12 +374,15 @@ export default { | |||
}); | |||
}); | |||
if (this.configs.form.duplicate) dataForm__duplicate = JSON.parse(JSON.stringify(dataForm)); | |||
return { | |||
// configs, | |||
btnLoading: false, | |||
loadingStatus: false, | |||
activeMenu: this.configs.menu[0].name, | |||
dataForm, | |||
dataForm__duplicate, | |||
detailMode: false, | |||
autoDisabledQueue, | |||
watingToRefreshQueue, | |||
@@ -419,44 +423,44 @@ export default { | |||
}; | |||
}, | |||
mounted() { | |||
this.configs.form.rows.forEach((row) => { | |||
row.forEach((col) => { | |||
if ( | |||
col.changeReflects && | |||
typeof col.changeReflects === "object" && | |||
"fromKey" in col.changeReflects && | |||
"toProp" in col.changeReflects | |||
) { | |||
this.$watch( | |||
() => this.dataForm[col.prop], | |||
(val) => { | |||
if (val && col.prop in this.cached) { | |||
console.log("here changeReflects", col.prop, col.changeReflects.toProp, this.cached[col.prop]); | |||
if (typeof col.changeReflects.fromKey === "string") { | |||
this.dataForm[col.changeReflects.toProp] = this.cached[col.prop].find((item) => item.id === val)?.[ | |||
col.changeReflects.fromKey | |||
]; | |||
} else if (Array.isArray(col.changeReflects.fromKey) && col.changeReflects.delimiter) { | |||
const foundItem = (this.dataForm[col.changeReflects.toProp] = this.cached[col.prop].find( | |||
(item) => item.id === val | |||
)); | |||
if (foundItem) { | |||
const values = col.changeReflects.fromKey.map((key) => foundItem[key]); | |||
this.dataForm[col.changeReflects.toProp] = values.join(col.changeReflects.delimiter); | |||
} else { | |||
this.dataForm[col.changeReflects.toProp] = col.changeReflects.delimiter; | |||
console.log("[DialogWithMenu] mounted() 没找到对应数据"); | |||
} | |||
} | |||
} | |||
}, | |||
{ | |||
immediate: false, | |||
} | |||
); | |||
} | |||
}); | |||
}); | |||
// this.configs.form.rows.forEach((row) => { | |||
// row.forEach((col) => { | |||
// if ( | |||
// col.changeReflects && | |||
// typeof col.changeReflects === "object" && | |||
// "fromKey" in col.changeReflects && | |||
// "toProp" in col.changeReflects | |||
// ) { | |||
// this.$watch( | |||
// () => this.dataForm[col.prop], | |||
// (val) => { | |||
// if (val && col.prop in this.cached) { | |||
// console.log("here changeReflects", col.prop, col.changeReflects.toProp, this.cached[col.prop]); | |||
// if (typeof col.changeReflects.fromKey === "string") { | |||
// this.dataForm[col.changeReflects.toProp] = this.cached[col.prop].find((item) => item.id === val)?.[ | |||
// col.changeReflects.fromKey | |||
// ]; | |||
// } else if (Array.isArray(col.changeReflects.fromKey) && col.changeReflects.delimiter) { | |||
// const foundItem = (this.dataForm[col.changeReflects.toProp] = this.cached[col.prop].find( | |||
// (item) => item.id === val | |||
// )); | |||
// if (foundItem) { | |||
// const values = col.changeReflects.fromKey.map((key) => foundItem[key]); | |||
// this.dataForm[col.changeReflects.toProp] = values.join(col.changeReflects.delimiter); | |||
// } else { | |||
// this.dataForm[col.changeReflects.toProp] = col.changeReflects.delimiter; | |||
// console.log("[DialogWithMenu] mounted() 没找到对应数据"); | |||
// } | |||
// } | |||
// } | |||
// }, | |||
// { | |||
// immediate: false, | |||
// } | |||
// ); | |||
// } | |||
// }); | |||
// }); | |||
}, | |||
watch: { | |||
@@ -583,7 +587,7 @@ export default { | |||
this.$http.get(this.urls.base + `/${this.dataForm.id}`).then(({ data: res }) => { | |||
if (res && res.code === 0) { | |||
const dataFormKeys = Object.keys(this.dataForm); | |||
console.log('[DialogWithMenu] dataFormKeys -------->', dataFormKeys) | |||
console.log("[DialogWithMenu] dataFormKeys -------->", dataFormKeys); | |||
this.dataForm = __pick(res.data, dataFormKeys); | |||
if ("files" in res.data) { | |||
@@ -778,7 +782,17 @@ export default { | |||
console.log("[DialogJustForm] handleComponentModelUpdate", this.dataForm[propName]); | |||
}, | |||
handleSelectChange(col, eventValue) { | |||
console.log("[dialog] select change: ", col, eventValue); | |||
console.log("[dialog] select change: ", col, eventValue, this.dataForm__duplicate); | |||
if (this.dataForm__duplicate !== null) { | |||
console.log("before B--------->", this.dataForm__duplicate); | |||
const shape = this.cached[col.prop].find((item) => item.id === eventValue); | |||
this.$set( | |||
this.dataForm__duplicate, | |||
col.changeReflects.toProp, | |||
shape && col.changeReflects.toProp in shape ? shape[col.changeReflects.toProp] : null | |||
); | |||
console.log("B--------->", shape, this.dataForm__duplicate); | |||
} | |||
}, | |||
handleSwitchChange(val) { | |||
console.log("[dialog] switch change: ", val, this.dataForm); | |||
@@ -798,6 +812,8 @@ export default { | |||
case "update": { | |||
this.$refs.dataForm[0].validate((passed, result) => { | |||
if (passed) { | |||
// 判断dataForm类型 | |||
let dataForm = this.dataForm__duplicate !== null ? this.dataForm__duplicate : this.dataForm; | |||
// 如果通过验证 | |||
this.btnLoading = true; | |||
this.loadingStatus = true; | |||
@@ -807,7 +823,8 @@ export default { | |||
const hasAttachment = !!this.configs.menu.find((item) => item.key === "attachment"); | |||
if (hasAttachment) { | |||
const fileIds = this.fileList.map((item) => item.id); | |||
this.$set(this.dataForm, "fileIds", fileIds); | |||
// this.$set(this.dataForm, "fileIds", fileIds); | |||
dataForm.fileIds = fileIds; | |||
} | |||
// 加载额外需要的 id | |||
@@ -828,6 +845,8 @@ export default { | |||
// console.log('actualPayload', actualPayload); | |||
// } | |||
console.log("before update:", dataForm); | |||
// 实际发送请求 | |||
this.btnLoading = true; | |||
this.$http({ | |||
@@ -835,7 +854,8 @@ export default { | |||
method, | |||
data: { | |||
...extraIds, | |||
...this.dataForm, | |||
// ...this.dataForm, | |||
...dataForm, | |||
}, | |||
}) | |||
.then(({ data: res }) => { | |||
@@ -307,7 +307,7 @@ export default { | |||
} | |||
} else if (typeof cond === "object") { | |||
Object.keys(cond).forEach((key) => { | |||
this.cachedSearchCondition[key] = cond[key]; | |||
this.cachedSearchCondition[key] = payload[key] ? payload[key] : cond[key]; | |||
}); | |||
} | |||
}); | |||
@@ -10,11 +10,17 @@ export default function () { | |||
{ width: 160, prop: "orderCode", label: "主订单号" }, | |||
{ width: 60, prop: "orderCate", label: "子号" }, | |||
{ width: 160, prop: "code", label: "混料订单号" }, | |||
{ width: 60, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") }, | |||
{ | |||
width: 60, | |||
prop: "percent", | |||
label: "进度", | |||
filter: (val) => (val !== null && val !== undefined ? val + " %" : "-"), | |||
}, | |||
{ | |||
prop: "statusDictValue", | |||
label: "订单状态", | |||
filter: (val) => (val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝"][val] : "-"), | |||
filter: (val) => | |||
val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝"][val] : "-", | |||
}, | |||
// { prop: "startTime", label: "开始时间" }, | |||
// { prop: "shapeCode", label: "砖型" }, | |||
@@ -37,16 +43,26 @@ export default function () { | |||
subcomponent: TableOperaionComponent, | |||
options: [ | |||
{ | |||
name: "edit", label: "编辑", emitFull: true, icon: 'edit-outline', enable: injectData => { | |||
const v = injectData.statusDictValue | |||
if (v && +v === 1) return true | |||
return false | |||
} | |||
name: "edit", | |||
label: "编辑", | |||
emitFull: true, | |||
icon: "edit-outline", | |||
enable: (injectData) => { | |||
const v = injectData.statusDictValue; | |||
if (v && +v === 1) return true; | |||
return false; | |||
}, | |||
}, | |||
{ name: "view-batch", label: "查看批次", color: "#ff8000", toRouter: 'pms-blenderBatch', icon: 'document-copy' }, // 路由跳转至 pms-blenderBatch | |||
{ name: "detach", label: "下发", color: "#099", icon: 'bottom-right' }, | |||
{ name: "start-blender", label: "开始", color: "#0b58ff", icon: 'video-play' }, | |||
{ name: "pause-blender", label: "暂停", color: "#f10000", icon: 'video-pause' }, | |||
{ | |||
name: "view-batch", | |||
label: "查看批次", | |||
color: "#ff8000", | |||
toRouter: "pms-blenderBatch", | |||
icon: "document-copy", | |||
}, // 路由跳转至 pms-blenderBatch | |||
{ name: "detach", label: "下发", color: "#099", icon: "bottom-right" }, | |||
{ name: "start-blender", label: "开始", color: "#0b58ff", icon: "video-play" }, | |||
{ name: "pause-blender", label: "暂停", color: "#f10000", icon: "video-pause" }, | |||
], | |||
}, | |||
]; | |||
@@ -79,6 +95,26 @@ export default function () { | |||
// placeholder: "请输入配方号", | |||
// }, | |||
// }, | |||
{ | |||
prop: "viewType", | |||
label: "状态", | |||
select: [ | |||
{ value: 0, label: "未结束" }, | |||
{ value: 1, label: "结束" }, | |||
{ value: 2, label: "全部" }, | |||
], | |||
default: { value: 0 }, | |||
}, | |||
{ | |||
prop: "blenderId", | |||
label: "混料机", | |||
select: [ | |||
{ value: 3, label: "M1" }, | |||
{ value: 4, label: "M2" }, | |||
{ value: null, label: "全部" }, | |||
], | |||
default: { value: null }, | |||
}, | |||
{ | |||
button: { | |||
type: "primary", | |||
@@ -100,8 +136,8 @@ export default function () { | |||
[ | |||
{ | |||
forceDisabled: true, | |||
prop: 'code', | |||
label: '混料订单号' | |||
prop: "code", | |||
label: "混料订单号", | |||
}, | |||
], | |||
[ | |||
@@ -110,10 +146,11 @@ export default function () { | |||
label: "配方", | |||
prop: "bomId", | |||
options: [], | |||
optionLabelProp: 'code', | |||
optionLabelProp: "code", | |||
/** ====== */ | |||
fetchData: (bomCode) => this.$http.get('/pms/bom/pageVersion', { params: { key: bomCode, limit: 999, page: 1 } }), | |||
fetchDataParam: 'bomCode', | |||
fetchData: (bomCode) => | |||
this.$http.get("/pms/bom/pageVersion", { params: { key: bomCode, limit: 999, page: 1 } }), | |||
fetchDataParam: "bomCode", | |||
delayRequest: true, | |||
/** ====== */ | |||
rules: { required: true, message: "必填项不能为空", trigger: "blur" }, | |||
@@ -126,8 +163,8 @@ export default function () { | |||
label: "混料机", | |||
prop: "blender", | |||
options: [], | |||
optionLabelProp: 'code', | |||
fetchData: () => this.$http.get('/pms/equipment/list', { params: { workSequenceName: '混料工序' } }), | |||
optionLabelProp: "code", | |||
fetchData: () => this.$http.get("/pms/equipment/list", { params: { workSequenceName: "混料工序" } }), | |||
rules: { required: true, message: "必填项不能为空", trigger: "blur" }, | |||
elparams: { clearable: true, filterable: true, placeholder: "请选择混料机" }, | |||
}, | |||
@@ -137,7 +174,7 @@ export default function () { | |||
{ name: "add", label: "保存", type: "primary", permission: "", showOnEdit: false }, | |||
{ name: "update", label: "更新", type: "primary", permission: "", showOnEdit: true }, | |||
// { name: "reset", label: "重置", type: "warning", showAlways: true }, | |||
] | |||
], | |||
}, | |||
}; | |||
@@ -281,7 +318,7 @@ export default function () { | |||
pauseBlender: "/pms/trans/blenderPause", | |||
startBlender: "/pms/trans/blenderStart", | |||
pageIsPostApi: true, // 使用post接口来获取page数据,极少用,目前基本上只有工艺管理模块里在用 | |||
changeBlender: '/pms/order/changeBlender' | |||
changeBlender: "/pms/order/changeBlender", | |||
// subase: "/pms/equipmentTechParam", | |||
// subpage: "/pms/equipmentTechParam/page", | |||
// copyUrl: "/pms/equipmentTech/copy", | |||
@@ -4,8 +4,7 @@ | |||
:table-config="tableConfig" | |||
:head-config="headFormConfigs" | |||
:dialog-configs="dialogConfigs" | |||
:list-query-extra="[]" | |||
/> | |||
:list-query-extra="[{ blenderId: null }, { viewType: 0 }]" /> | |||
</template> | |||
<script> | |||
@@ -51,6 +51,16 @@ export default function () { | |||
placeholder: "请输入主订单子号查询", | |||
}, | |||
}, | |||
{ | |||
prop: "viewType", | |||
label: "状态", | |||
select: [ | |||
{ value: 0, label: "未结束" }, | |||
{ value: 1, label: "结束" }, | |||
{ value: 2, label: "全部" }, | |||
], | |||
default: { value: 0 }, | |||
}, | |||
// { | |||
// prop: "bom", | |||
// label: "配方号", | |||
@@ -11,7 +11,7 @@ export default function () { | |||
{ width: 60, prop: "orderCate", label: "子号" }, | |||
{ width: 160, prop: "code", label: "压制订单号" }, | |||
{ width: 60, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") }, | |||
{ prop: "statusDictValue", label: "订单状态", filter: (val) => (val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝"][val] : "-"), }, | |||
{ prop: "statusDictValue", label: "订单状态", filter: (val) => (val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝", "已下发"][val] : "-"), }, | |||
{ prop: "startTime", label: "开始时间" }, | |||
{ width: 100, prop: "shapeCode", label: "砖型" }, | |||
{ prop: "pressCode", label: "压机" }, | |||
@@ -54,6 +54,26 @@ export default function () { | |||
placeholder: "请输入主订单子号查询", | |||
}, | |||
}, | |||
{ | |||
prop: "viewType", | |||
label: "状态", | |||
select: [ | |||
{ value: 0, label: "未结束" }, | |||
{ value: 1, label: "结束" }, | |||
{ value: 2, label: "全部" }, | |||
], | |||
default: { value: 0 }, | |||
}, | |||
{ | |||
prop: "pressId", | |||
label: "压机", | |||
select: [ | |||
{ value: 1, label: "P1" }, | |||
{ value: 2, label: "P2" }, | |||
{ value: null, label: "全部" }, | |||
], | |||
default: { value: null }, | |||
}, | |||
// { | |||
// prop: "bom", | |||
// label: "配方号", | |||
@@ -9,8 +9,13 @@ export default function () { | |||
// { prop: "kilnCode", label: "窑炉" }, | |||
{ width: 120, prop: "orderCode", label: "主订单号" }, | |||
{ width: 60, prop: "orderCate", label: "子号" }, | |||
{ width: 210, prop: "code", label: "检测包装订单号" }, | |||
{ width: 60, prop: "percent1", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") }, | |||
{ /** width: 210, **/ prop: "code", label: "检测包装订单号" }, | |||
{ | |||
width: 90, | |||
prop: "percent1", | |||
label: "进度", | |||
filter: (val) => (val !== null && val !== undefined ? val + " %" : "-"), | |||
}, | |||
// { | |||
// prop: "statusDictValue", | |||
// label: "订单状态", | |||
@@ -23,7 +28,7 @@ export default function () { | |||
{ width: 120, prop: "qty1Complete", label: "完成量" }, | |||
{ width: 120, prop: "goodqty1", label: "检测合格量" }, | |||
{ width: 120, prop: "badqty1", label: "检测不合格量" }, | |||
{ width: 160, prop: "createTime", label: "添加时间", filter: timeFilter }, | |||
{ /** width: 160, */ prop: "createTime", label: "添加时间", filter: timeFilter }, | |||
// { width: 120, prop: "qty2", label: "包装要求数量" }, | |||
// { width: 120, prop: "qty2Complete", label: "包装完成数量" }, | |||
// { prop: "percent2", label: "包装进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") }, | |||
@@ -60,6 +65,16 @@ export default function () { | |||
placeholder: "请输入主订单子号查询", | |||
}, | |||
}, | |||
{ | |||
prop: "viewType", | |||
label: "状态", | |||
select: [ | |||
{ value: 0, label: "未结束" }, | |||
{ value: 1, label: "结束" }, | |||
{ value: 2, label: "全部" }, | |||
], | |||
default: { value: 0 }, | |||
}, | |||
// { | |||
// prop: "bom", | |||
// label: "配方号", | |||
@@ -75,6 +75,7 @@ export default function () { | |||
extraIds: { wsId: 2 }, // 工艺管理里面的相关模块的 dialogWithMenu 需要额外的工序 id | |||
menu: [{ name: "压制工艺", key: 'info' }, { name: "工艺参数", key: 'attr', onlyEditMode: true }], | |||
form: { | |||
duplicate: true, // 是否复制 dataForm,会造成: 展示时显示的是 dataForm ,提交时提交 dataFrom__duplicate | |||
rows: [ | |||
[ | |||
// { | |||