From 56c425d1b32020d7ef5296c96eb72ce6b37f7217 Mon Sep 17 00:00:00 2001 From: aixianling Date: Tue, 14 Jun 2022 18:23:20 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=8F=E6=89=8B=E6=8B=8D=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=97=A0=E7=BA=A7=E7=BD=91=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AiPagePicker/AiPagePicker.vue | 26 +- src/components/pages/selectGird.vue | 285 ++++++++----------- src/mods/conv/AppPhotoReport/PhotoForm.vue | 60 +--- src/pages/home.vue | 64 +++-- 4 files changed, 184 insertions(+), 251 deletions(-) diff --git a/src/components/AiPagePicker/AiPagePicker.vue b/src/components/AiPagePicker/AiPagePicker.vue index 9c31a68..bdfdb50 100644 --- a/src/components/AiPagePicker/AiPagePicker.vue +++ b/src/components/AiPagePicker/AiPagePicker.vue @@ -14,20 +14,28 @@ export default { name: "AiPagePicker", model: { prop: "value", - event: "change" + event: "input" }, props: { value: {default: ""}, type: {default: "resident"}, nodeKey: {default: "idNumber"}, selected: {default: () => []}, - placeholder: {default: "选择人员"} + placeholder: {default: "选择人员"}, + ops: {default: () => ({})}, + valueObj: Boolean, + params: {default: () => ({})}, + multiple: Boolean }, data() { return { configList: { resident: {url: "/components/pages/selectResident", label: "name"}, - gird: {url: "/components/pages/selectGird", label: "girdName"} + sysUser: {url: "/components/pages/selectSysUser", label: "name"}, + gird: {url: "/components/pages/selectGird", label: "girdName"}, + party: {url: "/components/pages/selectParty", label: "name"}, + dept: {url: "/components/pages/selectDept", label: "name"}, + custom: {...this.ops} }, } }, @@ -42,16 +50,18 @@ export default { }, methods: { handleJump() { - let {config, nodeKey} = this, - selected = this.value || this.selected?.map(e => e[nodeKey]) - uni.$once('pagePicker', data => { + let {config, nodeKey, valueObj, multiple} = this, + selected = (valueObj ? this.value[nodeKey] : this.value) || this.selected?.map(e => e[nodeKey]) + uni.$once('pagePicker:' + this.type, data => { + console.log('发送', data) this.$emit("update:selected", data) this.$emit("select", data) - this.$emit("change", data.map(e => e[nodeKey])) + this.$emit("input", valueObj ? data : + data ? (multiple ? [data].flat()?.map(e => e[nodeKey]) : data[nodeKey]) : "") }) let url = `${config.url}`, qsstr = qs.stringify({ - selected, ...this.$attrs + selected, nodeKey, multiple, ...this.params }) if (!!qsstr) { url += `?${qsstr}` diff --git a/src/components/pages/selectGird.vue b/src/components/pages/selectGird.vue index 3c9b8c6..9b42cc4 100644 --- a/src/components/pages/selectGird.vue +++ b/src/components/pages/selectGird.vue @@ -1,213 +1,188 @@