当前位置: 首页 > news >正文

广告公司出售家具 税率江门做网站seo的

广告公司出售家具 税率,江门做网站seo的,做网站必须网站备案,上海c网站建设最近开发中遇到一个需求: 焊接机器人的屏幕上集成web前端网页, 但是没有接入键盘。这就需要web端开发一个虚拟键盘,在网上找个很多虚拟键盘没有特别适合,索性自己写个简单的 图片: 代码: (代码可能比较垃圾冗余,也没时间优化,凑合看吧) 第一步:创建键盘组件 为了方便使用…最近开发中遇到一个需求: 焊接机器人的屏幕上集成web前端网页, 但是没有接入键盘。这就需要web端开发一个虚拟键盘,在网上找个很多虚拟键盘没有特别适合,索性自己写个简单的 图片: 代码: (代码可能比较垃圾冗余,也没时间优化,凑合看吧) 第一步:创建键盘组件 为了方便使用,我将键盘写成组件的方式,在app.vue中引入可以全局使用 templateel-dialogv-modelisShowsappend-to-bodytruewidth80%closedialogClosedivclasskeyboard_popclick.selfisShows falsediv classinputspanv-if!showTextclassplaceholder请输入内容/spanp v-else{{ showText }}/p/divdiv classkeyboarddivv-for(row, index) in keyList:keyindexclasskeyRowdivv-for(key, keyIndex) in row:keykeyIndex:class{delete: key Delete,capslock: key Caps,space: key Space,capsed: key Caps hasCapsed,li: true,}clickclickKey(key){{ key }}/div/div/div/div/el-dialog /template script setup nametemplateimport useHomeStore from /stores/home; //引入仓库import { storeToRefs } from pinia; //引入pinia转换import { ElMessage } from element-plus;const userInfoStore useHomeStore();const { isShows, showText, inputType } storeToRefs(userInfoStore); // 响应式const emits defineEmits([updatekey]);const keyvalue ref(showText); //键盘输入值 this.keyboardtextconst normalKeyList ref([[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, ],[q, w, e, r, t, y, u, i, o, p, [, ], \\],[a, s, d, f, g, h, j, k, l, ;, , Enter],[z, x, c, v, b, n, m, ,, ., /],[Caps, Space, Delete],]); //正常键盘列表const capsedKeyList ref([[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, ],[Q, W, E, R, T, Y, U, I, O, P, [, ], \\],[A, S, D, F, G, H, J, K, L, ;, , Enter],[Z, X, C, V, B, N, M, ,, ., /],[Caps, Space, Delete],]); //大写键盘列表const keyList ref(normalKeyList.value); //键盘列表const hasCapsed ref(false); //是否大写const clickKey (key) {if (inputType.value number) {const flag [0,1,2,3,4,5,6,7,8,9,.,Enter,Delete,].includes(key);if (!flag) {return ElMessage({message: 请输入数字,type: warning,});}}switch (key) {case Enter:userInfoStore.showText keyvalue.value;userInfoStore.clickEnter();break;case Delete:let kbt keyvalue.value;keyvalue.value kbt.length ? kbt.substring(0, kbt.length - 1) : kbt;break;case Space:keyvalue.value ;break;case Caps:hasCapsed.value !hasCapsed.value;keyList.value hasCapsed.value ? capsedKeyList.value : normalKeyList.value;break;default:keyvalue.value key;break;}userInfoStore.showText keyvalue.value;const dialogClose () {//遮罩层关闭userInfoStore.dialogClose();};}; /script style langscss scoped.input {min-height: 80px;border: 1px solid #ccc;border-radius: 5px;margin-bottom: 30px;padding: 10px;}.keyboard_pop {width: 100%;}.keyRow {display: flex;justify-content: space-between;align-items: center;margin-bottom: 10px;}.keyboard {margin: 0;padding: 0;list-style: none;user-select: none;background: #fff;width: 100%;padding: 5px 15px;overflow: auto;.li {padding: 8px 18px;text-align: center;background: #fff;border-radius: 15px;font-size: 18px;font-weight: 500;box-shadow: 0 3px 6px 0px #cac9c9;:hover {cursor: pointer;background: #03ba82;color: #fff;}:active {top: 1px;left: 1px;}}.delete {width: 100px;}.space {width: 300px;}.capsed {position: relative;top: 1px;left: 1px;border-color: #e5e5e5;cursor: pointer;}} /style第二步:注册自定义事件 (给元素绑定自定义事件,input获取光标直接可以显示虚拟键盘,方便操作!) const isInput (dom) {// 检查dom是否是input元素if (dom.tagName INPUT) {return dom;}// 如果不是input元素且有子节点则递归查找子节点if (dom.children) {for (let child of dom.children) {let input isInput(child);if (input) {return input; // 如果找到input元素立即返回}}}// 如果没有找到input元素返回nullreturn null; };import pinia from /stores/index; import useHomeStore from /stores/home; //引入仓库 const userInfoStore useHomeStore(pinia);export const showKeyboard {mounted(el, binding) {const input isInput(el);if (!input) {return console.log(绑定错误,没有input元素);}//保存input元素userInfoStore.inputDom input;//给input注册input事件input.addEventListener(focus, function (e) {console.log(聚焦了);console.dir(e);//保存input输入框的类型userInfoStore.inputType e.target.type;userInfoStore.inputDom e.target;userInfoStore.isShows true;userInfoStore.showText e.target.value;e.target.blur();});// input.addEventListener(blur, function (e) {// console.log(失去聚焦了);// // userInfoStore.isShows false;// });}, };第三步:pinia保存全局变量 (全局保存变量,各个input输入的值方便保存) import { defineStore } from pinia;const useHomeStore defineStore(Home, {// defineStore(userInfo,{}) Home就是这个仓库的名称namestate: () ({inputDom: null,isShows: false,showText: ,inputType: ,}),actions: {//点击键盘确定clickEnter() {//this.inputDom.change()console.log(this.showText);this.inputDom.value JSON.parse(JSON.stringify(this.showText))console.dir(this.inputDom);//手动触发change事件// 什么是dispatchEvent// 向一个指定的事件目标派发一个事件,// 并以合适的顺序同步调用目标元素相关的事件处理函数。// 标准事件处理规则(包括事件捕获和可选的冒泡过程)// 同样适用于通过手动的使用dispatchEvent()方法派发的事件。this.inputDom.dispatchEvent(new Event(input));this.inputDom.dispatchEvent(new Event(change));this.showText ;this.inputDom.blur();this.isShows false;this.inputDom null;this.inputType ;},//遮罩层关闭dialogClose() {this.showText ;this.isShows false;this.inputDom.blur();this.inputDom null;this.inputType ;},}, });export default useHomeStore;
http://www.w-s-a.com/news/29113/

相关文章:

  • 网站设计建议建设商务网站作用
  • 网站策划的最终体现是什么模板网站建设流程图
  • 网站设计与开发技术教程十度公司做网站怎么样
  • 企业网站推广方案在哪里智慧团建登录入口官网手机版
  • google网页版入口seo索引擎优化
  • 东乡做网站常州网络公司联系方式
  • 做网站激励语家居装饰网站设计论文
  • 镜像的网站怎么做排名无极网站建设质量
  • 奉贤集团公司网站建设小工具文本wordpress
  • 不用代码做网站网站建设和运行费用
  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书