update 2023.4.10
This commit is contained in:
parent
45fe1d5d3c
commit
9773d2a9ae
@ -49,6 +49,7 @@
|
||||
:tooltip-effect="head.tooltipEffect || 'light'"
|
||||
filter-placement="top"
|
||||
:align="head.align || null"
|
||||
:class-name="head.className ?? 'initial-column-class'"
|
||||
v-bind="head.more"
|
||||
:show-overflow-tooltip="head.showOverflowTooltip || !(head.prop === 'operations')"
|
||||
>
|
||||
@ -133,4 +134,17 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
<style scoped>
|
||||
.base-list-table >>> .initial-column-class {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.base-list-table >>> .initial-column-class .cell {
|
||||
text-shadow: unset;
|
||||
}
|
||||
|
||||
.base-list-table >>> .no-padding-class:not(th) .cell {
|
||||
line-height: 1.75;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
class="dialog-just-form"
|
||||
class="dialog-with-menu"
|
||||
style="padding: 40px"
|
||||
:fullscreen="fullscreen"
|
||||
:visible="visible"
|
||||
@ -113,7 +113,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.dialog-just-form >>> .el-dialog__body {
|
||||
.dialog-with-menu >>> .el-dialog__body {
|
||||
padding-top: 40px !important;
|
||||
padding-bottom: 40px !important;
|
||||
/* padding-top: 0 !important;
|
||||
@ -130,20 +130,21 @@ export default {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.dialog-just-form >>> .el-dialog__header {
|
||||
.dialog-with-menu >>> .el-dialog__header {
|
||||
padding: 0;
|
||||
/* background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), white); */
|
||||
}
|
||||
.dialog-just-form >>> .el-dialog__body {
|
||||
.dialog-with-menu >>> .el-dialog__body {
|
||||
height: calc(100% - 72px);
|
||||
}
|
||||
|
||||
.dialog-just-form >>> .el-tabs__content {
|
||||
.dialog-with-menu >>> .el-tabs__content {
|
||||
height: calc(100% - 32px);
|
||||
overflow-y: auto;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.dialog-just-form >>> .el-tabs {
|
||||
.dialog-with-menu >>> .el-tabs {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
@ -6,43 +6,20 @@
|
||||
-->
|
||||
<template>
|
||||
<section class="list-section-with-head">
|
||||
<BaseSearchForm :id="$attrs.id" :head-title="headConfig.title" :head-config="{ fields: headConfig.form }" @btn-click="handleBtnClick" />
|
||||
<BaseListTable
|
||||
:key="headConfig.title"
|
||||
v-loading="tableLoading"
|
||||
:table-config="tableConfig.table"
|
||||
:column-config="tableConfig.column"
|
||||
:table-data="dataList"
|
||||
@operate-event="handleOperate"
|
||||
:refresh-layout-key="refreshLayoutKey"
|
||||
/>
|
||||
<BaseSearchForm :id="$attrs.id" :head-title="headConfig.title" :head-config="{ fields: headConfig.form }"
|
||||
@btn-click="handleBtnClick" />
|
||||
<BaseListTable :key="headConfig.title" v-loading="tableLoading" :table-config="tableConfig.table"
|
||||
:column-config="tableConfig.column" :table-data="dataList" @operate-event="handleOperate"
|
||||
:refresh-layout-key="refreshLayoutKey" />
|
||||
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handlePageChange"
|
||||
:current-page.sync="listQuery.page"
|
||||
:page-sizes="[1, 5, 10, 20]"
|
||||
:page-size="listQuery.limit"
|
||||
:total="totalPage"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
></el-pagination>
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handlePageChange" :current-page.sync="listQuery.page"
|
||||
:page-sizes="[1, 5, 10, 20]" :page-size="listQuery.limit" :total="totalPage"
|
||||
layout="total, sizes, prev, pager, next, jumper"></el-pagination>
|
||||
|
||||
<DialogJustForm
|
||||
modal-append-to-body
|
||||
ref="order-dialog"
|
||||
v-if="renderDialog"
|
||||
fullscreen
|
||||
:configs="dialogConfig"
|
||||
@destroy-dialog="renderDialog = false"
|
||||
/>
|
||||
<DialogWithMenu
|
||||
modal-append-to-body
|
||||
ref="menu-dialog"
|
||||
v-if="renderMenuDialog"
|
||||
fullscreen
|
||||
:configs="dialogConfig"
|
||||
@destroy-dialog="renderMenuDialog = false"
|
||||
/>
|
||||
<DialogJustForm modal-append-to-body ref="order-dialog" v-if="renderDialog" fullscreen :configs="dialogConfig"
|
||||
@destroy-dialog="renderDialog = false" />
|
||||
<DialogWithMenu modal-append-to-body ref="menu-dialog" v-if="renderMenuDialog" fullscreen :configs="dialogConfig"
|
||||
@destroy-dialog="renderMenuDialog = false" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
@ -165,12 +142,20 @@ export default {
|
||||
switch (type) {
|
||||
// 确认订单
|
||||
case "confirm-order": {
|
||||
this.$http
|
||||
|
||||
this.$confirm(`是否要确认订单?`, "提示", {
|
||||
confirmButtonText: "是",
|
||||
cancelButtonText: "否",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
return this.$http
|
||||
.post("/pms/order/confirm", data, {
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
})
|
||||
.then(({ data: res }) => {
|
||||
if (res.code === 0) {
|
||||
// success
|
||||
@ -189,11 +174,11 @@ export default {
|
||||
}
|
||||
})
|
||||
.catch((errMsg) => {
|
||||
this.$message({
|
||||
message: errMsg,
|
||||
type: "error",
|
||||
duration: 2000,
|
||||
});
|
||||
// this.$message({
|
||||
// message: errMsg,
|
||||
// type: "error",
|
||||
// duration: 2000,
|
||||
// });
|
||||
});
|
||||
break;
|
||||
}
|
||||
@ -201,12 +186,19 @@ export default {
|
||||
case "destroy-order":
|
||||
// 结束订单
|
||||
case "end-order": {
|
||||
this.$http
|
||||
this.$confirm(`确定${type === 'end-order' ? '结束订单' : '废除订单'}?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
return this.$http
|
||||
.post("/pms/order/end", data, {
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
})
|
||||
.then(({ data: res }) => {
|
||||
if (res.code === 0) {
|
||||
// success
|
||||
@ -225,11 +217,11 @@ export default {
|
||||
}
|
||||
})
|
||||
.catch((errMsg) => {
|
||||
this.$message({
|
||||
message: errMsg,
|
||||
type: "error",
|
||||
duration: 2000,
|
||||
});
|
||||
// this.$message({
|
||||
// message: errMsg,
|
||||
// type: "error",
|
||||
// duration: 2000,
|
||||
// });
|
||||
});
|
||||
break;
|
||||
}
|
||||
@ -288,7 +280,7 @@ export default {
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch((err) => {});
|
||||
.catch((err) => { });
|
||||
}
|
||||
case "edit": {
|
||||
this.openDialog(data); /** data is ==> id */
|
||||
@ -358,6 +350,7 @@ export default {
|
||||
|
||||
openMenuDialog(row, detail) {
|
||||
this.renderMenuDialog = true;
|
||||
console.log("this.renderMenuDialog = true;", row, detail)
|
||||
this.$nextTick(() => {
|
||||
this.$refs["menu-dialog"].init(/** some args... */ row, detail);
|
||||
});
|
||||
|
@ -17,8 +17,7 @@
|
||||
:page-sizes="[1, 5, 10, 20]"
|
||||
:page-size="listQuery.limit"
|
||||
:total="totalPage"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
style="text-align: center;"
|
||||
layout="total, prev, pager, next, jumper"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -127,7 +127,7 @@ export default {
|
||||
const unwatch = this.$watch(
|
||||
() => this.dataForm[col.prop],
|
||||
(newVal) => {
|
||||
const chosenObject = this.cachedList[col.prop].find((i) => i.id === newVal);
|
||||
const chosenObject = this.cachedList[col.prop]?.find((i) => i.id === newVal);
|
||||
if (chosenObject) {
|
||||
this.$set(this.dataForm, item[0], chosenObject[item[1]]);
|
||||
}
|
||||
|
@ -1,61 +1,40 @@
|
||||
<template>
|
||||
<div class="suborder-detail">
|
||||
<!-- 四分表格/田字格 -->
|
||||
<el-row :gutter="20">
|
||||
<el-col style="margin-bottom: 12px">
|
||||
<!-- 混料订单 -->
|
||||
<TablePagi
|
||||
v-if="order !== null"
|
||||
:extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/blenderOrder/pageView' }"
|
||||
:page-is-post="true"
|
||||
:table-config="{
|
||||
<TablePagi v-if="order !== null" :extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/blenderOrder/pageView' }" :page-is-post="true" :table-config="{
|
||||
table: null,
|
||||
column: blenderTableProps,
|
||||
}"
|
||||
/>
|
||||
}" />
|
||||
</el-col>
|
||||
<el-col style="margin-bottom: 12px">
|
||||
<!-- 压制订单 -->
|
||||
<TablePagi
|
||||
v-if="order !== null"
|
||||
:extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/pressOrder/pageView' }"
|
||||
:page-is-post="true"
|
||||
:table-config="{
|
||||
<TablePagi v-if="order !== null" :extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/pressOrder/pageView' }" :page-is-post="true" :table-config="{
|
||||
table: null,
|
||||
column: pressTableProps,
|
||||
}"
|
||||
/>
|
||||
}" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col style="margin-bottom: 12px">
|
||||
<!-- 窑炉订单 -->
|
||||
<TablePagi
|
||||
v-if="order !== null"
|
||||
:extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/kilnOrder/pageView' }"
|
||||
:page-is-post="true"
|
||||
:table-config="{
|
||||
<TablePagi v-if="order !== null" :extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/kilnOrder/pageView' }" :page-is-post="true" :table-config="{
|
||||
table: null,
|
||||
column: kilnTableProps,
|
||||
}"
|
||||
/>
|
||||
}" />
|
||||
</el-col>
|
||||
<el-col style="margin-bottom: 12px">
|
||||
<!-- 检测包装订单 -->
|
||||
<TablePagi
|
||||
v-if="order !== null"
|
||||
:extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/qualityPackOrder/pageView' }"
|
||||
:page-is-post="true"
|
||||
:table-config="{
|
||||
<TablePagi v-if="order !== null" :extra-query-fields="{ code: order.code, cate: order.cate }"
|
||||
:urls="{ page: '/pms/qualityPackOrder/pageView' }" :page-is-post="true" :table-config="{
|
||||
table: null,
|
||||
column: detectionTableProps,
|
||||
}"
|
||||
/>
|
||||
}" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
@ -65,6 +44,39 @@
|
||||
import TablePagi from "../TablePagi.vue";
|
||||
import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent";
|
||||
|
||||
const percentComponent = {
|
||||
name: "PercentComponent",
|
||||
props: {
|
||||
injectData: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
render: function (h) {
|
||||
const value = this.injectData[this.injectData.head.prop]
|
||||
|
||||
return h(
|
||||
'div',
|
||||
{
|
||||
style: {
|
||||
padding: '0 10px',
|
||||
background: value > 0 && value <= 100 ? '#ffd400' : (value > 100 ? '#6797ff' : 'unset'),
|
||||
color: value > 100 ? 'white' : 'unset'
|
||||
}
|
||||
},
|
||||
value !== null && value !== undefined ? value + " %" : "-"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
name: "SuborderDetailTag",
|
||||
components: { TablePagi },
|
||||
@ -79,9 +91,10 @@ export default {
|
||||
return {
|
||||
// 混料
|
||||
blenderTableProps: [
|
||||
{ prop: "code", label: "混料订单号" },
|
||||
{ prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{ width: 200, prop: "code", label: "混料订单号" },
|
||||
{ width: 350, prop: "percent", label: "进度", className: 'no-padding-class', subcomponent: percentComponent }, // filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{
|
||||
width: 575,
|
||||
prop: "statusDictValue",
|
||||
label: "订单状态",
|
||||
filter: (val) => (val !== null && val !== undefined ? ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝"][val] : "-"),
|
||||
@ -91,7 +104,7 @@ export default {
|
||||
prop: "operations",
|
||||
name: "操作",
|
||||
fixed: "right",
|
||||
|
||||
width: 200,
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: [
|
||||
{ name: "edit", label: "编辑", emitFull: true, icon: "edit-outline" },
|
||||
@ -103,8 +116,8 @@ export default {
|
||||
refreshLayoutKey1: "",
|
||||
// 压制
|
||||
pressTableProps: [
|
||||
{ prop: "code", label: "压制订单号" },
|
||||
{ prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{ width: 200, prop: "code", label: "压制订单号" },
|
||||
{ width: 350, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{
|
||||
prop: "statusDictValue",
|
||||
label: "订单状态",
|
||||
@ -118,7 +131,7 @@ export default {
|
||||
prop: "operations",
|
||||
name: "操作",
|
||||
fixed: "right",
|
||||
|
||||
width: 200,
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: [{ name: "detach", label: "下发", icon: "bottom-right" }], // , url: '/pms/trans/pressDeli' }]
|
||||
},
|
||||
@ -126,16 +139,16 @@ export default {
|
||||
refreshLayoutKey2: "",
|
||||
// 窑炉
|
||||
kilnTableProps: [
|
||||
{ prop: "code", label: "烧成订单号" },
|
||||
{ prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{ width: 200, prop: "code", label: "烧成订单号" },
|
||||
{ width: 350, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{ prop: "qty", label: "生产量" },
|
||||
{ prop: "qtyComplete", label: "完成量" },
|
||||
],
|
||||
refreshLayoutKey3: "",
|
||||
// 检测
|
||||
detectionTableProps: [
|
||||
{ prop: "code", label: "检测包装订单号" },
|
||||
{ prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{ width: 200, prop: "code", label: "检测包装订单号" },
|
||||
{ width: 350, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
|
||||
{ prop: "qty1", label: "检测量" },
|
||||
{ prop: "qty1Complete", label: "完成量" },
|
||||
{ prop: "goodqty1", label: "检测合格量" },
|
||||
@ -144,8 +157,8 @@ export default {
|
||||
refreshLayoutKey4: "",
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
mounted() {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
init(/** 参数 */) {
|
||||
// Promise.all(
|
||||
|
@ -43,19 +43,29 @@ export default function () {
|
||||
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "" },
|
||||
],
|
||||
finished: [
|
||||
{ name: 'view-ongoing', label: '查看详情' },
|
||||
{} // 占位
|
||||
{ name: 'view-ongoing', label: '查看详情', emitFull: true },
|
||||
// { name: 'view', label: '查看详情' }
|
||||
// { name: 'end-order', label: '结束订单', icon: 'error', showText: true },
|
||||
],
|
||||
};
|
||||
|
||||
const startTimeProp = (type) => ({
|
||||
ongoing: [
|
||||
{ width: 120, prop: "startTime", label: "开始时间", filter: timeFilter }, // "订单砖数" },
|
||||
],
|
||||
pending: [],
|
||||
finished: [
|
||||
{ width: 120, prop: "startTime", label: "开始时间", filter: timeFilter }, // "订单砖数" },
|
||||
],
|
||||
})[type];
|
||||
|
||||
const genTableProps = (type /** ongoing, pending, finished */) => [
|
||||
{ width: 60, type: "index", label: "序号", fixed: true },
|
||||
{ width: 120, prop: "code", label: "订单号", fixed: "left" },
|
||||
{ width: 60, prop: "cate", label: "子号" },
|
||||
{ width: 60, prop: "statusDictValue", label: "状态", filter: dictFilter("order_status") }, // 不可编辑
|
||||
{ width: 120, prop: "startTime", label: "开始时间", filter: timeFilter }, // "订单砖数" },
|
||||
{ width: 120, prop: "planStartTime", label: "计划开始时间", filter: timeFilter }, // "订单砖数" },
|
||||
...startTimeProp(type),
|
||||
{ width: 60, prop: "prodqty", label: "数量" }, // "订单砖数" },
|
||||
{ width: 100, prop: "productCode", label: "物料" }, // "物料编号" }, // select, filterable
|
||||
{ width: 100, prop: "shapeCode", label: "砖型" }, // "砖型编号" }, // select, filterable
|
||||
@ -87,7 +97,7 @@ export default function () {
|
||||
fixed: "right",
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: operations[type],
|
||||
width: operations[type].length * 35,
|
||||
width: operations[type].length > 1 ? operations[type].length * 35 : 90,
|
||||
}
|
||||
|
||||
// type !== "finished"
|
||||
|
Loading…
Reference in New Issue
Block a user