diff --git a/src/components/ReportDialog.vue b/src/components/ReportDialog.vue new file mode 100644 index 0000000..05f2785 --- /dev/null +++ b/src/components/ReportDialog.vue @@ -0,0 +1,201 @@ + + + + + + + + + diff --git a/src/views/atomViews/ListViewWithHead.vue b/src/views/atomViews/ListViewWithHead.vue index fee7d5e..f17c156 100644 --- a/src/views/atomViews/ListViewWithHead.vue +++ b/src/views/atomViews/ListViewWithHead.vue @@ -63,6 +63,12 @@ + + @@ -77,6 +83,7 @@ import Overlay from "@/components/Overlay.vue"; import moment from "moment"; import AttachmentDialog from "@/components/attachmentDialog.vue"; import PrintDom from "../../components/PrintDom.vue"; +import ReportDialog from "../../components/ReportDialog.vue"; const DIALOG_WITH_MENU = "DialogWithMenu"; const DIALOG_JUST_FORM = "DialogJustForm"; @@ -94,6 +101,7 @@ export default { Overlay, AttachmentDialog, PrintDom, + ReportDialog, }, props: { navigator: { @@ -181,6 +189,8 @@ export default { needAttachmentDialog: false, tableSelectedIds: [], printDOMmount: false, + queryParams: {}, + carReportDialogVisible: false, }; }, inject: ["urls"], @@ -190,6 +200,20 @@ export default { "defaultPageSize" in this.tableConfig.column ? this.tableConfig.column.defaultPageSize : 20; this.size = size; + // 如果设置了 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]); + }); + } + }); + } + + console.log("this.queryParams is: ", JSON.stringify(this.queryParams)); + this.initDataWhenLoad && this.getList(); }, methods: { @@ -204,27 +228,18 @@ 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]; - }); - } - }); - this.cachedSearchCondition = Object.assign({}, params); - } - - console.log("[http request] params is: ", params); this.$http[this.urls.pageIsPostApi ? "post" : "get"]( this.urls.page, this.urls.pageIsPostApi ? { + ...this.queryParams, ...params, } : { - params, + params: { + ...this.queryParams, + ...params, + }, } ) .then(({ data: res }) => { @@ -233,14 +248,6 @@ export default { if (res.code === 0) { // page 场景: if ("list" in res.data) { - // if (res.data.list.length == 0 && res.data.total != 0) { - // // refresh list - // if (this.page > 1) { - // this.page -= 1 - // this.getList() - // return - // } else return - // } /** 破碎记录的特殊需求:数据要结合单位 material + materialUnitDictValue */ if ("attachDictValue" in this.tableConfig.column) { this.dataList = res.data.list.map((row) => { @@ -249,12 +256,6 @@ export default { }); } else this.dataList = res.data.list; - this.totalPage = res.data.total; - } else if ("records" in res.data) { - this.dataList = res.data.records.map((item) => ({ - ...item, - id: item._id ?? item.id, - })); this.totalPage = res.data.total; } else if (Array.isArray(res.data)) { this.dataList = res.data; @@ -659,38 +660,34 @@ export default { return; } case "查询": { - if (typeof payload === "object") { - /** 必须先处理 listQueryExtra 里的数据 */ - this.listQueryExtra?.map((cond) => { - if (typeof cond === "string") { - if (!!payload[cond]) { - this.cachedSearchCondition[cond] = payload[cond]; - } else { - this.cachedSearchCondition[cond] = ""; - } - } else if (typeof cond === "object") { - Object.keys(cond).forEach((key) => { - this.cachedSearchCondition[key] = cond[key]; - }); - } - }); - // 再处理 payload 里的数据,用于刷新 上面的 数据 - Object.assign(this.cachedSearchCondition, payload); - if ("timerange" in payload) { - if (!!payload.timerange) { - const [startTime, endTime] = payload["timerange"]; - this.cachedSearchCondition.startTime = moment(startTime).format("YYYY-MM-DDTHH:mm:ss"); - this.cachedSearchCondition.endTime = moment(endTime).format("YYYY-MM-DDTHH:mm:ss"); - } else { - delete this.cachedSearchCondition.startTime; - delete this.cachedSearchCondition.endTime; - } - delete this.cachedSearchCondition.timerange; + const params = Object.assign({}, payload); + + if ("timerange" in params) { + if (!!params.timerange) { + const [startTime, endTime] = params["timerange"]; + params.startTime = moment(startTime).format("YYYY-MM-DDTHH:mm:ss"); + params.endTime = moment(endTime).format("YYYY-MM-DDTHH:mm:ss"); + } else { + params.startTime = null; + params.endTime = null; } + delete params.timerange; } - console.log("查询", this.cachedSearchCondition); - this.getList(this.cachedSearchCondition); + // console.log( + // "查询 params", + // JSON.stringify({ + // // ...this.queryParams, + // ...params, + // }) + // ); + + this.queryParams = { + ...this.queryParams, + ...params, + }; + + this.getList(); break; } case "同步": @@ -727,11 +724,18 @@ export default { // }) this.tableSelectedIds.forEach(async (id) => { await this.printOnce(id); - }) + }); }) .catch((err) => { this.$message.error(`批量打印出错: ${err}`); }); + case "报工": + console.log("报工ids:", this.tableSelectedIds); + this.carReportDialogVisible = true; + this.$nextTick(() => { + this.$refs['car-report-dialog'].init(); + }); + break; } }, @@ -752,12 +756,12 @@ export default { // val 是新值 this.page = 1; this.size = val; - this.getList(this.cachedSearchCondition); + this.getList(); }, handlePageChange(val) { // val 是新值 - this.getList(this.cachedSearchCondition); + this.getList(); }, /** 打开对话框 */ diff --git a/src/views/modules/pms/carOrderReport/config.js b/src/views/modules/pms/carOrderReport/config.js index 7d26ab5..d69b78f 100644 --- a/src/views/modules/pms/carOrderReport/config.js +++ b/src/views/modules/pms/carOrderReport/config.js @@ -39,7 +39,7 @@ export default function () { width: 90, subcomponent: TableOperaionComponent, options: [ - { name: "edit", label: "编辑", icon: "edit-outline" }, + { name: "edit", label: "编辑", icon: "edit-outline", enable: row => row.report == 0 }, // { // name: "delete", // icon: "delete", @@ -196,14 +196,14 @@ export default function () { elparams: { placeholder: "请输入报废数量" }, }, ], - [ - { - richInput: true, - label: "描述信息", - prop: "description", - }, - ], - [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], + // [ + // { + // richInput: true, + // label: "描述信息", + // prop: "description", + // }, + // ], + // [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], ], operations: [ { diff --git a/src/views/modules/pms/carOrderReport/index.vue b/src/views/modules/pms/carOrderReport/index.vue index 64a7f8f..c9bdaae 100644 --- a/src/views/modules/pms/carOrderReport/index.vue +++ b/src/views/modules/pms/carOrderReport/index.vue @@ -9,6 +9,7 @@