From 3d7bf6dff3d1e2f12c4ecd0120ee110348ccdf49 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 21 十二月 2023 16:27:09 +0800 Subject: [PATCH] 1. 自评预检查功能修改中 --- src/components/search-option/FYOptionLocation.vue | 147 ++++++++++++++++++++++++------------------------ 1 files changed, 73 insertions(+), 74 deletions(-) diff --git a/src/components/search-option/FYOptionLocation.vue b/src/components/search-option/FYOptionLocation.vue index 98db772..6a13c96 100644 --- a/src/components/search-option/FYOptionLocation.vue +++ b/src/components/search-option/FYOptionLocation.vue @@ -1,20 +1,18 @@ <template> - <el-form-item :label="placeholder"> + <el-form-item :label="placeholder" :prop="prop"> <el-cascader - v-model="selectedOptions" + :model-value="formatedValue" + @change="handleChange" :options="locations" :placeholder="placeholder" :props="optionProps" - style="width: 280px" + style="width: 320px" /> </el-form-item> </template> <script> -import { enumLocation } from '@/enum/location' - -// 璁板綍閫夐」鏄惁鏄嚜瀹氫箟浼犲叆鐨� -let customValue = true +import { enumLocation } from '@/enum/location'; export default { props: { @@ -23,7 +21,7 @@ type: Boolean, default: true }, - // 鏌ヨ鐨勮鏀跨骇鍒紝鍙栧��1锛�2锛�3锛�4 + // 鏌ヨ鐨勮鏀跨骇鍒紝鍙栧��1锛�2锛�3锛�4, 5, 6 level: { type: Number, default: 4 @@ -39,57 +37,38 @@ checkStrictly: { type: Boolean, default: true + }, + prop: { + type: String, + default: '_locations' } }, emits: ['update:value'], data() { return { locations: enumLocation(this.allOption, this.level), - selectedOptions: [], optionProps: { checkStrictly: this.checkStrictly } - } + }; }, computed: { placeholder() { - const list = '鐪�/甯�/鍖�/闀�'.split('/') - const p = [] + const list = '鐪�/甯�/鍖�/闀�/闆�/鐗�'.split('/'); + const p = []; for (let i = 0; i < this.level; i++) { - p.push(list[i]) + p.push(list[i]); } - return p.join('/') + return p.join('/'); + }, + formatedValue() { + return this.optionFormatReverse(this.value); } }, - watch: { - selectedOptions: { - handler(nVal, oVal) { - if (nVal != oVal) { - const res = this.optionFormat(nVal) - // 鏍囨槑姝ゆ椂鐨剉alue鏇存柊鏄粍浠跺唴閮ㄨЕ鍙� - customValue = false - this.$emit('update:value', res) - } - }, - deep: true - }, - value: { - handler(nVal, oVal) { - // 鍙湁褰撳�兼槸澶栭儴浼犲叆鏃讹紝鎵嶈Е鍙戞洿鏂� - if (!customValue) { - customValue = true - return - } - if (nVal != oVal) { - if (nVal || nVal.length > 0) { - this.selectedOptions = this.optionFormatReverse(nVal); - } - } - }, - deep: true, - }, - }, methods: { + handleChange(value) { + this.$emit('update:value', this.optionFormat(value)); + }, /** * 鍦板尯閫夐」缁撴灉鏍煎紡鍖� */ @@ -102,60 +81,80 @@ dCode: null, dName: null, tCode: null, - tName: null - } + tName: null, + aCode: null, + aName: null, + mCode: null, + mName: null, + }; if (val.length > 0) { - res.pCode = val[0][0] - res.pName = val[0][1] + res.pCode = val[0][0]; + res.pName = val[0][1]; } if (val.length > 1) { - res.cCode = val[1][0] - res.cName = val[1][1] + res.cCode = val[1][0]; + res.cName = val[1][1]; } if (val.length > 2) { - res.dCode = val[2][0] - res.dName = val[2][1] + res.dCode = val[2][0]; + res.dName = val[2][1]; } if (val.length > 3) { - res.tCode = val[3][0] - res.tName = val[3][1] + res.tCode = val[3][0]; + res.tName = val[3][1]; } - return res + if (val.length > 4) { + res.aCode = val[4][0]; + res.aName = val[4][1]; + } + if (val.length > 5) { + res.mCode = val[5][0]; + res.mName = val[5][1]; + } + return res; }, optionFormatReverse(val) { - const res = [] - if (val.pCode) { - res.push([val.pCode, val.pName]) + const res = []; + if (val) { + if (val.pName) { + res.push([val.pCode, val.pName]); + } + if (val.cName) { + res.push([val.cCode, val.cName]); + } + if (val.dName) { + res.push([val.dCode, val.dName]); + } + if (val.tName) { + res.push([val.tCode, val.tName]); + } + if (val.aName) { + res.push([val.aCode, val.aName]); + } + if (val.mName) { + res.push([val.mCode, val.mName]); + } } - if (val.cCode) { - res.push([val.cCode, val.cName]) - } - if (val.dCode) { - res.push([val.dCode, val.dName]) - } - if (val.tCode) { - res.push([val.tCode, val.tName]) - } - return res + return res; } }, mounted() { if (this.initValue) { if (this.checkStrictly) { - this.selectedOptions = [this.locations[0].value] + this.handleChange([this.locations[0].value]); } else { const f = (location) => { if (location.children && location.children.length > 0) { - const r = f(location.children[0]) - r.unshift(location.value) - return r + const r = f(location.children[0]); + r.unshift(location.value); + return r; } else { - return [location.value] + return [location.value]; } - } - this.selectedOptions = f(this.locations[0]) + }; + this.handleChange(f(this.locations[0])); } } } -} +}; </script> -- Gitblit v1.9.3