8 changed files with 254 additions and 56 deletions
@ -0,0 +1,56 @@ |
|||
<template> |
|||
<div> |
|||
<div :title="getAllName(item[areaName])">{{ spliceNameFun(item[areaName], 8) }}</div> |
|||
<div v-if="item[peopleName] && !item[peopleName].includes(',')" @click="gotoPersonnel(item.resiId)" :title="getAllName(item[peopleName])">{{ spliceNameFun(item[peopleName], 12) }}</div> |
|||
<div class="name_more" v-if="item[peopleName] && item[peopleName].includes(',')"> |
|||
<span v-for="(i, k) in item[peopleName].split(',')" :key="i" @click="gotoPersonnel(item.resiId[k])" :title="getAllName(i)">{{ spliceNameFun(i, 12) }}{{ k === getItemNameArr(item[peopleName]).length - 1 ? "" : "," }}</span> |
|||
<popTips :item="item" /> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "NameSplit", |
|||
props: { |
|||
item: { |
|||
type: Object, |
|||
default: () => {}, |
|||
}, |
|||
areaName: { |
|||
type: String, |
|||
default: "partyOrgName", |
|||
}, |
|||
peopleName: { |
|||
type: String, |
|||
default: "principalName", |
|||
}, |
|||
}, |
|||
data() { |
|||
return {}; |
|||
}, |
|||
methods: { |
|||
getAllName(item) { |
|||
return item; |
|||
}, |
|||
|
|||
getItemNameArr(str) { |
|||
return str.split(",").slice(0, 2); |
|||
}, |
|||
|
|||
spliceNameFun(row, num) { |
|||
if (row && row.length > num) { |
|||
return row.substring(0, num) + "..."; |
|||
} |
|||
return row; |
|||
}, |
|||
gotoPersonnel(id) { |
|||
if (id) { |
|||
this.$router.push({ path: "/organizational/orgPersonnel", query: { user_id: id } }); |
|||
} else { |
|||
this.$message.error("无法跳转!"); |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
@ -0,0 +1,57 @@ |
|||
<template> |
|||
<el-popover popper-class="popperClass" placement="right" trigger="hover"> |
|||
<div class="popperList"> |
|||
<div style="margin-bottom: 13px">家庭类别</div> |
|||
<div class="listMsg" v-for="item in homeTypeArr" :key="item"> |
|||
<img :src="require(`@/assets/images/home/${getHomeTypesMap(item)[1]}.png`)" alt="" /> |
|||
<span style="margin-left: 3px">{{ getHomeTypesMap(item)[0] }}</span> |
|||
</div> |
|||
</div> |
|||
<slot></slot> |
|||
</el-popover> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "PopTips", |
|||
props: { |
|||
homeTypeArr: { |
|||
type: Array, |
|||
default: () => [], |
|||
}, |
|||
}, |
|||
data() { |
|||
return {}; |
|||
}, |
|||
methods: { |
|||
// 家庭类别Map |
|||
getHomeTypesMap(item) { |
|||
const homeTypeMap = new Map([ |
|||
["partyFlag", { name: "党员", icon: "dy" }], |
|||
["subsistenceAllowanceFlag", { name: "低保人员", icon: "dbry" }], |
|||
["ensureHouseFlag", { name: "保障房人员", icon: "bzfry" }], |
|||
["unemployedFlag", { name: "失业人员", icon: "syry" }], |
|||
["fertileWomanFlag", { name: "育龄妇女", icon: "ylfn" }], |
|||
["veteranFlag", { name: "退役军人", icon: "tyjr" }], |
|||
["unitedFrontFlag", { name: "统战人员", icon: "tzry" }], |
|||
["petitionOfficerFlag", { name: "信访人员", icon: "xfry" }], |
|||
["volunteerFlag", { name: "志愿者", icon: "zyz" }], |
|||
["oldPeopleFlag", { name: "老年人", icon: "lnr" }], |
|||
["emptyNesterFlag", { name: "空巢老人", icon: "kclr" }], |
|||
["specialSupportFlag", { name: "特扶人员", icon: "tfry" }], |
|||
["disabledFlag", { name: "失能人员", icon: "snry" }], |
|||
["dementedFlag", { name: "失智人员", icon: "szry" }], |
|||
["disabilityFlag", { name: "残疾人", icon: "cjr" }], |
|||
["seriousIllnessFlag", { name: "大病人员", icon: "dbry" }], |
|||
["chronicDiseaseFlag", { name: "慢性病人员", icon: "mxbry" }], |
|||
["specialCrowdFlag", { name: "特殊人群", icon: "tsry" }], |
|||
["tenantFlag", { name: "租户", icon: "zh" }], |
|||
["floatingFlag", { name: "流动人员", icon: "ldry" }], |
|||
["liveAloneFlag", { name: "独居老人", icon: "kclr" }], |
|||
["publicWelfareFlag", { name: "公益岗人员", icon: "gyg" }], |
|||
]); |
|||
return [homeTypeMap.get(item).name, homeTypeMap.get(item).icon]; |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
@ -0,0 +1,41 @@ |
|||
<template> |
|||
<el-popover v-if="getItemNameArr(item.name).length > 2" popper-class="popperClass" placement="right" trigger="hover"> |
|||
<div class="popperList"> |
|||
<div style="margin-bottom: 13px">所有人员</div> |
|||
<div v-for="(itm, idx) in getItemNameArr(item.name)" :key="itm"> |
|||
<span style="cursor: pointer" @click="gotoPersonnel(item.resiId[idx])">{{ itm }}</span> |
|||
</div> |
|||
</div> |
|||
<i slot="reference" style="margin-left: 2px" class="el-icon-more"></i> |
|||
</el-popover> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "PopTips", |
|||
props: { |
|||
item: { |
|||
type: Object, |
|||
default: () => {}, |
|||
}, |
|||
}, |
|||
data() { |
|||
return {}; |
|||
}, |
|||
methods: { |
|||
gotoPersonnel(id) { |
|||
if (id) { |
|||
this.$router.push("/organizational/orgPersonnel"); |
|||
} else { |
|||
this.$message({ |
|||
message: "无法跳转", |
|||
type: "error", |
|||
}); |
|||
} |
|||
}, |
|||
getItemNameArr(str) { |
|||
return str.split(","); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
Loading…
Reference in new issue