From dfcad9e05dad5d6fcc12b95c2592a4e325d44a02 Mon Sep 17 00:00:00 2001 From: xielue Date: Fri, 16 Jun 2023 18:14:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=8F=E8=BD=A6=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/application/mk/basic-pages/edit.vue | 80 +++--- src/application/mk/basic-pages/list.vue | 64 ++++- .../mk/components/dialog/dialog.vue | 2 + .../components/editors/MkFormDataSelector.vue | 7 +- src/application/mk/libs/function/form.js | 74 ++++-- .../Mes/MesProductionOrder/Batch/Edit.vue | 230 ++++++++++++++++++ .../Mes/MesProductionOrder/Batch/List.vue | 124 ++++++++++ .../Mes/MesProductionOrder/Batch/i18n.js | 14 ++ .../Mes/MesProductionOrder/router.map.js | 14 ++ 9 files changed, 549 insertions(+), 60 deletions(-) create mode 100644 src/pages/Middle/Mes/MesProductionOrder/Batch/Edit.vue create mode 100644 src/pages/Middle/Mes/MesProductionOrder/Batch/List.vue create mode 100644 src/pages/Middle/Mes/MesProductionOrder/Batch/i18n.js diff --git a/src/application/mk/basic-pages/edit.vue b/src/application/mk/basic-pages/edit.vue index f9b7cbb..2759424 100644 --- a/src/application/mk/basic-pages/edit.vue +++ b/src/application/mk/basic-pages/edit.vue @@ -58,19 +58,24 @@ export default { // 返回 back() { - this.isEdit = this.options.isEdit; - // 如果是新增模式,关闭当前页面 - if (!this.isEdit) { - this.$closePage({ - closeRoute: this.options.addPageUrl - }); + if (this.options.addPageUrl) { + this.isEdit = this.options.isEdit; + // 如果是新增模式,关闭当前页面 + if (!this.isEdit) { + this.$closePage({ + closeRoute: this.options.addPageUrl + }); + } else { + this.$closePage({ + closeRoute: this.options.editPageUrl + }); + } + // 打开列表页面 + this.$openPage(this.options.listPageUrl) } else { - this.$closePage({ - closeRoute: this.options.editPageUrl - }); + this.$emit("callback", { success: true }); } - // 打开列表页面 - this.$openPage(this.options.listPageUrl) + }, // 保存 @@ -93,7 +98,7 @@ export default { // postdata = { MesUnit: postdata } } // 格式化提交的数据 - this.$mk.formatFormData({ data: postdata, rules: this.options.formOptions.items }); + this.$mk.formatFormData({ data: postdata, rules: this.options.formOptions.items ,igFields : this.options.saveIgFields }); // 提交数据 @@ -102,33 +107,38 @@ export default { loading: "保存中...", data: postdata, useBigInt: true, - }).then(() => { // 成功回调 + }).then((a) => { // 成功回调 if (afterSave) { afterSave(); } else { - this.$mk.success("保存成功"); + if (a.code == 200) { + this.$mk.success("保存成功"); - this.$emit("afterSave", { data: postdata }); - if (!this.isEdit) { // 如果是新增模式,关闭当前页面 + this.$emit("afterSave", { data: postdata }); + if (!this.isEdit) { // 如果是新增模式,关闭当前页面 + + if (this.options.action_afterSave == "confirm") { + this.$confirm({ + title: '提示', + content: '新增成功,是否继续', + okText: '确认', + cancelText: '返回', + onOk() { + _this.options.formOptions.data = _this.defaultFormData; + }, + onCancel() { + _this.back(); + }, + }); + } else { + this.back(); + } - if (this.options.action_afterSave == "confirm") { - this.$confirm({ - title: '提示', - content: '新增成功,是否继续', - okText: '确认', - cancelText: '返回', - onOk() { - _this.options.formOptions.data = _this.defaultFormData; - }, - onCancel() { - _this.back(); - }, - }); - } else { - this.back(); } - + } else { + this.$mk.error(a.msg); // 显示错误信息 } + } }).catch((a) => { // 失败回调 @@ -152,7 +162,11 @@ export default { // 取消 返回 cancel() { - this.back(); + if (this.options.addPageUrl) { + this.back(); + } else { + this.$emit("callback", {}); + } } }, // 监听属性 diff --git a/src/application/mk/basic-pages/list.vue b/src/application/mk/basic-pages/list.vue index b6b6ffa..19ca3f9 100644 --- a/src/application/mk/basic-pages/list.vue +++ b/src/application/mk/basic-pages/list.vue @@ -160,7 +160,7 @@ export default { let item = this.options.exportColumns[i]; var v = ""; if (item.valueGetter) { - v = item.valueGetter({ row: row,column:item }); + v = item.valueGetter({ row: row, column: item }); } else if (item.dataField) { v = row[item.dataField]; @@ -348,7 +348,27 @@ export default { toolbarClick(e) { if (e.name == "add") { // 如果是添加 - this.$openPage(this.options.addPageUrl); // 打开页面 + if (this.options.editPage) { + this.$mk.dialog.open({ + page: this.options.editPage, + title: this.options.editPageTitle, + pageOptions: { + }, + width: this.$mk.getWindowSize().width * 0.9, + height: this.$mk.getWindowSize().height * 0.9, + dataId: 0, + callback:({success})=>{ + if(success){ + this.$refs.xGrid.commitProxy('query') + } + } + }); + } else { + this.$openPage(this.options.addPageUrl); // 打开页面 + } + + + } }, @@ -437,20 +457,45 @@ export default { if (editPage != null) { editPage.beforeTabClose().then(() => { this.$closePage(this.options.editPageUrl); - this.$openPage(this.options.editPageUrl + row[this.options.keyName]); // 打开页面 + this.showPageEdit( row[this.options.keyName]); // 打开页面 }); } else { - this.$openPage(this.options.editPageUrl + row[this.options.keyName]); // 打开页面 + this.showPageEdit(row[this.options.keyName]); // 打开页面 } } else { - this.$openPage(this.options.editPageUrl + row[this.options.keyName]); // 打开页面 + this.showPageEdit(row[this.options.keyName]); // 打开页面 } }, + + showPageEdit(dataId){ + + if( this.options.editPage){ + this.$mk.dialog.open({ + page: this.options.editPage, + title: this.options.editPageTitle, + pageOptions: { + }, + width: this.$mk.getWindowSize().width * 0.9, + height: this.$mk.getWindowSize().height * 0.9, + dataId: dataId, + callback:({success})=>{ + if(success){ + this.$refs.xGrid.commitProxy('query') + } + } + }); + }else{ + this.$openPage(this.options.editPageUrl + dataId); + } + + }, + + // 删除 pageDelete(row) { let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords(); // 获取选中行 @@ -466,7 +511,7 @@ export default { let delParms = {}; let url = this.options.actions.delete; - + if (url.indexOf('batchDelete') != -1) { delParms = { @@ -505,10 +550,10 @@ export default { this.$refs.xGrid.commitProxy('query') // 提交搜索 }, - gridReload(){ + gridReload() { this.$refs.xGrid.commitProxy('query') }, - + getConfirmData() { let rows = this.$refs.xGrid.getCheckboxRecords(); return rows; @@ -529,7 +574,8 @@ export default { .gridPanel { height: calc(100vh - 220px); -} +} + .oplinks svg { width: 22px; height: 22px; diff --git a/src/application/mk/components/dialog/dialog.vue b/src/application/mk/components/dialog/dialog.vue index 9e8cdfe..0a300fd 100644 --- a/src/application/mk/components/dialog/dialog.vue +++ b/src/application/mk/components/dialog/dialog.vue @@ -68,6 +68,8 @@ export default { // 处理回调 handleCallback(e) { + + console.log(e); const { callback } = this; // 判断是否有回调函数 if (callback) { diff --git a/src/application/mk/components/editors/MkFormDataSelector.vue b/src/application/mk/components/editors/MkFormDataSelector.vue index 1f94755..92f12a6 100644 --- a/src/application/mk/components/editors/MkFormDataSelector.vue +++ b/src/application/mk/components/editors/MkFormDataSelector.vue @@ -2,7 +2,7 @@
@@ -145,9 +145,11 @@ export default { if(params.treeConfig){ this.treeConfig = params.treeConfig; } + if (params.popup) { // 如果弹出框存在 this.enalbedPopup = true; // 是否启用弹出框 this.popupPage = params.popup.page; // 弹出框页面 + } if (params.dataUrl) { this.actions.getList = params.dataUrl; @@ -286,6 +288,7 @@ export default { }) }, suffixClick() { // 后缀点击事件 + this.$refs.xDown.togglePanel() }, pageChangeEvent({ currentPage, pageSize }) { // 分页改变事件 @@ -318,6 +321,7 @@ export default { else { this.$emit('input', [e.row.ID, e.row[textField]]); } + if (params.onDataChanged) { params.onDataChanged({ value: [e.row.ID, e.row[textField]], data: e.row }) @@ -326,6 +330,7 @@ export default { }, popupEvent() { + console.log("popupEvent"); this.modalVisible = true; }, confirmEvent() { diff --git a/src/application/mk/libs/function/form.js b/src/application/mk/libs/function/form.js index 69843d8..9111bb0 100644 --- a/src/application/mk/libs/function/form.js +++ b/src/application/mk/libs/function/form.js @@ -1,25 +1,25 @@ export default { - // 格式化表单数据 - formatFormData: function ({ data, rules }) { // 格式化表单数据 + // 格式化表单数据(准备提交) + formatFormData: function ({ data, rules , igFields }) { // 格式化表单数据 - let feachRules = (rules)=>{ + let feachRules = (rules) => { rules.forEach(rule => { // 循环规则 - if(rule.children && rule.children.length){ + if (rule.children && rule.children.length) { feachRules(rule.children); } - if (!rule.dataRule){ + if (!rule.dataRule) { return; } if (rule.field in data) { // 如果字段在数据中 let value = data[rule.field]; // 获取值 - if (rule.dataRule.fromField) { - value = value[rule.dataRule.fromField]; - } + if (rule.dataRule.fromField) { + value = value[rule.dataRule.fromField]; + } let saveField = rule.field; - if(rule.dataRule.saveField){ + if (rule.dataRule.saveField) { saveField = rule.dataRule.saveField; } if (rule.dataRule.type == "integer") { // 如果是整数 @@ -32,29 +32,69 @@ export default { data[saveField] = parseInt(new Date(value).getTime() / 1000); // 转换为时间戳 } else if (rule.dataRule.type == "string") { // 如果是字符串 - if(data[saveField] === true){ + if (data[saveField] === true) { data[saveField] = "true"; } - else if(data[saveField] === false){ + else if (data[saveField] === false) { data[saveField] = "false"; } - else if(data[saveField]){ + else if (data[saveField]) { data[saveField] = value + ""; } } else { - data[saveField] =value ; - } - } + data[saveField] = value; + } + } }); }; feachRules(rules); - + + if(igFields){ + igFields.forEach(field=>{ + if(field in data){ + delete data[field]; + } + }) + } + + }, + + + // 格式化表单数据(准备展示) + formatInitFormData: function ({ data, rules }) { // 格式化表单数据 + + + let feachRules = (rules) => { + + rules.forEach(rule => { // 循环规则 + if (rule.children && rule.children.length) { + feachRules(rule.children); + } + if (!rule.dataRule) { + return; + } + + if(rule.dataRule.getter){ + data[rule.field] = rule.dataRule.getter(data); + } + if (rule.field in data) { // 如果字段在数据中 + if (rule.dataRule.type == "timestamp") { // 如果是时间戳 + if (data[rule.field] > 0) { + data[rule.field] = new Date(data[rule.field] * 1000); + } + + } + } + }); + }; + feachRules(rules); + }, // 验证表单数据 - validateForm : function ({ form }) { // 验证表单 + validateForm: function ({ form }) { // 验证表单 return new Promise((resolve, reject) => { // 返回一个Promise diff --git a/src/pages/Middle/Mes/MesProductionOrder/Batch/Edit.vue b/src/pages/Middle/Mes/MesProductionOrder/Batch/Edit.vue new file mode 100644 index 0000000..c21ed00 --- /dev/null +++ b/src/pages/Middle/Mes/MesProductionOrder/Batch/Edit.vue @@ -0,0 +1,230 @@ + + + + \ No newline at end of file diff --git a/src/pages/Middle/Mes/MesProductionOrder/Batch/List.vue b/src/pages/Middle/Mes/MesProductionOrder/Batch/List.vue new file mode 100644 index 0000000..9832d73 --- /dev/null +++ b/src/pages/Middle/Mes/MesProductionOrder/Batch/List.vue @@ -0,0 +1,124 @@ + + + \ No newline at end of file diff --git a/src/pages/Middle/Mes/MesProductionOrder/Batch/i18n.js b/src/pages/Middle/Mes/MesProductionOrder/Batch/i18n.js new file mode 100644 index 0000000..3232945 --- /dev/null +++ b/src/pages/Middle/Mes/MesProductionOrder/Batch/i18n.js @@ -0,0 +1,14 @@ +module.exports = { + messages: { + CN: { + pageDesc:'单位管理' + }, + HK: { + pageDesc:'单位管理' + }, + US: { + pageDesc:'单位管理' + } + } + } + \ No newline at end of file diff --git a/src/router/Middle/Mes/MesProductionOrder/router.map.js b/src/router/Middle/Mes/MesProductionOrder/router.map.js index bf40255..595738c 100644 --- a/src/router/Middle/Mes/MesProductionOrder/router.map.js +++ b/src/router/Middle/Mes/MesProductionOrder/router.map.js @@ -64,6 +64,20 @@ routerMap[FunName + 'Update']= { } }; + +routerMap['MesProductionOrderBatch']= { + name: '随车连', + icon: 'idcard', + path: `/MesProductionOrder/MesProductionOrderBatch`, + component: () => import(`@/pages/Middle/Mes/MesProductionOrder/Batch/List`), + meta: { + invisible: true, + }, + authority: { + permission: [], + } +}; + InvisibleRouters.forEach(item => { let name = FunName + item;