diff --git a/src/utils/directive.js b/src/utils/directive.js index f8a45b9..8b12bc1 100644 --- a/src/utils/directive.js +++ b/src/utils/directive.js @@ -1,18 +1,28 @@ import Vue from "vue"; +const handle = (e, vNode) => { + let val = e.target.value; + let qualifiedNum = val + .replace(/[^\d.]/g, "") + .replace(/^\./g, "") + .replace(/\.{2,}/g, ".") + .replace(/^0{2,}/g, "0") + .replace(".", "$#$") + .replace(/\./g, "") + .replace("$#$", "."); + vNode.componentInstance.$emit("input", qualifiedNum); +}; + Vue.directive("checkNum", { - update(el, binding, vNode) { - if (el.children.length) { - let val = el.children[0].value; - let qualifiedNum = val - .replace(/[^\d.]/g, "") - .replace(/^\./g, "") - .replace(/\.{2,}/g, ".") - .replace(/^0{2,}/g, "0") - .replace(".", "$#$") - .replace(/\./g, "") - .replace("$#$", "."); - vNode.componentInstance.$emit("input", qualifiedNum); + bind(el, binding, vNode) { + if (!el.children.length) { + return; } + el.children[0].addEventListener("keyup", (e) => { + handle(e, vNode); + }); + }, + unbind(el) { + el.children[0].removeEventListener("keyup"); }, }); diff --git a/src/views/product/components/add.vue b/src/views/product/components/add.vue index ed382c9..da4dc77 100644 --- a/src/views/product/components/add.vue +++ b/src/views/product/components/add.vue @@ -120,28 +120,28 @@ export default { { required: true, message: "请输入产品名称", trigger: "blur" }, ], productType: [ - { required: true, message: "请选择产品类型", trigger: "blur" }, + { required: true, message: "请选择产品类型", trigger: "change" }, ], refineryId: [ - { required: true, message: "请选择炼厂", trigger: "blur" }, + { required: true, message: "请选择炼厂", trigger: "change" }, ], belongLibrary: [ { required: true, message: "请输入所属炼厂库名", trigger: "blur" }, ], floorPrice: [ - { required: true, message: "请输入所属炼厂库名", trigger: "blur" }, + { required: true, message: "请输入成本价", trigger: "blur" }, ], salePrice2company: [ - { required: true, message: "请输入所属炼厂库名", trigger: "blur" }, + { required: true, message: "请输入企业销售价", trigger: "blur" }, ], salePrice2personal: [ - { required: true, message: "请输入所属炼厂库名", trigger: "blur" }, + { required: true, message: "请输入个人销售价", trigger: "blur" }, ], measurement: [ { required: true, message: "请输入计量单位", trigger: "blur" }, ], enableMark: [ - { required: true, message: "请选择启用状态", trigger: "blur" }, + { required: true, message: "请选择启用状态", trigger: "change" }, ], }, }; @@ -183,10 +183,12 @@ export default { }, closeWindow() { this.$emit("closeWindow"); - this.$refs.form.clearValidate(); this.form = {}; this.controlWindows.addInfo = {}; - this.controlWindows.add = false; + this.$nextTick(() => { + this.$refs.form.clearValidate(); + this.controlWindows.add = false; + }); }, }, }; diff --git a/src/views/product/components/adjust.vue b/src/views/product/components/adjust.vue index 15821e3..125fb9a 100644 --- a/src/views/product/components/adjust.vue +++ b/src/views/product/components/adjust.vue @@ -69,8 +69,10 @@ export default { closeWindow() { this.form = {}; this.$emit("closeWindow"); - this.$refs.form.clearValidate(); - this.controlWindows.adjust = false; + this.$nextTick(() => { + this.$refs.form.clearValidate(); + this.controlWindows.adjust = false; + }); }, }, }; diff --git a/src/views/product/components/batch.vue b/src/views/product/components/batch.vue index 90c11be..39a9104 100644 --- a/src/views/product/components/batch.vue +++ b/src/views/product/components/batch.vue @@ -42,7 +42,7 @@ export default { form: {}, rules: { enableMark: [ - { required: true, message: "请选择修改状态", trigger: "blur" }, + { required: true, message: "请选择修改状态", trigger: "change" }, ], }, }; @@ -68,8 +68,10 @@ export default { this.list = []; this.form = {}; this.$emit("closeWindow"); - this.$refs.form.clearValidate(); - this.controlWindows.batch = false; + this.$nextTick(() => { + this.$refs.form.clearValidate(); + this.controlWindows.batch = false; + }); }, }, }; diff --git a/src/views/product/components/create.vue b/src/views/product/components/create.vue index 08bfa40..3a60235 100644 --- a/src/views/product/components/create.vue +++ b/src/views/product/components/create.vue @@ -103,13 +103,13 @@ export default { { required: true, message: "请输入产品名称", trigger: "blur" }, ], refineryId: [ - { required: true, message: "请选择炼厂", trigger: "blur" }, + { required: true, message: "请选择炼厂", trigger: "change" }, ], enableMark: [ - { required: true, message: "请选择启用状态", trigger: "blur" }, + { required: true, message: "请选择启用状态", trigger: "change" }, ], productType: [ - { required: true, message: "请选择产品类型", trigger: "blur" }, + { required: true, message: "请选择产品类型", trigger: "change" }, ], }, }; diff --git a/src/views/product/index.vue b/src/views/product/index.vue index 813cbe9..83b64bf 100644 --- a/src/views/product/index.vue +++ b/src/views/product/index.vue @@ -328,10 +328,6 @@ export default { title: "产品修改", ...row, }; - console.log( - "this.controlWindows.addInfo", - this.controlWindows.addInfo.floorPrice - ); this.controlWindows.add = true; } }, diff --git a/src/views/refineryAccount/components/add.vue b/src/views/refineryAccount/components/add.vue index cfd34be..4dfb5b2 100644 --- a/src/views/refineryAccount/components/add.vue +++ b/src/views/refineryAccount/components/add.vue @@ -111,8 +111,10 @@ export default { this.$emit("closeWindow"); this.form = {}; this.controlWindows.addInfo = {}; - this.$refs.form.clearValidate(); - this.controlWindows.add = false; + this.$nextTick(() => { + this.$refs.form.clearValidate(); + this.controlWindows.add = false; + }); }, }, }; diff --git a/src/views/refineryInfo/components/add.vue b/src/views/refineryInfo/components/add.vue index 845a163..dda78cd 100644 --- a/src/views/refineryInfo/components/add.vue +++ b/src/views/refineryInfo/components/add.vue @@ -74,13 +74,13 @@ export default { { required: true, message: "请输入炼厂名称", trigger: "blur" }, ], refineryType: [ - { required: true, message: "请选择炼厂类型", trigger: "blur" }, + { required: true, message: "请选择炼厂类型", trigger: "change" }, ], enableMark: [ - { required: true, message: "请选择启用状态", trigger: "blur" }, + { required: true, message: "请选择启用状态", trigger: "change" }, ], refineryLevel: [ - { required: true, message: "请选择炼厂等级", trigger: "blur" }, + { required: true, message: "请选择炼厂等级", trigger: "change" }, ], address: [ { required: true, message: "请输入炼厂地址", trigger: "blur" }, @@ -117,8 +117,10 @@ export default { this.$emit("closeWindow"); this.form = {}; this.controlWindows.addInfo = {}; - this.$refs.form.clearValidate(); - this.controlWindows.add = false; + this.$nextTick(() => { + this.$refs.form.clearValidate(); + this.controlWindows.add = false; + }); }, }, };