diff --git a/src/components/palletDialog.vue b/src/components/palletDialog.vue new file mode 100644 index 0000000..ba88299 --- /dev/null +++ b/src/components/palletDialog.vue @@ -0,0 +1,185 @@ + + + + + + 生成托盘 + + + + + + + + + {{ o.code }} + {{ o.cate }} + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/atomViews/ListViewWithHead.vue b/src/views/atomViews/ListViewWithHead.vue index 841c5ea..bb40dae 100644 --- a/src/views/atomViews/ListViewWithHead.vue +++ b/src/views/atomViews/ListViewWithHead.vue @@ -70,6 +70,13 @@ @destroy="carReportDialogVisible = false" @refresh-list="getList" :ids="tableSelectedIds" /> + + @@ -85,6 +92,7 @@ import moment from "moment"; import AttachmentDialog from "@/components/attachmentDialog.vue"; import PrintDom from "../../components/PrintDom.vue"; import ReportDialog from "../../components/ReportDialog.vue"; +import PalletDialog from "../../components/palletDialog.vue"; const DIALOG_WITH_MENU = "DialogWithMenu"; const DIALOG_JUST_FORM = "DialogJustForm"; @@ -103,6 +111,7 @@ export default { AttachmentDialog, PrintDom, ReportDialog, + PalletDialog, }, props: { navigator: { @@ -192,6 +201,7 @@ export default { printDOMmount: false, queryParams: {}, carReportDialogVisible: false, + palletDialogVisible: false, }; }, inject: ["urls"], @@ -713,6 +723,13 @@ export default { }); break; case "打印": + if (this.tableSelectedIds.length === 0) { + return this.$message({ + message: "请先选择要打印的项", + type: "warning", + duration: 1500, + }); + } return this.$confirm("开始打印么", "提示", { confirmButtonText: "确认", cancelButtonText: "我再想想", @@ -737,6 +754,27 @@ export default { this.$refs["car-report-dialog"].init(); }); break; + case "生成托盘": + if (this.tableSelectedIds.length > 1) { + return this.$message({ + message: "只能选择一项", + type: "warning", + duration: 1500, + }); + } + // 尾托检测 + if (this.tableSelectedIds.length == 1 && this.tableSelectedIds[0].typeDictValue != "2") { + return this.$message({ + message: "只能选择尾托", + type: "warning", + duration: 1500, + }); + } + this.palletDialogVisible = true; + this.$nextTick(() => { + this.$refs["pallet-dialog"].init(); + }); + break; } }, diff --git a/src/views/modules/pms/pallet/config.js b/src/views/modules/pms/pallet/config.js index 41c3fb9..398d84b 100644 --- a/src/views/modules/pms/pallet/config.js +++ b/src/views/modules/pms/pallet/config.js @@ -15,6 +15,7 @@ export default function () { { prop: "realQty", label: "数量" }, { prop: "typeDictValue", label: "类型", filter: dictFilter("pallet_type") }, { prop: "stifling", label: "熏蒸", filter: (val) => (val != null ? ["非熏蒸", "熏蒸"][val] : "-") }, + { prop: "externalCode", label: "提库单" }, { prop: "printTime", label: "打印时间", filter: timeFilter }, { prop: "createTime", label: "添加时间", filter: timeFilter }, { @@ -68,6 +69,15 @@ export default function () { plain: true, }, }, + { + button: { + type: "warning", + name: "生成托盘", + }, + bind: { + plain: true, + }, + }, ]; const dialogJustFormConfigs = { diff --git a/src/views/modules/pms/palletPrint/config.js b/src/views/modules/pms/palletPrint/config.js new file mode 100644 index 0000000..0bd927f --- /dev/null +++ b/src/views/modules/pms/palletPrint/config.js @@ -0,0 +1,147 @@ +import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; +import request from "@/utils/request"; +import { timeFilter, dictFilter } from "@/utils/filters"; +import { getDictDataList } from "@/utils"; + +// import StateSelect from '@/components/StateSelect.vue'; + +export default function () { + const tableProps = [ + { type: "index", label: "序号" }, + { type: "selection" }, + { prop: "code", label: "流水号" }, + { prop: "carCode", label: "窑车号" }, + { prop: "orderCode", label: "订单号" }, + { prop: "realQty", label: "数量" }, + { prop: "typeDictValue", label: "类型", filter: dictFilter("pallet_type") }, + { prop: "stifling", label: "熏蒸", filter: (val) => (val != null ? ["非熏蒸", "熏蒸"][val] : "-") }, + { prop: "externalCode", label: "提库单" }, + { prop: "printTime", label: "打印时间", filter: timeFilter }, + { prop: "createTime", label: "添加时间", filter: timeFilter }, + { + prop: "operations", + name: "操作", + fixed: "right", + width: 90, + subcomponent: TableOperaionComponent, + options: [ + { name: "print", label: "打印", icon: "printer" }, + { name: "view-car-record", label: "窑车记录", emitField: "hisId", icon: "shopping-cart-1" }, + ], + }, + ]; + tableProps.defaultPageSize = 999; + + const headFormFields = [ + { + button: { + type: "primary", + name: "打印", + }, + bind: { + plain: true, + }, + }, + ]; + + const dialogJustFormConfigs = { + form: { + rows: [ + [ + { + select: true, + label: "窑车号", + prop: "carId", + options: [], + fetchData: () => this.$http.get("/pms/car/page", { params: { page: 1, limit: 999 } }), + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { + disabled: true, + }, + }, + { + select: true, + label: "状态", + prop: "stateDictValue", + options: getDictDataList("car_state").map((i) => ({ label: i.dictLabel, value: i.dictValue })), + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { + fliterable: true, + }, + }, + ], + [ + { + // select: true, + input: true, + label: "位置", + prop: "pos", + // options: getDictDataList(), + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { + // fliterable: true + }, + }, + { + label: "查看载砖详情", + button: true, + onClick: function (id) { + // 必须用 function 形式 + console.log(`查看载砖详情`, id); + this.$emit("emit-data", { type: "to-car-payload", data: id }); + }, + }, + ], + ], + operations: [ + // { name: "add", label: "保存", type: "primary", permission: "", showOnEdit: false }, + // { name: "update", label: "更新", type: "primary", permission: "", showOnEdit: true }, + // { name: "reset", label: "重置", type: "warning", showAlways: true }, + ], + }, + }; + + const carPayloadDialogConfigs = { + dialogWidth: "70%", + carPayloadDialog: true, + clickModalToClose: false, + tableConfig: { + table: null, + column: [ + // 窑车的 装载详情 + // tableProps + { width: 56, type: "index", label: "序号" }, + { prop: "orderCode", label: "订单号" }, + { width: 80, prop: "orderCate", label: "订单子号" }, + { prop: "bomCode", label: "配方" }, + { prop: "shapeCode", label: "砖型" }, + { width: 80, prop: "qty", label: "订单数量" }, + { width: 72, prop: "goodqty", label: "合格数" }, + { width: 72, prop: "badqty", label: "废砖数" }, + // { prop: "startTime", label: "开始时间" }, + // { prop: "endTime", label: "结束时间" }, + // { prop: "remark", label: "备注" }, + ], + }, + }; + + return { + carPayloadDialogConfigs, + dialogConfigs: dialogJustFormConfigs, + tableConfig: { + table: null, // 此处可省略,el-table 上的配置项 + column: tableProps, // el-column-item 上的配置项 + }, + headFormConfigs: { + rules: null, // 名称是由 BaseSearchForm.vue 组件固定的 + fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的 + }, + urls: { + base: "/pms/carHistory", + payload: "/pms/carHandle", // hisId 查询 载砖详情 + page: "/pms/pallet/listForPrint", + pageIsPostApi: true, + printLog: "/pms/pallet/print", // post + }, + }; +} diff --git a/src/views/modules/pms/palletPrint/index.vue b/src/views/modules/pms/palletPrint/index.vue new file mode 100644 index 0000000..ac9e422 --- /dev/null +++ b/src/views/modules/pms/palletPrint/index.vue @@ -0,0 +1,47 @@ + + + + + + + +