排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
排名
1
文章数
15030
总访问量
216.3万
粉丝数
30
评论数
120
工作单元是一个比较重要的基础设施组件,它负责管理整个业务流程当中涉及到的数据库事务,一旦某个环节出现异常自动进行回滚处理。工作单元嘛,听名字就知道是把一系列操作当作一个整体一个单元,这样可以统一控制它的提交与回滚在 ABP vNext 框架当中,工作单元被独立出来作为一个单独的模块(Volo.Abp.Uow)。你可...
[TOC]
为什么需要日志中心日志是编写程序常用的功能。在我们排查问题的时候日志是非常有用的。我们的每个服务都在不停的生产日志。但是实施微服务后,如果按照传统的写本地文件的日志方案,就会面临跟修改配置一样的麻烦。不同的日志分散在各个服务器、容器内,这种情况下查日志简直无法忍受。日志中心就是为了...
其实原理非常简单,就是获取屏幕的高度然后减去其他内容占用的高度就行了。
核心代码如下<script setup lang="ts">
import {reactive, onMounted, toRefs, ref } from 'vue';
const state = reactive({
contentHeight:"350px",
});
onMounted(() => {
aut...
[TOC]一:创建一个WebApi项目随便取名一个,比如TeacherCertificationAPI效果如下:
顺便在appsettings.json中配置一下连接字符串,以及是否输出sql的配置,配置好之后如下:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Mic...
设计图:
[TOC]具体的代码和样式(表格没有加上合并行的)关于自定义边框样式都加了星号的
<template>
<div class="app-container">
<el-table :data="tableData" :header-cell-style="headerCellStyle" :row-style="rowStyle" :border="...
每个属性都自动换行了,这个是vscode代码格式化设置的问题。解决方法如下。
一:按下Ctrl + ,(或者Cmd + ,在Mac上)打开设置。找到当前使用的格式化插件搜索:vetur.format.defaultFormatter.html表示html使用的格式化插件
可以看到我目前使用的vue html格式化插件是Prettier,当然如果你装了更多vue html的格...
[TOC]封装的代码如下/// <summary>
/// 通用的请求类封装AJ
/// </summary>
public class NewRequestTools
{
/// <summary>
/// 当配置中获取的地址为空的时候使用的地址
/// </summary>
private string defaultBaseAddress = "https://smartedu-apis.xx.com...
Parallel允许线程并行执行。同时支持最大线程执行数量设置,可以设置最大并发数量。
[TOC]基础用法static void Main(string[] args)
{
ParallelOptions parallelOptions = new ParallelOptions();
// 表示最大同时支持三个并行方法,也就是同时开三个线程
parallelOptions.MaxDegreeOfParallelism...
在 Vue 3 中,provide 和 inject 是用于实现跨组件通信的 API,特别是当组件层次结构较深时很有用,不然如果层级太深了要一级一级的往下传比较麻烦,用provide 和inject,可以在整个组件树中共享。
[TOC]基础使用父组件父组件赋值之后可以在整个组件树中都获取到值,后代子组件都能获取到值
<script lang=&quo...
上传图片文件还可以参考:https://www.tnblog.net/aojiancc2/article/details/8233 这个里边有关于.net6实现图片上传后端的 然后后台图片文件存储是自己搭建图片服务minio[TOC]实现的效果上传图片之前的效果:
上传图片之后的效果:
封装的上传组件<!--
项目:图片上传插件
备注:接口的返回值是否符合插件...
弹窗的基础使用以及另外的一些模板可以参考:https://www.tnblog.net/aojiancc2/article/details/7064[TOC]基础模板一:弹窗里边一点方块与文字信息(使用的grid布局)效果图一:
弹窗里边的代码与样式一<template>
<view class="popup-container">
<view class="titleW...
设计图:
view:
<view class="seach-box">
<view class="seach-box-wrap">
<view class="seach-box-icon">
<image :src="`${CssImgPath}/imgs/search.png`" class="seach-box-icon-content" />
...
[TOC]效果如下
切换的时候会有动态的效果
代码如下,纯HTML+CSS样式里边的注释都写得比较清晰了,需要自定义效果,圆角什么的自行修改即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" con...
虽然可以用一些时间轴组件比如,timeline,但是有时候还是自己写点样式定制性好一点,不需要像组件那么通用。[TOC]时间轴效果一效果图
具体的代码和样式<template>
<view class="teaching-dynamics-container">
<view class="tdc-course-info">
...
表格显示的列不确定的时候就需要使用动态的方式,而不是预先绑定好。
[TOC]前端的实现数据源对于前端来说数据源和前面的一样,没什么区别,反正就是提供一下数据
const data = [
{
name: 'John Doe',
age: 30,
city: 'New York'
},
{
name: 'Jane Smith',
...
官方网址:https://gitee.com/pojianbing/lazy-captcha
[TOC]安装依赖Install-Package Lazy.Captcha.Core
注册服务可以直接这样非常简单的注入,使用的就是默认的配置
// 默认使用内存存储(AddDistributedMemoryCache)
services.AddCaptcha();
也可以使用代码在提供配置
// 注册服务的时候增加配置
servic...
这个是因为node.js升级造成的问题,可以使用这样的方法解决
"scripts": {
"serve": "vue-cli-service serve",
"serve2": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
},
也就是下面这一句
"scripts&...
使用keep-alive就行了
如果所有页面都保持页面缓存就直接在app.vue中设置中加上keep-alive就行了在app.vue中设置
<div id="app">
<!-- 所有页面都保持页面缓存 -->
<keep-alive>
<router-view></router-view>
</keep-alive&...