variableTextarea可插入变量的文本框
项目中这样一个需求:配置一个消息的模板,可输入文字,可插入变量。
在Ant-Design-Vue中,原生的a-textarea组件并不直接支持插入类似标签的特殊节点或变量。但是,我们可以通过一些变通的方法来实现。具体思路如下:使用可编辑 Div 配合隐藏的 a-textarea 模拟文本框。
封装variableTextarea组件123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 ...
sortablejs实现拖拽功能
vue项目中实现拖拽功能有两个现有的插件,sortablejs和vuedraggable。vuedraggable是基于sortablejs封装的。
在Vue项目中,结合 <div v-for="item in list"></div> 和 sortable.js 实现拖拽排序是一个常见需求。或者是对一个表格的行进行拖拽排序,也是一个常见需求。
安装Sortable.js1npm install sortablejs --save
在Vue组件中的使用说明一个普通的列表1234567891011121314151617181920212223242526272829303132333435363738394041<template> <div> <!-- 这是你的拖拽列表容器 --> <div ref="sortableList"> <!-- 使用v-for渲染列表 --> <div v-for="item ...
vue pinia store持久化实现方法
vue3全局状态管理的方案是用pinia,pinia的持久化要怎么实现呢?
方法1 利用插件安装插件1yarn add pinia-plugin-persistedstate
在创建pinia实例的时候,注册插件12345import { createPinia } from 'pinia'import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'const pinia = createPinia()pinia.use(piniaPluginPersistedstate)app.use(pinia)
在store中定义持久化字段12345678910111213import { defineStore } from 'pinia'export const useAuthStore = defineStore('auth', { state: () => ({ ...
git常用命令
常用清理远端已经删除但本地还有缓存的分支1git remote prune origin
或者
1git remote update origin --prune
拉取远端release分支并合并到当前分支1git pull origin release
git pull = git fetch + git merge以上一条命令等于下面两条命令
12git fetch origin release # 从远端把release分支拉下来git merge origin/release
1git merge release # 把本地的release合并到本地当前分支
推送1git push -u origin release
-u是为使本地release和远端release做关联
1git push --force # 强制推送
退到某个版本1git reset --hard d36a7281ca2c72a739e887d572faaee5ccdbfc05
git reset HEAD^ 回退到上个版本git reset HEAD^^ 回退到上上个版本
基础初始 ...
sourceTree如何使用cherry-pick功能
cherry-pick功能:从一个分支中选择一个或多个提交记录,并将他们应用的当前分支
使用cherry-pick功能的步骤如下
在sourceTree中,切换到目标分支
在提交记录中,选择单条提交记录,或者按住command键(mac电脑)选择多条提交记录
在选中的提交记录上右键,选择遴选
在弹出的窗口中,点继续
这样就会把相关的提交记录应用到当前分支上
在步骤4中可以勾选成功合并后立即提交,也可以不勾选自己再手动提交。
前端如何支付
项目中做到鸿蒙app下单支付,记录一下支付流程
支付宝支付如果是app
调用后端接口,后端会生成一个订单号。
调用支付接口jspay,传入订单号,后端会返回一个支付链接。
app通过支付链接,跳转到支付宝支付页面。
回到app,判断已经点击过支付(模拟从支付宝回来),跳转支付结果页面,查询支付结果的接口,如果返回成功则展示支付成功信息。否则调3次,结果还是失败就展示失败信息。
如果是web
调用后端接口,后端会生成一个订单号。(同上)
调用支付接口,传入订单号,后端会返回一个支付链接。(同上)
把支付链接转成一个二维码,可供手机扫码。(用了一个插件qrcode.vue)
轮询查支付结果。当返回成功时,跳转成功页。否则一直轮询,因为不知道用户什么时候扫码。
微信支付微信与支付宝不同的是微信的支付链接是固定的,而支付宝的支付链接是变化的。
如果是web
调用后端接口,后端会生成一个订单号。
支付链接自己拼接好。微信的支付链接:https://www.beeselect.net/miniprogram?orderNo=&totalAmount=&goodsDesc ...
鸿蒙app编译构建的配置文件解析(鸿蒙六)
build-profile.json5
build-profile.json5文件分为工程级与模块级,其中buildOption在工程级文件和模块级文件均可配置,其中相同字段以模块级的字段为准,不同字段模块级的buildOption配置会继承工程级配置。为什么记录这个,是在开发中涉及到混淆配置,所以记录下
工程级123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172{ "app": { // 签名 "signingConfigs": [ { "name": "release", "type": "HarmonyOS", "material&quo ...
hsp和har的转换(鸿蒙五)
在一个项目中业务量比较大,会把一些功能分包,创建的时候分两种类型:share Library和static Library,前者创建出来的类型是hsp,后者是har。
开发过程中可能会遇到共享包转型场景,主要有hsp转har包和har转hsp包两种情况。共享包转换核心思路就是将配置文件统一,比如将hsp支持的配置文件转换为har的配置文件,主要涉及module.json5、hvigorfile.ts、(build-profile.json5文件),以及路由方式切换等场景。
hsp转har
在hsp下的module.json5中,把”type”: “shared”修改为”type”: “har”,删除”deliveryWithInstall”、”pages”字段。
然后再找到hsp下的hvigorfile.ts文件,将里面的hspTasks改为harTasks
由于har中不能声明page,需要先删除原hsp中module.json5的page声明;har不能用router.pushurl路由方式,需要修改原有router.pushurl路由为navigation(推荐)或命名路由跳转方 ...
我劝你不要乱写三元表达式
我劝你不要乱写三元表达式,你看看这容易读懂吗代码是写给人看的,不是写给机器看的,机器只喜欢01,你会写01吗?发现别的同事写的一段代码,实在是难以理解,如下:
12345678910item.renewalStartDate = item.orderStatus == 2 ? item.payType == 3 ? item.auditDate ? dayjs(item.auditDate).format('YYYY-MM-DD') : '' : item.payDate ? dayjs(item.payDate).format('YYYY-MM-DD') : '' : '';
你看看上面这段代码,它容易读懂吗?真是服了,写的啥啊?给上面的代码加一下小括号,应该可以协助理解,经过仔细研究,改写成这样:
123456789101112131415161718item.renewalStartDate = i ...
应用程序包(鸿蒙四)
HAP(Harmony Ability Package)一个HAP文件包含应用的所有内容,其文件后缀名为.hap。HAP包是由代码、资源、三方库及应用配置文件等打包生成的模块包。其主要分为两种类型:entry和feature。
entry:应用的主模块,作为应用的入口,提供了应用的基础功能。
feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。
应用程序包可以只包含一个基础的entry包,也可以包含一个基础的entry包和多个功能性的feature包。
使用场景单HAP场景如果只包含UIAbility组件,无需使用ExtensionAbility组件,优先采用单HAP(即一个entry包)来实现应用开发。虽然一个HAP中可以包含一个或多个UIAbility组件,为了避免不必要的资源加载,推荐采用“一个UIAbility+多个页面”的方式。
多HAP场景如果应用的功能比较复杂,需要使用ExtensionAbility组件,可以采用多HAP(即一个entry包+多个feature包)来实现应用开发,每个HAP中包含一个UIAbility组 ...