diff --git a/Web/src/pages/business/house/houseCode/form/index.vue b/Web/src/pages/business/house/houseCode/form/index.vue index 71babbd..797531e 100644 --- a/Web/src/pages/business/house/houseCode/form/index.vue +++ b/Web/src/pages/business/house/houseCode/form/index.vue @@ -103,8 +103,8 @@ export default { this.$message.success('保存成功'); this.$confirm({ content: '已添加成功,是否继续添加?', - onOk() { - console.log('OK'); + onOk: () => { + this.$refs.forms[0].onProjectChange(); }, onCancel: () => { this.closeContentWindow(); diff --git a/Web/src/pages/business/house/houseCode/form/part.vue b/Web/src/pages/business/house/houseCode/form/part.vue index d5749b7..e52d7e3 100644 --- a/Web/src/pages/business/house/houseCode/form/part.vue +++ b/Web/src/pages/business/house/houseCode/form/part.vue @@ -35,8 +35,8 @@ - - + + 宁波市 - @@ -52,7 +52,7 @@ /> - + - @@ -66,7 +66,7 @@ - + - @@ -83,8 +83,14 @@ /> + + - {{ codeSuffix }} + + + {{ item}} + @@ -161,7 +167,7 @@ export default { type: [{ required: true, message: '请选择房屋性质' }], industry: [{ validator: validatorIndustry }], areaCode: [{ required: true, message: '请选择房屋所在区域' }], - projectId: [{ required: true, message: '请选择项目', trigger: 'blur' }], + projectId: [{ required: true, message: '请选择项目' }], no: [{ required: true, message: '请输入房屋序号', trigger: 'blur' }], address: [{ required: true, message: '请输入房屋地址', trigger: 'blur' }], lng: [{ required: true, message: '请在地图中选择坐标' }], @@ -185,6 +191,58 @@ export default { }; }, + computed: { + /** + * 房屋完整编号,仅展示 + */ + houseCode() { + const houseCode = []; + if (this.form.areaCode && this.form.areaCode.length === 4) { + let deep = this.$_.cloneDeep(this.options.areaTree); + this.form.areaCode.forEach((p, i) => { + const _deep = deep.find((m) => m.code === p); + if (i === 3) { + deep = _deep; + } else { + deep = _deep.children; + } + }); + houseCode.push(...deep.adCode.split('')); + } else { + houseCode.push(...'XXXXXXXXXXXX'.split('')); + } + + if (this.form.projectId) { + const project = this.options.projects.find((p) => p.id === this.form.projectId); + houseCode.push(...`000${project.sort}`.slice(-3).split('')); + } else { + houseCode.push(...'XXX'.split('')); + } + + if (this.form.no) { + houseCode.push(...`000${this.form.no}`.slice(-3).split('')); + } else { + houseCode.push(...'XXX'.split('')); + } + + if (this.codeSuffix) { + houseCode.push(this.codeSuffix); + } + + return houseCode; + }, + /** + * 非住宅编号后缀,仅展示 + */ + codeSuffix() { + if (this.form.industry) { + const houseIndustry = this.codes.houseIndustry.find((p) => p.code == this.form.industry); + return houseIndustry.extCode.tag; + } + return ''; + }, + }, + async created() { await this.onInit(); this.onFillData();