diff --git a/package.json b/package.json
index 34b036d..18f6b73 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"babel-plugin-component": "^1.1.1",
"code-brick-zj": "^0.0.7",
"core-js": "^3.6.5",
+ "dayjs": "^1.11.9",
"echarts": "^5.3.3",
"element-theme": "^2.0.1",
"element-ui": "^2.15.7",
diff --git a/src/views/modules/pms/blenderOrder/components/ListViewWithHead.vue b/src/views/modules/pms/blenderOrder/components/ListViewWithHead.vue
index dc888b4..dc9bc5f 100644
--- a/src/views/modules/pms/blenderOrder/components/ListViewWithHead.vue
+++ b/src/views/modules/pms/blenderOrder/components/ListViewWithHead.vue
@@ -86,10 +86,23 @@ export default {
dialogBomCode: "",
overlayVisible: false,
cachedSearchCondition: {},
+ queryParams: {},
};
},
inject: ["urls"],
mounted() {
+ // 如果设置了 listQueryExtra,就合并到 queryParams
+ if (this.listQueryExtra && Array.isArray(this.listQueryExtra)) {
+ this.listQueryExtra.map((item) => {
+ if (typeof item === "string") this.$set(this.queryParams, item, "");
+ else if (typeof item === "object") {
+ Object.keys(item).forEach((key) => {
+ this.$set(this.queryParams, key, item[key]);
+ });
+ }
+ });
+ }
+
this.initDataWhenLoad && this.getList();
},
methods: {
@@ -104,17 +117,6 @@ export default {
limit: this.size,
};
- if (!queryParams && this.listQueryExtra && this.listQueryExtra.length) {
- this.listQueryExtra.map((nameOrObj) => {
- if (typeof nameOrObj === "string") params[nameOrObj] = "";
- else if (typeof nameOrObj === "object") {
- Object.keys(nameOrObj).forEach((key) => {
- params[key] = nameOrObj[key];
- });
- }
- });
- }
-
// if (this.urls.pageIsPostApi) {
// } else {
// 默认是 get 方式请求 page
@@ -122,10 +124,14 @@ export default {
this.urls.page,
this.urls.pageIsPostApi
? {
+ ...this.queryParams,
...params,
}
: {
- params,
+ params: {
+ ...this.queryParams,
+ ...params
+ },
}
)
.then(({ data: res }) => {
@@ -253,7 +259,9 @@ export default {
.then(({ data: res }) => {
if (res.code === 0) {
this.$message({
- message: `${type === "detach" ? "下发" : type === "pause-blender" ? "暂停" : "开始"}成功`,
+ message: `${
+ type === "detach" ? "下发" : type === "pause-blender" ? "暂停" : "开始"
+ }成功`,
type: "success",
duration: 1500,
onClose: () => {
diff --git a/src/views/modules/pms/blenderPress/config.js b/src/views/modules/pms/blenderPress/config.js
index e2ef1c8..6cbed7e 100644
--- a/src/views/modules/pms/blenderPress/config.js
+++ b/src/views/modules/pms/blenderPress/config.js
@@ -33,7 +33,7 @@ export default function () {
prop: "operations",
name: "操作",
fixed: "right",
- width: 188,
+ width: 196,
subcomponent: TableOperaionComponent,
options: [
{
diff --git a/src/views/modules/pms/workReport/config.js b/src/views/modules/pms/workReport/config.js
new file mode 100644
index 0000000..b4acde6
--- /dev/null
+++ b/src/views/modules/pms/workReport/config.js
@@ -0,0 +1,273 @@
+import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent";
+// import switchBtn from "@/components/noTemplateComponents/switchBtn";
+// import QuillRichInput from "@/components/noTemplateComponents/richInput";
+// import request from "@/utils/request";
+import { timeFilter, dictFilter } from "@/utils/filters";
+
+export default function () {
+ const tableProps = [
+ { width: 120, prop: "orderCode", label: "订单号", fixed: "left" },
+ { width: 60, prop: "orderCate", label: "子号" },
+ { width: 100, prop: "productCode", label: "物料" },
+ { width: 100, prop: "shapeCode", label: "砖型" },
+ { width: 160, prop: "brand", label: "牌号" },
+ { width: 100, prop: "bomCode", label: "配方编码" },
+ // { width: 60, prop: "ai", label: "版本" },
+ { width: 60, prop: "prodqty", label: "数量" },
+ { width: 80, prop: "blenderCode", label: "混料机号" },
+ { width: 80, prop: "pressCode", label: "压机号" },
+ { width: 80, prop: "kilnCode", label: "隧道窑号" },
+ { width: 120, prop: "planStartTime", label: "计划开始时间", filter: timeFilter },
+ { width: 120, prop: "sapParam6", label: "烧成温度" },
+ { width: 120, prop: "sapParam7", label: "烧成时间(min)" },
+ // { width: 200, prop: "packTechCode", label: "包装工艺代码" },
+ { width: 120, prop: "pcsKilnCar", label: "托盘码放砖数" },
+ { width: 120, prop: "customerCode", label: "客户" },
+ { width: 120, prop: "specifications", label: "生产订单类型" },
+ // { width: 60, prop: "statusDictValue", label: "状态", filter: dictFilter("order_status") },
+ { width: 200, prop: "saleNo", label: "销售订单号" },
+ { width: 200, prop: "saleOrderItem", label: "销售订单item号" },
+ { width: 120, prop: "soqty", label: "销售订单数" },
+ { width: 120, prop: "deliveryTime", label: "销售时间", filter: timeFilter },
+ { width: 65, prop: "sapParam1", label: "addon" },
+ { width: 200, prop: "shapeShortDesc", label: "喷码描述" },
+ { width: 120, prop: "prodqty", label: "要求生产数量" },
+ { width: 128, prop: "paperboard", label: "是否贴纸板", filter: (val) => ["否", "是"][val] },
+ { width: 128, prop: "palletType", label: "托盘类型", filter: dictFilter("pallet_type") },
+ { width: 128, prop: "goodqty", label: "合格数量" },
+ { width: 128, prop: "badqty", label: "报废数量" },
+ { width: 120, prop: "remark", label: "备注" },
+ { width: 120, prop: "createTime", label: "添加时间", filter: timeFilter },
+ {
+ width: 128,
+ prop: "team",
+ label: "班次",
+ filter: (val) => (val != null ? ["早班", "中班", "晚班"][val] : "-"),
+ },
+ {
+ prop: "operations",
+ name: "操作",
+ fixed: "right",
+ width: 90,
+ subcomponent: TableOperaionComponent,
+ options: [
+ { name: "edit", label: "编辑", icon: "edit-outline" }, // enable: (row) => row.report == 0 },
+ // {
+ // name: "delete",
+ // icon: "delete",
+ // label: "删除",
+ // emitFull: true,
+ // permission: "pms:workReport:delete",
+ // },
+ ],
+ },
+ ];
+
+ const now = new Date();
+ const [y, m, d] = [now.getFullYear(), now.getMonth(), now.getDate()];
+ const today = new Date(y, m, d, 0, 0, 0, 0).getTime();
+ const headFormFields = [
+ {
+ prop: "team",
+ label: "班次",
+ select: [
+ { label: "早班", value: "0" },
+ { label: "中班", value: "1" },
+ { label: "晚班", value: "2" },
+ ],
+ default: { value: "" },
+ bind: {
+ placeholder: "请选择班次",
+ },
+ },
+ {
+ prop: "externalCode",
+ label: "工序",
+ select: [
+ { label: "压机", value: "0" },
+ { label: "检测线", value: "1" },
+ { label: "包装", value: "2" },
+ ],
+ default: { value: "" },
+ bind: {
+ placeholder: "请选择工序",
+ },
+ },
+ {
+ prop: "orderCode",
+ label: "订单号",
+ input: true,
+ default: { value: "" },
+ bind: {
+ placeholder: "请输入订单号",
+ },
+ },
+ {
+ timerange: true,
+ prop: "timerange",
+ label: "时间段",
+ default: { value: [today - 3600 * 24 * 6 * 1000, today + 3600 * 24 * 1000] },
+ bind: {
+ placeholder: "请选择时间段",
+ type: "datetimerange",
+ "start-placeholder": "开始时间",
+ "end-placeholder": "结束时间",
+ },
+ },
+ {
+ button: {
+ type: "primary",
+ name: "查询",
+ },
+ },
+ {
+ button: {
+ type: "primary",
+ name: "新增",
+ permission: "pms:workReport:save",
+ },
+ bind: {
+ plain: true,
+ },
+ },
+ ];
+
+ /**
+ * dialog config 有两个版本,一个适用于 DialogWithMenu 组件,另一个适用于 DialogJustForm 组件
+ * 适用于 DialogWithMenu 组件的配置示例详见 blenderStep/config.js
+ * 此为后者的配置:
+ */
+ const dialogJustFormConfigs = {
+ clickModalToClose: false,
+ form: {
+ rows: [
+ [
+ {
+ select: true,
+ label: "订单",
+ prop: "orderId",
+ options: [],
+ optionLabel: "code",
+ customLabel: "cate",
+ fetchData: () => this.$http.post("/pms/order/listForReport"),
+ elparams: { placeholder: "请选择订单" },
+ rules: [{ required: true, message: "必填项不能为空", trigger: "blur" }],
+ },
+ {
+ select: true,
+ label: "工序",
+ prop: "externalCode",
+ options: [
+ { label: "压机", value: '0' },
+ { label: "检测线", value: '1' },
+ { label: "包装", value: '2' },
+ ],
+ elparams: { placeholder: "请选择工序" },
+ },
+ ],
+ [
+ {
+ select: true,
+ label: "班次",
+ prop: "team",
+ options: [
+ { label: "早班", value: '0' },
+ { label: "中班", value: '1' },
+ { label: "晚班", value: '2' },
+ ],
+ elparams: { placeholder: "请选择班次" },
+ },
+ {
+ input: true,
+ label: "数量",
+ prop: "qty",
+ rules: [
+ { required: true, message: "必填项不能为空", trigger: "blur" },
+ {
+ type: "number",
+ message: "请输入正确的数字类型",
+ trigger: "blur",
+ transform: (val) => Number(val),
+ },
+ ],
+ elparams: { placeholder: "请输入数量" },
+ },
+ ],
+ [
+ {
+ input: true,
+ label: "合格数量",
+ prop: "goodqty",
+ rules: [
+ { required: true, message: "必填项不能为空", trigger: "blur" },
+ {
+ type: "number",
+ message: "请输入正确的数字类型",
+ trigger: "blur",
+ transform: (val) => Number(val),
+ },
+ ],
+ elparams: { placeholder: "请输入合格数量" },
+ },
+ {
+ input: true,
+ label: "报废数量",
+ prop: "badqty",
+ rules: [
+ { required: true, message: "必填项不能为空", trigger: "blur" },
+ {
+ type: "number",
+ message: "请输入正确的数字类型",
+ trigger: "blur",
+ transform: (val) => Number(val),
+ },
+ ],
+ elparams: { placeholder: "请输入报废数量" },
+ },
+ ],
+ // [
+ // {
+ // richInput: true,
+ // label: "描述信息",
+ // prop: "description",
+ // },
+ // ],
+ // [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }],
+ ],
+ operations: [
+ {
+ name: "add",
+ label: "保存",
+ type: "primary",
+ permission: "pms:workReport:save",
+ showOnEdit: false,
+ },
+ {
+ name: "update",
+ label: "更新",
+ type: "primary",
+ permission: "pms:workReport:update",
+ showOnEdit: true,
+ },
+ { name: "reset", label: "重置", type: "warning", showAlways: true },
+ ],
+ },
+ };
+
+ return {
+ dialogConfigs: dialogJustFormConfigs,
+ tableConfig: {
+ table: null, // 此处可省略,el-table 上的配置项
+ column: tableProps, // el-column-item 上的配置项
+ },
+ headFormConfigs: {
+ rules: null, // 名称是由 BaseSearchForm.vue 组件固定的
+ fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的
+ },
+ urls: {
+ base: "/pms/workReport",
+ page: "/pms/workReport/pageView",
+ pageIsPostApi: true,
+ },
+ };
+}
diff --git a/src/views/modules/pms/workReport/index.vue b/src/views/modules/pms/workReport/index.vue
new file mode 100644
index 0000000..51b75cf
--- /dev/null
+++ b/src/views/modules/pms/workReport/index.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+