From 8d3210fc1aee9dfb9fe80d821d41159bedabb66f Mon Sep 17 00:00:00 2001 From: mk <2403457699@qq.com> Date: Sat, 23 Mar 2024 15:24:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6,?= =?UTF-8?q?=E5=B1=85=E6=B0=91=E5=9B=BE=E8=B0=B1=E8=81=94=E5=8A=A8=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6,=E6=88=BF=E5=B1=8B=E5=AE=B6=E5=BA=AD=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=9B=9E=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/smartImport/cpts/createdTask.vue | 45 ++++-- src/views/modules/portrayal/house/index.vue | 26 ++- .../modules/portrayal/jumin/cpts/graph.vue | 149 +++++------------- src/views/modules/portrayal/jumin/index.vue | 2 +- 4 files changed, 93 insertions(+), 129 deletions(-) diff --git a/src/views/modules/base/smartImport/cpts/createdTask.vue b/src/views/modules/base/smartImport/cpts/createdTask.vue index 29d75334f..4169783a0 100644 --- a/src/views/modules/base/smartImport/cpts/createdTask.vue +++ b/src/views/modules/base/smartImport/cpts/createdTask.vue @@ -400,6 +400,7 @@ export default { data: params, }) .then((res) => { + console.log(res); const url = window.URL.createObjectURL(new Blob([res.data])); const aLink = document.createElement("a"); aLink.style.display = "none"; @@ -424,32 +425,44 @@ export default { await this.$http({ method: "POST", url, - responseType: "blob", + // responseType: "blob", data: params, }) .then((res) => { - if (res.status==200) { + // if (res.status==200) { // let fileName = window.decodeURI( // res.headers["content-disposition"] // .split(";")[1] // .split("=")[1] // ); - let fileName = `${ + // let fileName = `${ + // this.$store.state.user.agencyName + this.categoryName + // }导入模板`; + // let blob = new Blob([res.data], { + // type: "application/vnd.ms-excel", + // }); + // var url = window.URL.createObjectURL(blob); + // var aLink = document.createElement("a"); + // aLink.style.display = "none"; + // aLink.href = url; + // aLink.setAttribute("download", fileName); + // document.body.appendChild(aLink); + // aLink.click(); + // document.body.removeChild(aLink); //下载完成移除元素 + // window.URL.revokeObjectURL(url); //释放掉blob对象 + // } else this.$message.error("下载失败"); + let fileName = `${ this.$store.state.user.agencyName + this.categoryName }导入模板`; - let blob = new Blob([res.data], { - type: "application/vnd.ms-excel", - }); - var url = window.URL.createObjectURL(blob); - var aLink = document.createElement("a"); - aLink.style.display = "none"; - aLink.href = url; - aLink.setAttribute("download", fileName); - document.body.appendChild(aLink); - aLink.click(); - document.body.removeChild(aLink); //下载完成移除元素 - window.URL.revokeObjectURL(url); //释放掉blob对象 - } else this.$message.error("下载失败"); + const url = res.data.data; + const aLink = document.createElement("a"); + aLink.style.display = "none"; + aLink.href = url; + aLink.setAttribute("download",`${fileName}.xlsx`); + document.body.appendChild(aLink); + aLink.click(); + document.body.removeChild(aLink); + window.URL.revokeObjectURL(url); }) .catch((err) => { console.log(err); diff --git a/src/views/modules/portrayal/house/index.vue b/src/views/modules/portrayal/house/index.vue index b9b808e4e..b6547f601 100644 --- a/src/views/modules/portrayal/house/index.vue +++ b/src/views/modules/portrayal/house/index.vue @@ -43,8 +43,8 @@
家庭标签:
-
- {{houseDetailObj.familyTags || "--" }} +
+ {{familyTags() }}
@@ -202,10 +202,12 @@ export default { rules: { password: [{ required: true, message: "请输入密码", trigger: "blur" }], }, + familyTagList:[] }; }, components: { graph, businessRecord, changeRecord }, created() { + this.getFamilyTagsDict() }, mounted() {}, activated() {}, @@ -298,7 +300,25 @@ export default { params: { agencyId: "1673584241869238273",gridId: "1673585475279826946",villageId:"1673600667388780545",buildId:"1673600667527192577",unitId:"1673600667577524226",homeId:"1673600737530126338"}, }); }, - + + getFamilyTagsDict(){ + this.$http.post("sys/dict/data/dictlist", { + dictType: 'family_tag', + }).then(res=>{ + if(res.data.code === 0){ + this.familyTagList = res.data.data; + } + }).catch(err=>{ + console.log(err); + }) + }, + familyTags(){ + const labels = this.houseDetailObj.familyTags.map(value => { + const item = this.familyTagList.find(obj => obj.value === value); + return item ? item.label : null; + }); + return labels?labels.join(','):'--'; + }, async handleSaveTuomin(password) { const url = `/actual/base/communityHouse/getClearHouseDeatilById/${this.houseId}`; let parm = { diff --git a/src/views/modules/portrayal/jumin/cpts/graph.vue b/src/views/modules/portrayal/jumin/cpts/graph.vue index e55de1b4e..b1994d66c 100644 --- a/src/views/modules/portrayal/jumin/cpts/graph.vue +++ b/src/views/modules/portrayal/jumin/cpts/graph.vue @@ -45,7 +45,6 @@ export default { }, mounted() { this.$nextTick(() => { - // this.showSeeksGraph(); this.getFamilyRelationshipList() }) }, @@ -62,10 +61,8 @@ export default { let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId; let { code, data, msg } = await requestPost(url) if (code == 0) { - // 找到符合条件的对象的索引 let index = data.findIndex(item => item.name == this.userInfo.name); if (index !== -1) { - // 移除这个对象并将其放到数组的第一个位置 const [item] = data.splice(index, 1); data.unshift(item); } @@ -74,7 +71,8 @@ export default { 'text': item.name, 'innerHTML': `
${item.type == 1?`${item.name}`:item.name.length === 2 ? item.name.substring(0, 1) + '*' : - item.name.substring(0, 1) + '*' + item.name.substring(2)} ${item.age?`(${item.age})岁`:''}
` + item.name.substring(0, 1) + '*' + item.name.substring(2)} ${item.age?`(${item.age})岁`:''}
`, + 'data':{id: item.id,type:item.type,name:item.name}, })) let lineList = data.map((item, index) => ({ 'from': 'N1', @@ -82,7 +80,8 @@ export default { 'text':item.type ==1?'房屋':data[index].houseHolderRel || '未知', 'isHideArrow': true, 'color': item.houseHolderRel === '父亲' ? '#3876f2' : (item.houseHolderRel === '母亲' || item.houseHolderRel === '祖父母' ? '#ff9696' : (item.houseHolderRel === '女儿' ? '#ffd5d5' : '#3876f2')), - 'fontColor': item.houseHolderRel === '父亲' ? '#3876f2' : (item.houseHolderRel === '母亲' || item.houseHolderRel === '祖父母' ? '#ff9696' : (item.houseHolderRel === '女儿' ? '#ffd5d5' : '#3876f2')) + 'fontColor': item.houseHolderRel === '父亲' ? '#3876f2' : (item.houseHolderRel === '母亲' || item.houseHolderRel === '祖父母' ? '#ff9696' : (item.houseHolderRel === '女儿' ? '#ffd5d5' : '#3876f2')), + })); lineList = lineList.slice(1) const __graph_json_data = { rootId: 'root', nodes: familyList, lines: lineList } @@ -94,109 +93,32 @@ export default { this.$message.error(msg) } }, - showSeeksGraph() { - const __graph_json_data = { - 'rootId': 'N13', 'nodes': [ - { 'id': 'N1', 'text': '', 'borderColor': '#6cc0ff', 'data': { 'isGoodMan': false, 'sexType': '男' }, 'innerHTML': '
' }, { 'id': 'N2', 'text': '李*康', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '
李*康
' }, { 'id': 'N3', 'text': '祁*伟', 'borderColor': '#6cc0ff', 'data': { 'isGoodMan': false, 'sexType': '男' }, 'innerHTML': '
祁*伟
' }, { 'id': 'N4', 'text': '陈*石', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '
陈*石
' }, { 'id': 'N5', 'text': '陆*可', 'data': { 'isGoodMan': true, 'sexType': '女' }, 'innerHTML': '
陆*可(25岁)
' }, { 'id': 'N6', 'text': '高*良', 'data': { 'isGoodMan': false, 'sexType': '男' }, 'innerHTML': '
高*良
' }, { 'id': 'N7', 'text': '沙*金', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '
沙*金
' }, { 'id': 'N9', 'text': '沙*金2', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '
沙*金2
' },], 'lines': [ - { - 'from': 'N1', - 'to': 'N6', - 'text': '', - 'color': '#3b3b3b', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '父亲' - }, - - }, - { - 'from': 'N1', - 'to': 'N7', - 'text': '父亲', - 'color': '#3b3b3b', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '母亲' - } - }, - { - 'from': 'N1', - 'to': 'N8', - 'text': '母亲', - 'color': '#3b3b3b', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '儿子' - } - }, - { - 'from': 'N1', - 'to': 'N2', - 'text': '儿子', - 'color': '#3b3b3b', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '女儿' - } - }, - { - 'from': 'N1', - 'to': 'N3', - 'text': '女儿', - 'color': '#3b3b3b', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '配偶' - } - }, - { - 'from': 'N1', - 'to': 'N4', - 'text': '配偶', - 'color': '#d7e5ff', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '岳父' - } - }, - { - 'from': 'N1', - 'to': 'N5', - 'text': '岳父', - 'color': '#3b3b3b', - 'fontColor': '#3b3b3b', - 'isHideArrow': true, - 'data': { - 'type': '岳母' - } - }, - { - 'from': 'N1', - 'to': 'N9', - 'text': '岳母', - 'isHideArrow': true, - 'color': '#ffe4e4', - 'fontColor': '#3b3b3b', - 'data': { - 'type': '岳母' - } - }, - - ] - }; - this.$refs.seeksRelationGraph.setJsonData(__graph_json_data, (graphInstance) => { - // 这些写上当图谱初始化完成后需要执行的代码 - }); - }, onNodeClick(nodeObject, $event) { - console.log('onNodeClick:', nodeObject); + let {name,id,type} = nodeObject.data + if(type === 0){ + this.$store.dispatch("saveData", { + resiId:id, + name + }); + this.$store.state.contentTabs = this.$store.state.contentTabs.map( + (item) => { + if (item.name === "jumin-huaxiang") { + return { ...item, title: name }; + } + return item; + } + ); + }else if(type === 1){ + this.$store.dispatch('saveDataH', { houseId:id, houseName:name}); + this.$router.push({ name: 'house-huaxiang' }); + this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => { + if (item.name === "house-huaxiang") { + return { ...item, title: name }; + } + return item; + }); + } }, onLineClick(lineObject, $event) { console.log('onLineClick:', lineObject); @@ -216,9 +138,9 @@ export default { } .c-node-name2 { - margin-left: -5px; + margin-left: 2px; text-align: center; - margin-top: 63px; + margin-top: 83px; line-height: 20px; position: absolute; width: 96px; @@ -267,7 +189,16 @@ export default { } .c-node-name1 { - display: none; + margin-left: 2px; + text-align: center; + margin-top: 83px; + line-height: 20px; + position: absolute; + width: 96px; + height: 20px; + background: #FFFFFF; + box-shadow: 0px 4px 6px 0px rgba(211, 213, 214, 0.4); + border-radius: 10px; } .rel-node-checked { diff --git a/src/views/modules/portrayal/jumin/index.vue b/src/views/modules/portrayal/jumin/index.vue index f06891a9c..e6fcff830 100644 --- a/src/views/modules/portrayal/jumin/index.vue +++ b/src/views/modules/portrayal/jumin/index.vue @@ -242,7 +242,7 @@
所属房屋:
- {{ item.gridName + "-" + item.homeName || "--" }} + {{ item.agencyName?item.agencyName:'' + item.homeName || "--" }}
From f79ba3b14981afb87999cfcb14d204bacb80f635 Mon Sep 17 00:00:00 2001 From: mk <2403457699@qq.com> Date: Sat, 23 Mar 2024 16:38:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=9B=BE=E8=B0=B1?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6,=E7=BB=84=E7=BB=87=E6=A0=91=E5=AE=BD?= =?UTF-8?q?=E5=BA=A6=E4=BF=AE=E6=94=B9,=E9=BC=A0=E6=A0=87=E7=A7=BB?= =?UTF-8?q?=E5=85=A5=E6=98=BE=E7=A4=BA=E5=85=A8=E9=83=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/base/community/community.vue | 67 +++++++++++---- src/views/modules/base/resi.vue | 84 +++++++++++++++---- .../modules/portrayal/house/cpts/graph.vue | 21 ++++- 3 files changed, 141 insertions(+), 31 deletions(-) diff --git a/src/views/modules/base/community/community.vue b/src/views/modules/base/community/community.vue index 8f521c20c..7aff512b3 100644 --- a/src/views/modules/base/community/community.vue +++ b/src/views/modules/base/community/community.vue @@ -42,8 +42,16 @@ {{ data.showNum }} {{ ")" }} --> - {{ data.showName }} + + + {{ node.label }} + + @@ -432,6 +440,9 @@ export default { bDisabled: false, treeIsOk: true,//树点击是否加载完成 + + isShowTooltip:false, + tooltipTitle:null, }; }, components: { @@ -492,6 +503,18 @@ export default { updateStartDate () { } }, methods: { + mouseOverNode(event){ + var target = event.target; + let textLength = target.clientWidth; + let containerLength = target.scrollWidth; + + if (textLength < containerLength) { + this.tooltipTitle = event.target.innerText; + this.isShowTooltip = false; + } else { + this.isShowTooltip = true; + } + }, handleChangeV (val) { this.buildingId = ""; this.buildingUnitId = ""; @@ -1006,28 +1029,44 @@ export default { .div_tree { margin: 7px 8px 7px 7px; - width: 30%; - max-width: 304px; - min-width: 240px; + width: 200px; + padding: 24px 15px; + background: #ffffff; + box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08), + 0px 3px 6px -4px rgba(0, 0, 0, 0.12); + // border-radius: 5px; + overflow-y: hidden; /deep/ .el-scrollbar__wrap { overflow-x: hidden !important; } - + /deep/ .el-scrollbar__bar{ + right: -2px; + } //搜索输入框样式 /deep/ .el-input--medium .el-input__inner { height: 32px; background: rgba(0, 0, 0, 0.05); border-radius: 4px; } - flex: 0 0 280px; - background: #ffffff; - box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08), - 0px 3px 6px -4px rgba(0, 0, 0, 0.12); - // border-radius: 5px; - padding: 24px 15px; - overflow-y: hidden; + +} +.custom-tree-node { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; + overflow: hidden; } +.over-ellipsis { + display: block; + width: 140PX; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + -webkit-line-clamp: 1; +} .filter_tree { overflow-x: auto; // background-color: #f6f6f6; @@ -1036,7 +1075,7 @@ export default { .div_left { // flex: 1; - width: calc(100% - 300px); + width: calc(100% - 200px); } ::v-deep .el-dialog__body { padding: 0; diff --git a/src/views/modules/base/resi.vue b/src/views/modules/base/resi.vue index f33746b63..f8a40f883 100644 --- a/src/views/modules/base/resi.vue +++ b/src/views/modules/base/resi.vue @@ -24,7 +24,7 @@ :default-expanded-keys="autoOpenArr" :load="lazyLoadTree" > - +
- {{ data.label }} - + + + {{ node.label }} + + + +
-
+
`, + 'data':{id: item.id,type:item.type,name:item.name}, + })) @@ -97,7 +99,22 @@ export default { }, onNodeClick(nodeObject, $event) { - console.log('onNodeClick:', nodeObject); + let {name,id,type} = nodeObject.data + if(type === 0){ + this.$store.dispatch("saveData", { + resiId:id, + name + }); + this.$router.push({ name: 'jumin-huaxiang' }); + this.$store.state.contentTabs = this.$store.state.contentTabs.map( + (item) => { + if (item.name === "jumin-huaxiang") { + return { ...item, title: name }; + } + return item; + } + ); + } }, onLineClick(lineObject, $event) { console.log('onLineClick:', lineObject);