update
Tento commit je obsažen v:
rodič
61ca7b82cd
revize
3c44fbc636
@ -34,6 +34,32 @@
|
||||
</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select
|
||||
v-if="opt.complexSelect"
|
||||
v-model="dataForm[opt.prop]"
|
||||
v-bind="opt.bind"
|
||||
clearable
|
||||
size="small"
|
||||
@keydown.enter.native.prevent="handleBtnClick('查询')">
|
||||
<el-option
|
||||
v-for="item in opt.complexSelect"
|
||||
:key="item.value + Math.random().toString()"
|
||||
:label="item.label"
|
||||
: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>
|
||||
<template v-if="opt.customLabels">
|
||||
<span
|
||||
v-for="(label, idx) in opt.customLabels"
|
||||
:key="Math.random()"
|
||||
style="display: inline-clock; margin-left: 12px; font-size: 0.9em">
|
||||
{{ item[label] || " - " }}
|
||||
</span>
|
||||
</template>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-date-picker
|
||||
v-if="opt.timerange"
|
||||
v-model="dataForm[opt.prop]"
|
||||
@ -103,20 +129,33 @@ export default {
|
||||
if (res.code === 0 && res.data) {
|
||||
// TODO: 此处需要随具体情况再做更新
|
||||
if ("list" in res.data) {
|
||||
this.$set(
|
||||
field,
|
||||
"select",
|
||||
"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,
|
||||
}))
|
||||
);
|
||||
const optionProp = "complexSelect" in field ? "complexSelect" : "select";
|
||||
let options = [];
|
||||
if (field.customLabel) {
|
||||
options = res.data.list.map((item) => ({
|
||||
label: optionLabel ? item[optionLabel] : item.name,
|
||||
value: optionValue ? item[optionValue] : item.id,
|
||||
[field.customLabel]: item[field.customLabel],
|
||||
}));
|
||||
} else if (field.customLabels) {
|
||||
options = res.data.list.map((item) => {
|
||||
let extraOptions = {};
|
||||
field.customLabels.forEach((label) => {
|
||||
extraOptions[label] = item[label];
|
||||
});
|
||||
return {
|
||||
label: optionLabel ? item[optionLabel] : item.name,
|
||||
value: optionValue ? item[optionValue] : item.id,
|
||||
...extraOptions,
|
||||
};
|
||||
});
|
||||
} else {
|
||||
options = res.data.list.map((item) => ({
|
||||
label: optionLabel ? item[optionLabel] : item.name,
|
||||
value: optionValue ? item[optionValue] : item.id,
|
||||
}));
|
||||
}
|
||||
this.$set(field, optionProp, options);
|
||||
}
|
||||
} else {
|
||||
this.$message({
|
||||
|
@ -9,7 +9,7 @@ export default function () {
|
||||
// { prop: "kilnCode", label: "窑炉" },
|
||||
{ width: 128, prop: "orderCode", label: "主订单号" },
|
||||
{ width: 60, prop: "orderCate", label: "子号" },
|
||||
{ width: 128, prop: "code", label: "混料订单号" },
|
||||
// { width: 128, prop: "code", label: "混料订单号" },
|
||||
{
|
||||
width: 80,
|
||||
prop: "percent",
|
||||
@ -25,7 +25,7 @@ export default function () {
|
||||
// { prop: "startTime", label: "开始时间" },
|
||||
// { prop: "shapeCode", label: "砖型" },
|
||||
{ prop: "bomCode", label: "配方" },
|
||||
{ prop: "bomName", label: "牌号" },
|
||||
{ width: 180, prop: "bomName", label: "牌号" },
|
||||
{ width: 60, prop: "ai", label: "版本" },
|
||||
{ width: 120, prop: "qty", label: "混料总量 [kg]" },
|
||||
{ width: 120, prop: "comqty", label: "已完成量 [kg]" },
|
||||
@ -40,7 +40,7 @@ export default function () {
|
||||
prop: "operations",
|
||||
name: "操作",
|
||||
fixed: "right",
|
||||
width: 190,
|
||||
width: 210,
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: [
|
||||
{
|
||||
|
@ -7,21 +7,21 @@ export default function () {
|
||||
const tableProps = [
|
||||
{ type: "index", label: "序号" },
|
||||
// { prop: "updateTime", label: "上料时间", filter: timeFilter },
|
||||
{ prop: "materialName", label: "原料" },
|
||||
{ width: 100, prop: "materialName", label: "原料" },
|
||||
// { prop: "material", label: "原料编码" },
|
||||
{ prop: "qty", label: "上料量" },
|
||||
{ prop: "siloName1", label: "上料料仓1" },
|
||||
{ prop: "siloName2", label: "上料料仓2" },
|
||||
{ prop: "siloName3", label: "上料料仓3" },
|
||||
{ prop: "startTime", label: "开始上料时间", filter: timeFilter },
|
||||
{ prop: "endTime", label: "结束上料时间", filter: timeFilter },
|
||||
{ prop: "silo1Change", label: "料仓1变化" },
|
||||
{ prop: "silo2Change", label: "料仓2变化" },
|
||||
{ prop: "silo3Change", label: "料仓3变化" },
|
||||
{ prop: "statusDictValue", label: "破碎作业", filter: (val) => ["正常停止", "废除"][val] ?? "-" },
|
||||
{ width: 90, prop: "qty", label: "上料量[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' },
|
||||
{ width: 100, prop: "siloName1", label: "上料料仓1" },
|
||||
{ width: 100, prop: "siloName2", label: "上料料仓2" },
|
||||
{ width: 100, prop: "siloName3", label: "上料料仓3" },
|
||||
{ width: 256, prop: "startTime", label: "开始上料时间", filter: timeFilter },
|
||||
{ width: 256, prop: "endTime", label: "结束上料时间", filter: timeFilter },
|
||||
{ width: 128, prop: "silo1Change", label: "料仓1变化[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' },
|
||||
{ width: 128, prop: "silo2Change", label: "料仓2变化[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' },
|
||||
{ width: 128, prop: "silo3Change", label: "料仓3变化[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' },
|
||||
// { width: 128, prop: "statusDictValue", label: "破碎作业", filter: (val) => ["正常停止", "废除"][val] ?? "-" },
|
||||
// { prop: "description", label: "描述" },
|
||||
{ prop: "remark", label: "备注" },
|
||||
{ prop: "createTime", label: "添加时间", filter: timeFilter },
|
||||
{ width: 128, prop: "remark", label: "备注" },
|
||||
// { width: 256, prop: "createTime", label: "添加时间", filter: timeFilter },
|
||||
{
|
||||
prop: "operations",
|
||||
name: "操作",
|
||||
|
@ -9,19 +9,19 @@ export default function () {
|
||||
// { prop: "updateTime", label: "上料时间", filter: timeFilter },
|
||||
{ prop: "materialName", label: "原料" },
|
||||
// { prop: "material", label: "原料编码" },
|
||||
{ prop: "qty", label: "计划上料量" },
|
||||
{ prop: "qty", label: "计划上料量[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' },
|
||||
{ prop: "siloName1", label: "上料料仓" },
|
||||
// { prop: "siloName2", label: "上料料仓2" },
|
||||
// { prop: "siloName3", label: "上料料仓3" },
|
||||
{ prop: "startTime", label: "开始上料时间", filter: timeFilter },
|
||||
{ prop: "endTime", label: "结束上料时间", filter: timeFilter },
|
||||
{ prop: "silo1Change", label: "料仓变化" },
|
||||
{ prop: "silo1Change", label: "料仓变化[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' },
|
||||
// { prop: "silo2Change", label: "料仓2变化" },
|
||||
// { prop: "silo3Change", label: "料仓3变化" },
|
||||
{ prop: "statusDictValue", label: "破碎作业", filter: (val) => ["正常停止", "废除"][val] ?? "-" },
|
||||
// { prop: "statusDictValue", label: "破碎作业", filter: (val) => ["正常停止", "废除"][val] ?? "-" },
|
||||
// { prop: "description", label: "描述" },
|
||||
{ prop: "remark", label: "备注" },
|
||||
{ prop: "createTime", label: "添加时间", filter: timeFilter },
|
||||
// { prop: "createTime", label: "添加时间", filter: timeFilter },
|
||||
{
|
||||
prop: "operations",
|
||||
name: "操作",
|
||||
@ -68,9 +68,11 @@ export default function () {
|
||||
prop: "material",
|
||||
label: "按原料搜索",
|
||||
// input: true,
|
||||
select: [],
|
||||
fieldOptionValue: "name", // 把料仓筛选条件的label改为展示code,而不是展示name
|
||||
complexSelect: [],
|
||||
fieldOptionLabel: 'code',
|
||||
fieldOptionValue: "code", // 把料仓筛选条件的label改为展示code,而不是展示name
|
||||
default: { value: "" },
|
||||
customLabels: ["description", "name"],
|
||||
fn: () => this.$http.get("/pms/material/page", { params: { page: 1, limit: 999 } }),
|
||||
bind: {
|
||||
placeholder: "请输入原料名",
|
||||
|
@ -110,7 +110,7 @@ export default function () {
|
||||
extraParams: ["techId", "key"],
|
||||
props: [
|
||||
{ prop: "name", label: "参数名称", isEditField: true },
|
||||
{ prop: "code", label: "参数编码", isEditField: true },
|
||||
// { prop: "code", label: "参数编码", isEditField: true },
|
||||
{ width: 80, prop: "value", label: "参数值", isEditField: true },
|
||||
{ prop: "description", label: "描述", isEditField: true },
|
||||
{
|
||||
@ -141,20 +141,24 @@ export default function () {
|
||||
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
|
||||
elparams: { placeholder: "请输入参数名称" },
|
||||
},
|
||||
{
|
||||
input: true,
|
||||
label: "参数编码",
|
||||
prop: "code",
|
||||
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
|
||||
elparams: { placeholder: "请输入参数编码" },
|
||||
},
|
||||
// {
|
||||
// input: true,
|
||||
// label: "参数编码",
|
||||
// prop: "code",
|
||||
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
|
||||
// elparams: { placeholder: "请输入参数编码" },
|
||||
// },
|
||||
],
|
||||
[
|
||||
{ input: true, label: "参数值上限", prop: "valueTop", elparams: { placeholder: "请输入参数值上限" } }
|
||||
],
|
||||
[
|
||||
{ input: true, label: "参数值上限", prop: "valueTop", elparams: { placeholder: "请输入参数值上限" } },
|
||||
{ input: true, label: "参数值下限", prop: "valueFloor", elparams: { placeholder: "请输入参数值下限" } },
|
||||
],
|
||||
[
|
||||
{ input: true, label: "参数值", prop: "value", elparams: { placeholder: "请输入参数值" } },
|
||||
{ input: true, label: "参数值", prop: "value", elparams: { placeholder: "请输入参数值" } }
|
||||
],
|
||||
[
|
||||
{
|
||||
input: true,
|
||||
label: "描述",
|
||||
|
@ -6,20 +6,21 @@ import { timeFilter } from "@/utils/filters";
|
||||
export default function () {
|
||||
const tableProps = [
|
||||
{ type: "index", label: "序号" },
|
||||
{ prop: "kilnCode", label: "窑炉" },
|
||||
{ width: 160, prop: "orderCode", label: "主订单号" },
|
||||
{ width: 60, prop: "orderCate", label: "子号" },
|
||||
{ width: 160, prop: "code", label: "烧成订单号" },
|
||||
{ prop: "kilnCode", label: "窑炉" },
|
||||
{ width: 60, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
// { width: 160, prop: "code", label: "烧成订单号" },
|
||||
// { prop: "statusDictValue", label: "订单状态", filter: (val) => (val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝"][val] : "-"), },
|
||||
// { prop: "startTime", label: "开始时间" },
|
||||
{ prop: "bomCode", label: "配方" },
|
||||
{ width: 180, prop: "bomName", label: "牌号" },
|
||||
{ prop: 'sapParam6', label: '烧成温度' },
|
||||
{ prop: 'sapParam7', label: '保温时间' },
|
||||
{ width: 80, prop: "ai", label: "版本号" },
|
||||
{ width: 80, prop: "qty", label: "生产量" },
|
||||
{ prop: "qtyComplete", label: "完成量" },
|
||||
{ width: 160, prop: "createTime", label: "添加时间", filter: timeFilter },
|
||||
// { prop: "remark", label: "备注" },
|
||||
// { prop: 'version', label: '配方号' },
|
||||
// { prop: 'status', label: '状态', subcomponent: StatusComponent }, // subcomponent
|
||||
// { prop: "description", label: "详情", subcomponent: TableTextComponent },
|
||||
// {
|
||||
|
@ -2,28 +2,52 @@
|
||||
<div class="storage-box" :style="{ outlineColor: color }">
|
||||
<div
|
||||
class="storage-title"
|
||||
style="margin-bottom: 10px; padding-bottom: 12px; text-align: center; font-weight: bold; font-size: 1.125em; border-bottom: 1px solid #ccc3"
|
||||
>
|
||||
<span style="display: inline-block; color: white; padding: 6px 12px; border-radius: 6px 20px" :style="{ background: color }">
|
||||
style="
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 12px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 1.125em;
|
||||
border-bottom: 1px solid #ccc3;
|
||||
">
|
||||
<span
|
||||
style="display: inline-block; color: white; padding: 6px 12px; border-radius: 6px 20px"
|
||||
:style="{ background: color }">
|
||||
{{ storage }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="storage-body" style="height: 120px; display: flex">
|
||||
<div class="storage-box__bg" style="height: 100%; width: 48px; margin-right: 12px; border-radius: 4px; overflow: hidden">
|
||||
<div
|
||||
class="storage-box__bg"
|
||||
style="height: 100%; width: 48px; margin-right: 12px; border-radius: 4px; overflow: hidden">
|
||||
<div
|
||||
class="storage-box__inner"
|
||||
style="position: absolute; bottom: 0; left: 0; height: 0; width: 100%; font-size: 1.125rem; text-align: center;"
|
||||
:style="{ background: color, height: computedRatio + '%', color: computedRatio > 20 ? 'white' : '#ccc' }"
|
||||
>
|
||||
<span style="height: 100%; display: flex; flex-direction: column; justify-content: flex-end;">{{ computedRatio + '%' }}</span>
|
||||
style="
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 0;
|
||||
width: 100%;
|
||||
font-size: 1.125rem;
|
||||
text-align: center;
|
||||
"
|
||||
:style="{
|
||||
background: color,
|
||||
height: computedRatio + '%',
|
||||
color: computedRatio > 20 ? 'white' : '#ccc',
|
||||
}">
|
||||
<span style="height: 100%; display: flex; flex-direction: column; justify-content: flex-end">
|
||||
{{ computedRatio + "%" }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: flex; flex-direction: column; min-width: 128px; justify-content: space-between">
|
||||
<div style="font-size: 1.125em; line-height: 2.5; text-align: right">{{ material }}</div>
|
||||
<div style="font-size: 1.5em; line-height: 1.25; text-align: right; font-weight: bold">
|
||||
{{ qty }} <span style="color: #777; font-weight: normal; font-size: 1rem">{{ computedUnit }}</span>
|
||||
{{ qty }}
|
||||
<span style="color: #777; font-weight: normal; font-size: 1rem">{{ computedUnit }}</span>
|
||||
</div>
|
||||
|
||||
<!-- <div class="btn-group" style="text-align: right">
|
||||
@ -76,12 +100,12 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
computedUnit() {
|
||||
if (!this.unitValue) return "存量";
|
||||
return this.unitList(this.unitValue) + " 存量";
|
||||
if (!this.unitValue) return "存量[kg]";
|
||||
return this.unitList(this.unitValue) + " 存量[kg]";
|
||||
},
|
||||
computedRatio() {
|
||||
return this.ratio ? this.ratio.toFixed(2) * 100 : 0
|
||||
}
|
||||
return this.ratio ? this.ratio.toFixed(2) * 100 : 0;
|
||||
},
|
||||
},
|
||||
created() {},
|
||||
mounted() {},
|
||||
|
@ -9,7 +9,7 @@ export default function () {
|
||||
// { prop: "kilnCode", label: "窑炉" },
|
||||
{ width: 160, prop: "orderCode", label: "主订单号" },
|
||||
{ width: 60, prop: "orderCate", label: "子号" },
|
||||
{ width: 160, prop: "code", label: "压制订单号" },
|
||||
// { width: 160, prop: "code", label: "压制订单号" },
|
||||
{
|
||||
width: 90,
|
||||
prop: "percent",
|
||||
@ -26,6 +26,7 @@ export default function () {
|
||||
},
|
||||
{ width: 160, prop: "startTime", label: "开始时间", filter: timeFilter },
|
||||
{ width: 100, prop: "shapeCode", label: "砖型" },
|
||||
{ width: 180, prop: "bomName", label: "牌号" },
|
||||
{ prop: "pressCode", label: "压机" },
|
||||
{ width: 80, prop: "qty", label: "生产量" },
|
||||
{ prop: "qtyComplete", label: "完成量" },
|
||||
|
@ -7,9 +7,9 @@ export default function () {
|
||||
const tableProps = [
|
||||
{ type: "index", label: "序号" },
|
||||
// { prop: "kilnCode", label: "窑炉" },
|
||||
{ width: 120, prop: "orderCode", label: "主订单号" },
|
||||
{ width: 60, prop: "orderCate", label: "子号" },
|
||||
{ /** width: 210, **/ prop: "code", label: "检测包装订单号" },
|
||||
{ prop: "orderCode", label: "主订单号" },
|
||||
{ prop: "orderCate", label: "子号" },
|
||||
// { /** width: 210, **/ prop: "code", label: "检测包装订单号" },
|
||||
{
|
||||
width: 90,
|
||||
prop: "percent1",
|
||||
@ -22,8 +22,8 @@ export default function () {
|
||||
// filter: (val) => (val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝", "已下发"][val] : "-"),
|
||||
// },
|
||||
// { width: 120, prop: "startTime", label: "开始时间" },
|
||||
{ width: 120, prop: "shapeCode", label: "砖型" },
|
||||
{ width: 90, prop: "packTech", label: "版本号" },
|
||||
{ prop: "shapeCode", label: "砖型" },
|
||||
// { width: 90, prop: "packTech", label: "版本号" },
|
||||
{ width: 90, prop: "qty1", label: "检测量" },
|
||||
{ width: 120, prop: "qty1Complete", label: "完成量" },
|
||||
{ width: 120, prop: "goodqty1", label: "检测合格量" },
|
||||
|
@ -20,9 +20,9 @@ export default function () {
|
||||
fixed: "right",
|
||||
width: 128,
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: [
|
||||
{ name: "copy", label: "复制", icon: "copy-document" },
|
||||
{ name: "edit", label: "编辑", icon: "edit-outline" },
|
||||
options: [
|
||||
{ name: "copy", label: "复制", icon: "copy-document" },
|
||||
{ name: "edit", label: "编辑", icon: "edit-outline" },
|
||||
{ name: "delete", icon: "delete", label: "删除", promptField: 'code', emitFull: true, permission: "pms:testingStep:delete" }
|
||||
],
|
||||
},
|
||||
@ -113,11 +113,11 @@ export default function () {
|
||||
},
|
||||
],
|
||||
// [
|
||||
// {
|
||||
// forceDisabled: true,
|
||||
// prop: 'shapeCode',
|
||||
// label: '当前砖型'
|
||||
// },
|
||||
// {
|
||||
// forceDisabled: true,
|
||||
// prop: 'shapeCode',
|
||||
// label: '当前砖型'
|
||||
// },
|
||||
// ],
|
||||
// {
|
||||
// select: true,
|
||||
@ -142,7 +142,7 @@ export default function () {
|
||||
// { type: 'index', label: '序号' },
|
||||
// { prop: "createTime", label: "添加时间", filter: timeFilter },
|
||||
{ prop: "name", label: "参数名称", isEditField: true },
|
||||
{ prop: "code", label: "参数编码", isEditField: true },
|
||||
// { prop: "code", label: "参数编码", isEditField: true },
|
||||
// { prop: "specifications", label: "规格", isEditField: true },
|
||||
{ width: 80, prop: "value", label: "参数值", isEditField: true },
|
||||
// { prop: "valueFloor", label: "参数值下限", isEditField: true },
|
||||
@ -176,20 +176,24 @@ export default function () {
|
||||
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
|
||||
elparams: { placeholder: "请输入参数名称" },
|
||||
},
|
||||
{
|
||||
input: true,
|
||||
label: "参数编码",
|
||||
prop: "code",
|
||||
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
|
||||
elparams: { placeholder: "请输入参数编码" },
|
||||
},
|
||||
// {
|
||||
// input: true,
|
||||
// label: "参数编码",
|
||||
// prop: "code",
|
||||
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
|
||||
// elparams: { placeholder: "请输入参数编码" },
|
||||
// },
|
||||
],
|
||||
[
|
||||
{ input: true, label: "参数值上限", prop: "valueTop", elparams: { placeholder: "请输入参数值上限" } },
|
||||
],
|
||||
[
|
||||
{ input: true, label: "参数值下限", prop: "valueFloor", elparams: { placeholder: "请输入参数值下限" } },
|
||||
],
|
||||
[
|
||||
{ input: true, label: "参数值", prop: "value", elparams: { placeholder: "请输入参数值" } },
|
||||
],
|
||||
[
|
||||
{
|
||||
input: true,
|
||||
label: "描述",
|
||||
|
Načítá se…
Odkázat v novém úkolu
Zablokovat Uživatele