@@ -27,7 +27,12 @@ | |||
v-for="item in opt.select" | |||
:key="item.value + Math.random().toString()" | |||
:label="item.label" | |||
:value="item.value" /> | |||
:value="item.value"> | |||
<span>{{ item.label }}</span> | |||
<span v-if="opt.customLabel" style="display: inline-clock; margin-left: 12px; font-size: 0.9em"> | |||
{{ item[opt.customLabel] || "无" }} | |||
</span> | |||
</el-option> | |||
</el-select> | |||
<el-date-picker | |||
v-if="opt.timerange" | |||
@@ -112,10 +117,16 @@ export default { | |||
this.$set( | |||
field, | |||
"select", | |||
res.data.list.map((item) => ({ | |||
label: optionLabel ? item[optionLabel] : item.name, | |||
value: optionValue ? item[optionValue] : item.id, | |||
})) | |||
"customLabel" in field | |||
? res.data.list.map((item) => ({ | |||
label: optionLabel ? item[optionLabel] : item.name, | |||
value: optionValue ? item[optionValue] : item.id, | |||
[field.customLabel]: item[field.customLabel], | |||
})) | |||
: res.data.list.map((item) => ({ | |||
label: optionLabel ? item[optionLabel] : item.name, | |||
value: optionValue ? item[optionValue] : item.id, | |||
})) | |||
); | |||
} | |||
} else { | |||
@@ -1,5 +1,8 @@ | |||
<template> | |||
<el-dialog | |||
v-loading='loadingStatus' | |||
element-loading-text="处理中,请耐心等待..." | |||
element-loading-background="rgba(0,0,0,0.1)" | |||
class="dialog-just-form" | |||
:visible="visible" | |||
@close="handleClose" | |||
@@ -15,6 +18,7 @@ | |||
:show-file-list="false" | |||
:on-error="handleError" | |||
:on-success="handleSuccess" | |||
:on-progress="handleUploading" | |||
:before-upload="handleBeforeUploadCheck"> | |||
<i class="el-icon-upload"></i> | |||
<div class="el-upload__text"> | |||
@@ -110,6 +114,10 @@ export default { | |||
// 上传前检查文件大小: Boolean | |||
}, | |||
handleUploading() { | |||
this.loadingStatus = true | |||
}, | |||
handleBeforeUploadCheck(file) { | |||
if (typeof file !== "object") return false; | |||
if (!("name" in file) || !("type" in file)) return false; | |||
@@ -129,7 +137,7 @@ export default { | |||
handleSuccess(response, file, fileList) { | |||
console.log("success response", response); | |||
this.loadingStatus = false | |||
try { | |||
if ("code" in response && response.code === 500) { | |||
this.$message({ | |||
@@ -168,6 +176,7 @@ export default { | |||
}, | |||
handleError(err, file, fileList) { | |||
this.loadingStatus = false | |||
console.log("err", err); | |||
}, | |||
@@ -1,6 +1,6 @@ | |||
<template> | |||
<div class="overlay-view"> | |||
<h1>请稍后......</h1> | |||
<h1>请稍后{{dot}}</h1> | |||
</div> | |||
</template> | |||
@@ -9,15 +9,24 @@ export default { | |||
name: "OverlayView", | |||
props: {}, | |||
data() { | |||
return {}; | |||
return { | |||
dot: '.', | |||
timer: null | |||
}; | |||
}, | |||
mounted() { | |||
// | |||
this.timer = setInterval(() => { | |||
this.dot = this.dot.length > 5 ? '.' : this.dot + '.' | |||
}, 600); | |||
// 禁止页面滚动 | |||
document.body.style.overflow = 'hidden' | |||
document.body.style.overflow = "hidden"; | |||
}, | |||
beforeDestroy() { | |||
document.body.style.overflow = 'unset' | |||
} | |||
if (this.timer) clearInterval(this.timer) | |||
document.body.style.overflow = "unset"; | |||
}, | |||
methods: {}, | |||
}; | |||
</script> | |||
@@ -30,16 +39,17 @@ export default { | |||
top: 0; | |||
left: 0; | |||
z-index: 1000000; | |||
background: rgba(0, 0, 0, 0.1); | |||
} | |||
.overlay-view h1 { | |||
position: absolute; | |||
top: 50%; | |||
top: 40%; | |||
left: 50%; | |||
font-size: 36px; | |||
font-weight: bold; | |||
letter-spacing: 10px; | |||
color: #cccc; | |||
color: #777c; | |||
user-select: none; | |||
} | |||
</style> |
@@ -416,31 +416,46 @@ export default { | |||
} | |||
}); | |||
} | |||
// const dataview = new DataView(new ArrayBuffer(8)); | |||
// dataview.setBigInt64(0, data); | |||
// data = new Blob([dataview.buffer], { type: "application/octet-stream" }); | |||
case "sync": { | |||
// console.log("sync ", data, typeof data, BigInt(data).toString()); | |||
// 同步配方详情 | |||
return this.$http | |||
.post(this.urls.syncUrl, data, { headers: { "Content-Type": "application/json" } }) | |||
.then(({ data: res }) => { | |||
if (res.code === 0) { | |||
// data = BigInt(data).toString(2) | |||
return ( | |||
this.$http({ | |||
url: this.urls.syncUrl, | |||
method: "post", | |||
data, | |||
headers: { | |||
"Content-Type": "text/plain", | |||
}, | |||
}) | |||
// .post(this.urls.syncUrl, data: `id=${data}`, { headers: { "Content-Type": "text/plain", "data-id": data } }) | |||
.then(({ data: res }) => { | |||
if (res.code === 0) { | |||
this.$message({ | |||
message: "同步成功", | |||
type: "success", | |||
duration: 1500, | |||
onClose: () => { | |||
this.getList(); | |||
}, | |||
}); | |||
} else { | |||
throw new Error(res.msg); | |||
} | |||
}) | |||
.catch((errMsg) => { | |||
this.$message({ | |||
message: "同步成功", | |||
type: "success", | |||
message: "同步失败: " + errMsg, | |||
type: "error", | |||
duration: 1500, | |||
onClose: () => { | |||
this.getList(); | |||
}, | |||
}); | |||
} else { | |||
throw new Error(res.msg); | |||
} | |||
}) | |||
.catch((errMsg) => { | |||
this.$message({ | |||
message: "同步失败: " + errMsg, | |||
type: "error", | |||
duration: 1500, | |||
}); | |||
}); | |||
}) | |||
); | |||
} | |||
} | |||
}, | |||
@@ -336,6 +336,10 @@ export default { | |||
this.openDialog(data, true); | |||
break; | |||
} | |||
case 'toggle-attachment-dialog': { | |||
alert('查看附件') | |||
break; | |||
} | |||
case "view-blender-batch-details": { | |||
this.$router.push({ | |||
name: "pms-blenderBatchDetails", | |||
@@ -215,7 +215,7 @@ export default function () { | |||
urls: { | |||
base: "/pms/bom", | |||
page: "/pms/bom/pageVersion", | |||
syncUrl: "/pms/bom/bomSync", | |||
syncUrl: "/pms/trans/bomSync", | |||
copyUrl: "/pms/bom/copy", | |||
subase: "/pms/bomMaterial", | |||
subpage: "/pms/bomMaterial/page", | |||
@@ -43,6 +43,18 @@ export default function () { | |||
placeholder: "请输入窑车号", | |||
}, | |||
}, | |||
{ | |||
prop: 'orderId', | |||
label: '订单号', | |||
fieldOptionLabel: 'code', | |||
customLabel: 'cate', | |||
select: [], | |||
fn: () => this.$http.post("/pms/order/pageView", { page: 1, limit: 999 }), | |||
bind: { | |||
placeholder: '请选择订单号', | |||
filterable: true | |||
} | |||
}, | |||
{ | |||
button: { | |||
type: "primary", | |||
@@ -5,6 +5,7 @@ | |||
**/ | |||
--> | |||
<template> | |||
<!-- v-loading="overlayVisible" --> | |||
<section class="list-section-with-head"> | |||
<BaseSearchForm | |||
:id="$attrs.id" | |||
@@ -226,11 +227,12 @@ export default { | |||
} | |||
}) | |||
.catch((errMsg) => { | |||
// this.$message({ | |||
// message: errMsg, | |||
// type: "error", | |||
// duration: 2000, | |||
// }); | |||
console.log('ere...') | |||
this.$message({ | |||
message: errMsg, | |||
type: "error", | |||
duration: 2000, | |||
}); | |||
}); | |||
break; | |||
} | |||
@@ -332,7 +334,8 @@ export default { | |||
if (res.code === 0) { | |||
this.$message.success("删除成功!"); | |||
// 获取数据 | |||
if (currenPageListLength == 1) this.listQuery.page = this.listQuery.page > 1 ? this.listQuery.page - 1 : 1; | |||
if (currenPageListLength == 1) | |||
this.listQuery.page = this.listQuery.page > 1 ? this.listQuery.page - 1 : 1; | |||
this.getAList(Object.assign({}, this.listQuery, this.extraSearchConditions, this.params)); | |||
} | |||
}); | |||
@@ -101,7 +101,7 @@ export default { | |||
{ width: 80, prop: "orderCate", label: "订单子号" }, | |||
{ prop: "bomCode", label: "配方" }, | |||
{ prop: "shapeCode", label: "砖型" }, | |||
{ width: 80, prop: "qty", label: "订单数量" }, | |||
{ width: 80, prop: "qty", label: "数量" }, | |||
{ width: 72, prop: "goodqty", label: "合格数" }, | |||
{ width: 72, prop: "badqty", label: "废砖数" }, | |||
], | |||
@@ -14,6 +14,7 @@ export default function () { | |||
{ prop: "description", label: "长描述" }, | |||
{ prop: "shortDesc", label: "短描述" }, | |||
{ prop: "remark", label: "备注" }, | |||
{ prop: "toggle-attachment-dialog", label: "查看附件", actionName: 'toggle-attachment-dialog', buttonContent: '查看附件', subcomponent: TableTextComponent }, | |||
{ prop: "createTime", label: "添加时间", filter: timeFilter }, | |||
{ | |||
prop: "operations", | |||