odoo系统架构介绍

简介:odoo是一个现代化的商业应用套件,使用AGPL许可证,并具有客户关系管理(CRM),人力资源、销售、采购、会计、仓库管理、项目管理,以及众多社区模块。它是基于一个模块化,可扩展和直观的快速开发应用程序(RAD)的框架,使用Python语言。OpenObject功能对象集成-关系映射(ORM),基于模板的类型-视图-控制器(MVC)接口,报表生成系统,多国语言,快速构建应用程序:是一个完整的模块化的工具。Python是一种解释性、面向对象、动态数据类型的高级程序设计语言,非常适合RAD清晰的语
分类: 企业开发 发布时间: 06-17 22:44 阅读次数: 0

js+canvas 实现图片压缩

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <input type="file" onchange="getImg(this)"/> <img src="" id="img" > <script> function ge.
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

总结:js中Object.setPrototypeOf和Object.create的区别

首先知道什么是原型,只要这样才能理解下面的内容:Object.setPrototypeOf(obj, prototype)他是将prototype作为已知对象obj的原型Object.create(prototype)是创建一个以prototype为原型的对象
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

js图片格式转换(File、blob、二进制)

一、首先知道你要转换的编码格式:log一下就能看到:Blob:二进制File二、File转Blob// 原生<input class="ut myHide" id="uploadFile" name="uploadFile" type="file" onchange="btnUploadFile(event)" /> function btnUploadFile(e){ //获取图片文件 var i...
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

原生Ajax下载excel(带token)

首先确定后端返回的是文件流let xhr = new XMLHttpRequest();xhr.open("GET", URL, true);xhr.responseType = 'blob';xhr.setRequestHeader('Authorization', token)xhr.onload = function(e) { console.log(this.response); var blob = this.response; var reader = new FileRea
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

node使用node-xlsx生成excel

安装node-xlsx(node-xlsx - npm)npm i node-xlsx依赖引入const fs = require('fs')const path = require('path')const nodexlsx = require('node-xlsx').default生成表格const list = [ [1, 2, 3], [true, false, null, 'sheetjs'], ['foo', 'bar', new Date('20..
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

记一次Vue3的数据响应式学习

function reactive(data) { return new Proxy(data, { // 读取属性是调用 get(target, propName) { console.log('我正在被嗲用', target, propName) return Reflect.get(target, propName) }, // 修改属性或添加新的属性时调用 set(target, propName,...
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

分享一下:vue3.0在VScode的模板格式

这里有三种格式:第一种:vsc:是Vue2的模板第二种:v3:是vue3+webpack版的模板第三种:vi:是Vue3+vite的模板{ "Print to console": { "prefix": "vsc", "body": [ "<template>", " <div></div>", "</template>", "", "<script>", " expor...
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

自定义检测图片加载失败指令

Vue.directive('onerror', { // 监听图片加载,加载失败替换图 inserted: function (el) { el.setAttribute('onerror', `this.src="${require('./assets/images/0.png') }"`) }})说明:1、onerror是指令标识,使用时在标签中直接加入 v-onerror 就可以2、./assets/images/0.png 是图片存放地址3、指令如果很多的情.
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

Vue3 + Vite + Ts 获取dom(通过ref)

元素上ref和 Vue2 一样: <div class="classfy_cell flex j-a a-c" ref="classfy">获取dom<script setup lang="ts"> import { getCurrentInstance, onMounted } from "vue"; // 引入全局 let refs = null; onMounted(() => { let { $refs } =
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

Vue3 + Vite + Ts 报错:Property ‘ ‘ does not exist on type ‘never‘

报错代码显示:src/views/Classfy/index.vue:13:20 - error TS2339: Property 'name' does not exist on type 'never'.13 <p>{{ item.name }}</p> ~~~~src/views/Classfy/index.vue:14:32 - error TS2339: Property 'icon' does
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

Vue3 + Vite + Ts 关于ref和v-model对应的字段的感悟

问题发现:有这么一段代码<input type="text" class="newAdress" ref="newAdress" placeholder="请输入地址" v-model="newAdress"/>ref 和 v-model 对应的字段名称都一样(前提:newAdress 的值为空(不为空也不影响))如果运行后会发现,输入框的内容显示变成:[object HTMLInputElement]浏览器打印字段newAdress .
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

Vue2 数据响应原理图(根据自己的理解画)

途中分三步走:一、数据在 Vue 实例化中,会调用 Observer 进行递归,将 Data 中的所有数据中的所有属性(深层次)中的 getter 和 setter 属性方法进行改写,并且每层父对象都有一个 Dep 实例(下面使用 dep 来代替),来存储父对象的属性被使用后产生的依赖(又叫订阅者)。二、在组件上使用其中的一个属性,这里假如使用了属性 a ,这时候Vue实例会实例化一个 Watcher, 实例化时会将该实例赋给 Dep.target (target不理解的话,请看:https...
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

Vue3 + VIte + Ts 实现自定义监控图片加载失败/报错处理指令

新建一个放自定义指令的文件夹代码:export const directive_onerror = function (app:any) { // 图片指令检测图片加载 app.directive('onerror', { mounted: (el:any, binding:any) => { let img = new URL('../assets/img/0.png', import.meta.url).href el.on
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

css:解决因为 display: inline-block; 而没有顶部对齐的问题

上面红圈的为一个 div 包裹的,同一层级。都使用 display: inline-block 进行同行,但是不对齐。解决方法:给这两个 div 加上 vertical-align: top 就能顶部对齐了
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

js 数组乱序

// 数组乱序 outOfOrder(arr) { var j, tem, i; for (i = arr.length; i; i--) { j = Math.floor(Math.random() * i); tem = arr[i - 1]; arr[i - 1] = arr[j]; arr[j] = x; } return arr; },
分类: 编程语言 发布时间: 06-17 22:43 阅读次数: 0

js 正则 macth 获取两个特殊符号之间的字符串

正则:我想要获取 - 和 = 之间的内容结果: 案例2我想要获取 < 和 > 之间的内容j结果
分类: 编程语言 发布时间: 06-17 22:42 阅读次数: 0

leetcode 2303. Calculate Amount Paid in Taxes(python)

本题是 Weekly Contest 297 的第一道题,难度为 Eazy ,考查的是计税的计算规则,按照题意写代码就行。
分类: 编程语言 发布时间: 06-17 22:22 阅读次数: 0

人工智能 | ShowMeAI资讯日报 #2022.06.18

ShowMeAI资讯日报 2022-06-18 期,TensorFlow/Keras/PyTorch/MXNet深度学习分布式训练框架、OpenDILab星际争霸II决策AI平台、8篇前沿论文…
分类: 编程语言 发布时间: 06-17 22:22 阅读次数: 0

一文详解Python装饰器,真香!

装饰器(decorator)是一种高级Python语法,也是 Python 函数式编程的一部分。写法是 @xxx,在 Pandas、Django 框架源码里经常能见到,应用非常广泛。 虽然不用装饰器也
分类: 编程语言 发布时间: 06-17 22:22 阅读次数: 0