UNPKG

jcss-fence-plugin-demo

Version:

jcss电子围栏地图组件,支持绘制和编辑各种形状的围栏区域

77 lines (71 loc) 2.1 kB
// 工具函数 export function parseTime (time, cFormat) { if (arguments.length === 0 || !time) { return null } const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' let date if (typeof time === 'object') { date = time } else { if ((typeof time === 'string')) { if (/^[0-9]+$/.test(time)) { time = parseInt(time) } else { time = time.replace(new RegExp(/-/gm), '/') } } if ((typeof time === 'number') && (time.toString().length === 10)) { time = time * 1000 } date = new Date(time) } const formatObj = { y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds(), a: date.getDay() } const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { const value = formatObj[key] if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } return value.toString().padStart(2, '0') }) return time_str } export function resetForm (refName) { if (this.$refs[refName]) { this.$refs[refName].resetFields() } } // 递归筛选函数 // 递归筛选函数 - 只返回匹配节点及其所有子节点 export function filterTreeByDeptId(nodes, targetId) { if (!targetId) return nodes // 如果没有目标ID,返回原始节点 if (!nodes || !Array.isArray(nodes)) return [] for (const node of nodes) { // 如果当前节点匹配目标ID if (node.code == targetId) { // 返回该节点及其所有子节点 return [JSON.parse(JSON.stringify(node))] } // 如果当前节点不匹配,递归检查子节点 if (node.children && node.children.length > 0) { const filteredChildren = filterTreeByDeptId(node.children, targetId) // 如果在子节点中找到匹配项,返回该匹配项 if (filteredChildren.length > 0) { return filteredChildren } } } // 如果没有找到匹配节点,返回空数组 return [] } export default { parseTime, resetForm, filterTreeByDeptId }