首页 > 其他分享 >ssts-hospital-web-master项目实战记录十六:项目迁移-模块实现(page-info)

ssts-hospital-web-master项目实战记录十六:项目迁移-模块实现(page-info)

时间:2024-02-25 23:24:51浏览次数:18  
标签:info web span console log ssts hospital input const

记录时间:2024-02-25

二、page-info模块实现

framework/page-info/index.ts

//javascript用来遍历指定对象所有的属性名称和值 //obj 需要遍历的对象 const allProps = function (obj: any, props: string = ''): string {   // 使用 Object.keys() 获取对象自身的所有属性键   const keys = Object.keys(obj)
  // 遍历这些属性键   for (const key of keys) {     const value = obj[key]
    // 如果是函数,则调用它     if (typeof value === 'function') {       value()     } else {       // 如果是对象,则递归调用       if (typeof value === 'object' && value !== null) {         props = allProps(value, props)       } else {         // 添加属性名和值到 props 字符串         props += `${key}=${value}\r\n`       }     }   }
  // 返回包含所有属性名和值的字符串   return props }
//生成快照文件名 /*文件命名规则 1.允许文件或者文件夹名称不得超过255个字符。 2.文件名除了开头之外任何地方都可以使用空格。 3.文件名中不能有下列符号:\/:*?"<>|。 4.Windows 98文件名不区分大小写,但在显示时可以保留大小写格式。 5.文件名中可以包含多个间隔符,如“我的文件。我的图片。001”。 */ const CreateSnapshotFileName = function (s: string) {   const pattern = new RegExp('[/:*?"<>|]')   let rs = ''   for (let i = 0; i < s.length; i++) {     rs = rs + s.substring(i, i + 1).replace(pattern, '')   }
  return rs }
//获取页面信息 const GetPageInfo = function (   state: string,   businessTrace: string | null ): string {   console.log('GetPageInfo:', state)   // 获取Url路径并解码   const href = decodeURIComponent(window.location.href)
  // 构建页面信息   let pageInfo = `【${businessTrace}】${state}-【${href}】\r\n`
  // 获取控件信息并追加到页面信息中   pageInfo += GetControlsInfo()
  return pageInfo }
//获取控件 //格式:[text]-id=(value) const GetControlsInfo = function () {   let ret = ''   // 获取所有 input 元素   const inputs = document.getElementsByTagName('input')
  // 遍历 input 元素   for (const input of inputs) {     // 只处理 type 为 'text' 且 id 不为空的 input 元素     if (input.type === 'text' && input.id) {       ret += `[${input.type}]-${input.id}-(${input.value})\r\n`     }   }
  // 获取所有 span 元素   const spans = document.getElementsByTagName('span')
  // 遍历 span 元素   for (const span of spans) {     // 只处理 id 不为空的 span 元素     if (span.id) {       ret += `[span]-${span.id}-(${span.innerText})\r\n`     }   }
  return ret }
export { allProps, CreateSnapshotFileName, GetPageInfo, GetControlsInfo }  

二、调用示例

test-framework-page-info.vue

<script setup lang="ts"> import { onMounted } from 'vue' import { allProps, CreateSnapshotFileName, GetPageInfo, GetControlsInfo } from '@/framework/page-info'
const TestPageInfo = function () {   console.log('TestPageInfo begin')
  const objTest = { 'TerminalIp': '192.168.1.100', 'TerminalName': 'test' }   console.log('objTest:', objTest)
  const strProps = allProps(objTest)   console.log('strProps:', strProps)
  const businessTrace = null   const info = {     errorMessage: 'test',     lineNumber: 1,     href: `http://localhost:19004/WebAdapter_AdapterTest.html`   }
  const snapshotInfoInline = `${info.href}-【${info.errorMessage}】-【行号:${info.lineNumber}】`   console.log('snapshotInfoInline:', snapshotInfoInline)   const snapshotFileName = CreateSnapshotFileName(snapshotInfoInline)   console.log('snapshotFileName:', snapshotFileName)
  const pageInfo = GetPageInfo('【错误】', businessTrace)   console.log('pageInfo:', pageInfo)
  const controlsInfo = GetControlsInfo()   console.log('controlsInfo:', controlsInfo)
  console.log('TestPageInfo end') }
onMounted(() => {   console.log('test-framework.vue', 'mounted')
  TestPageInfo() })
</script>
<template>   <div>     <title>测试框架</title>     <input id="inputTest" type="text" value="this is a test input." />     <span id="spanTest">this is a test span.</span>   </div> </template>
<style scoped></style>  

三、运行测试

 

翻译

搜索

复制

<iframe height="240" width="320"></iframe>

标签:info,web,span,console,log,ssts,hospital,input,const
From: https://www.cnblogs.com/lizhigang/p/18033326

相关文章

  • ssts-hospital-web-master项目实战记录十四:项目迁移-模块实现(log-local)
    记录时间:2024-02-25一、log-local模块实现framework/config/index.ts//终端日志文件配置constLogTerminalInfoDir='D:\\LogInfo\\LogTerminalInfo\\'constLogTerminalInfoFileNamePrefix='LogTerminalInfo'//错误页面快照文件配置constLogErrorPageSnapshotFil......
  • Docker安装mariadb数据库与web管理工具phpmyadmin
    安装mariadb数据库获取指定版本的mariadb数据库docker镜像使用dockersearchmariadb搜索相关镜像;MacBook-Pro:~chenxiaolong$dockersearchmariadbNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDmar......
  • .Net 6 WebAPI 使用JWT进行 授权认证配置
    .Net6WebAPI使用JWT进行授权认证1、安装组件(Nuget)Microsoft.AspNetCore.Authentication.JwtBearer2、Program.cs配置//授权认证(使用JWT)builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(o=>{//私钥varsecretByte=Enco......
  • ssts-hospital-web-master项目实战记录十四:项目迁移-模块实现(file-system-object:FileS
    记录时间:2024-02-25一、准备工作【使用“文心一言”搜索使用ts实现类模块】在TypeScript中,类可以作为模块的一部分被导出,这样其他模块就可以导入并使用这些类。以下是如何使用TypeScript实现类模块的基本步骤:步骤1:定义类模块首先,在一个TypeScript文件中定义一个或多个......
  • Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行
    前言:之前有网友说Mvc系列的教程对新手不友好,因此补充新手入门系列教程。在开始使用Taurus.Mvc 进行Web应用开发之前,建议可以观摩一下之前的文章:WebAPI系列教程因为两者的教程,有相通的部分,唯一的差别部分,在于Web应用涉及到UI界面。本系列的目录大纲为:Taurus.MVCWebMVC......
  • ssts-hospital-web-master项目实战记录十三:项目迁移-架构设计(前台管理)
    记录时间:2024-02-24前台管理 CashTradeClean.html CashTradeDetails.html CashTradeSettle.html DeviceTest.html GoodsManage.html login.html Main.html ReceiptReprint.html SystemManage.html翻译搜索复制......
  • ssts-hospital-web-master项目实战记录十三:项目迁移-架构设计(适配器、设备驱动)
    记录时间:2023-02-24适配器adapter.jsadapter/adapter.ts:全部1.属性 2.函数 2.1.标准适配器 2.2.Ajax操作 adapterPOS.jsadapter-pos.ts:全部1.入口2.属性   3.函数  设备驱动devicedriver.jsdevice-driver/index.ts:全部1.以发卡机为例......
  • ssts-hospital-web-master项目实战记录十二:项目迁移-架构库和插件库
    记录时间:2024-02-24架构库和插件库1.架构库(1)common.js (2)web.*.js 2.插件库待建设 一、Html项目js文件目录结构(VS2015)  二、Vue项目ts文件目录结构(VS Code)1.架构库 2.插件库   翻译搜索复制......
  • [陇剑杯 2021]webshell
    追踪流进行解题第一题:黑客登录系统使用的密码是Admin123!@#在第6个流的时候可以发现login的页面和有相关的信息,复制进行解码得到结果或者在搜索栏里用POST规则搜索,因为密码登录的规则一般是POST方式  第二题:黑客修改了一个日志文件,文件的绝对路径为/var/www/html/data......
  • SeaTunnel Web 在Ubuntu环境的安装
    SeaTunnelWeb在Ubuntu环境的安装目录SeaTunnelWeb在Ubuntu环境的安装下载软件测试SeaTunnel任务下载连接器启动客户端模式配置web元数据库配置Web应用配置JAVA_HOME配置SEATUNNEL_HOME添加MySQL驱动添加连接器到Web启动服务页面测试下载软件下载SeaTunnel二进制文件下载......