10 2022 档案
摘要:传入数据需要通过参数传递
阅读全文
摘要://useSelecttor加载state中所有的数据 存储数据中存在的所有值
阅读全文
摘要:创建切片 切片对象 导出数据 单个reduccer 多个reducer
阅读全文
摘要:redux常规数据的操作存在的问题 redux的工具包 简化操作的
阅读全文
摘要:增加加的数据不一定 直接通过参数传递 传入对象的一个数据格式 对象增加更多属性 redux的最初形态
阅读全文
摘要:第一步 创建函数 第二步 设置初始值 第三布 直接赋值
阅读全文
摘要:原生点击实现加减过于繁琐
阅读全文
摘要:修改数据和新增数据直接做判断
阅读全文
摘要:参数作为钩子传进去 参数作为数据传进来 删除请求
阅读全文
摘要:捕捉异常的时候数据代码格式类似 使用数据
阅读全文
摘要:数据添加 添加数据
阅读全文
摘要:处理数据错误的情况 catch中的函数 统一处理错误 直接捕捉数据错误对象 设置错误状态
阅读全文
摘要:<img className='imgData' src={`data:image/jpeg;base64,${item?.base64}`}></img> 前缀要加data:image/jpeg;base64
阅读全文
摘要:使用fetch发送请求 数据获取
阅读全文
摘要:不用usecallback实现了效果 只会在初始化创建一次
阅读全文
摘要:直接定义一个usecallback的函数进行渲染
阅读全文
摘要:子组件没有改变 没有必要重新渲染 数据渲染
阅读全文
摘要:state为空 数据展示
阅读全文
摘要:前言 我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 微信公众号前端小歌谣 需求分析 在前端项目中 最常见得是可以增加多个表
阅读全文
摘要:修改为switch判断 不同方法传递 数据调用不同
阅读全文
摘要:根据当前值增加新值 实现+-操作
阅读全文
摘要:import JsPDF from 'jspdf'; const handlePrint = (id: any, isPrint: any) => { const dom: HTMLElement | null = document.getElementById(id); // let target
阅读全文
摘要:有时候getlist要查精确,所以like和eq我加到变量里面了
阅读全文
摘要:const handleData = (value: any) => { console.log(value,"value") let arr1: any = [] // arr = subList arr1=subList.filter((item: any, index: any) => { r
阅读全文
摘要:只要页面上显示的原始数据,然后又被改了,那除非重新拿一次原始数据,不然就改了一次就永远回不来了 反正核心就是声明一个新变量专门用来显示,原数组保留
阅读全文
摘要:import html2canvas from "html2canvas"; 打印 //级联选择框选择事件 export function printData(id: any){ // 定义打印方法 // 先用html2canvas将页面整个转为一张截图,再打印,防止出现echarts无法打印 co
阅读全文
摘要:子传父传值 {headTitle && headTitle.map((item, index) => ( <div key={item.id} onClick={() => handleClick(item.id)} className='headTitle'>{item.name}</div> )
阅读全文
摘要:第一步 找出路由中得指定id useEffect(() => { let url:any= [] props.subList.map((item: any) => { item.children.map((item1: any) => { if (item1.path == pathname) {
阅读全文
摘要://数组按照某字段去重排序 export function filterData(arr: any, flag: any) { console.log(arr,flag) let objList:any = [] let filterList:any = [] arr.forEach((item:a
阅读全文
摘要:直接设置 scroll={{ x: 1000 }}
阅读全文
摘要:<BasicTable data={menuData} onChange={onTableChange} loading={loading} scroll={{ x: 2000 }}>
阅读全文
摘要:<Table.Column<Menu> width={170} align="center" fixed={"right"} title="操作" render={(text, record, index) => ( <MenuButton index={index} record={record}
阅读全文
摘要:// FormLayout const formItemLayout = { labelCol: { xs: { span: 6 }, sm: { span: 6 }, }, wrapperCol: { xs: { span: 14 }, sm: { span: 14 }, }, }; const
阅读全文
摘要:const onOk = (() => { console.log(dataParams, "dataParams") if(fileLoading){ cutSchemeListAdd(dataParams) .unwrap() .then((response: any) => { if (res
阅读全文
摘要:<Table.Column<Menu> width="100px" title="生产单号" dataIndex="code" align="center"></Table.Column> <Table.Column<Menu> width="100px" title="订单编号" dataInde
阅读全文
摘要:render: (value, record, index) => { // 处理列,相同数据则合并 // 处理rowSpan const obj = { children: value, props: { rowSpan: 1 }, }; // 当检索到相同数据则返回 那条数据 let arr =
阅读全文
摘要:import React, { useState, useEffect, useCallback, memo } from 'react'; import {Modal, Input, message, Form, Calendar} from 'antd'; import {useHolidayD
阅读全文
摘要:第一种打印方式 window.document.body.innerHTML = window.document.getElementById('print')!.innerHTML; window.print(); window.location.reload(); 直接根据dom节点打印
阅读全文
摘要:设置页面的样式 onRow={ (record)=>{ return { onClick:()=>{ holidayIdRef.current = record.id setHolidayId(holidayIdRef.current); loadDetailList(record.id) }, o
阅读全文
摘要:message.success("登陆成功",1); 第二个参数为秒数
阅读全文
摘要:<Table onRow={record => { return { onClick: event => {}, // 点击行 onDoubleClick: event => {}, onContextMenu: event => {}, onMouseEnter: event => {}, //
阅读全文
摘要:const handleChange: UploadProps['onChange'] = info => { setFileList(info.fileList.slice(-1)); }; slice对数组裁剪
阅读全文
摘要:解决购物车中得数量为0 就要进行清空 数量为0得时候就对数据进行清空 修改state就会重新渲染 以下代码不能重新书写
阅读全文
摘要:只有卡片样式的页签支持新增和关闭选项。使用 closable={false} 禁止关闭。
阅读全文
摘要:<Tabs hideAdd onTabClick={makeStyle} activeKey={getStyle} type="editable-card" // onEdit={onEdit} > {styleList2 && styleList2.map(pane => ( <TabPane t
阅读全文
摘要:<Dragger > <p className="ant-upload-drag-icon"> <UploadOutlined /> </p> <p className="ant-upload-text">单击或者拖拽到该区域进行表格导入</p> <p className="ant-upload-h
阅读全文
摘要:app.vue绑定store 接口调用 返回一个数据对象
阅读全文
摘要:创建一个中间件 使得缓存生效
阅读全文
摘要:需要一个配置对象作为参数作为配置信息 指定查询的基础信息
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi
阅读全文
摘要:box-sizing: content-box;/*盒子宽度=CSS中设置的width+border+padding*/ box-sizing: border-box;/*盒子的宽度=css中设置的width*/
阅读全文
摘要:function sortData(list) { let result = [] const colorGroup = {} for (const item of list) { if (!colorGroup[item.color]) { colorGroup[item.color] = []
阅读全文
摘要:import React, { useState, useEffect, useCallback, memo } from 'react'; import { Menu } from './service'; import { Select, Table, Button, Modal, messag
阅读全文
摘要:const getStatus = (status: any) => { let obj:any = { '1':'通过', '-1':'驳回', '0':'待审核' } return obj[status] }; render={(text)=>{ return getStatus(text) }
阅读全文
摘要:<div id='customers'> <div> <span>日期</span>:<span>{item?.date}</span> </div> <div> <span>制单</span>:<span>{item?.manufactureCode}</span> </div> <div> <s
阅读全文
摘要:/** * 所有正则校验都写到这里 */ // 手机号 const isPhone = /^1[3-9]\d{9}$/; // const isPhone = /(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/; // 邮箱 const isEmail = /^([A-Za-z0-9_
阅读全文
摘要://返回从当前数据重复标识的数据长度 export function filterNumData(obj:any,arr: any,record:any,index:number,flag: any) { let length:number = 0 if(arr.length>0){ for(let
阅读全文
摘要:import axios from "axios" import {getToken} from "@/utils/auth"; import { BaseUrl } from "../commomutils/baseUrl"; export const uploadFile = (url:stri
阅读全文
摘要:多加一行 try_files $uri $uri/ /index.html 配置即可
阅读全文
摘要:import axios from "axios" import {getToken} from "@/utils/auth"; import { BaseUrl } from "../commomutils/baseUrl"; export const uploadFile = (url:stri
阅读全文
摘要:利用转换为json的数据进行传送 添加学生 添加学生
阅读全文
摘要:this就是当前对象 第二次打印事undefined
阅读全文
摘要:this总是window this也总是window this是obj2 外层函数是谁 箭头函数就是谁 箭头函数的this不能改变
阅读全文
摘要:箭头函数中没有arguments args剩余参数 箭头函数中没有自己的this
阅读全文
摘要:数组解构赋值 简单扩展 剩余参数 对象解构
阅读全文
摘要:let具有块级作用域 利用立即执行函数解决作用域问题 const声明常量和函数
阅读全文
摘要:getOne: (resource: any, params: any) => { const key: any = Object.keys(params) const id = params[key[0]]; const primaryKey = getPrimaryKey(resource, p
阅读全文
摘要:const beforeUpload = (file: any) => { console.log(file,"file") // 设置上传文件大小小于50M const isLt50M = file.size / 1024 / 1024 < 50; if (!fileList.length) {
阅读全文
摘要:getList: (resource: any, params: any) => { const primaryKey = getPrimaryKey(resource, primaryKeys); const { pageIndex, pageSize } = params.pagination;
阅读全文
摘要:const getOrderBy = (field: string, order: string, primaryKey: PrimaryKey) => { console.log(field, order,primaryKey,"test") if (field == 'id') { consol
阅读全文
摘要:console.log(splitKey[0],"[splitKey[0]") if (result[splitKey[0]] undefined) { // first operator for the key, we add it to the dict result[splitKey[0]]
阅读全文
摘要:values.forEach((value: any) => { //进行拼接 // if operator is intentionally blank, rpc syntax let op = operation.includes('like') ? `${operation}.*${value
阅读全文
摘要://如果包含like这个属性 拉取到当前的值 拿取到对应的属性的key值 if (operation.includes('like')) { values = filter[key].trim().split(' '); console.log(values,"test") } else { val
阅读全文
摘要:属性中有like就拿出like 没有得话就是eq const operation = splitKey.length == 2 ? splitKey[1] : defaultListOp; 输入 { "is_delete": 0, "code@like": "12312", "name@like":
阅读全文
摘要:Object.assign({ is_delete: 0 }, obj) 输入 { "code@like": "12312", "name@like": "我是测试" } 输出 { "is_delete": 0, "code@like": "12312", "name@like": "我是测试" }
阅读全文
摘要:const getPrimaryKey = (resource: string, primaryKeys: Map<string, PrimaryKey>) => { return primaryKeys.get(resource) || ['id']; } 判断当前得map属性中有没有该属性 有就
阅读全文
摘要:for (let key in params.filter) { if (params.filter[key]) { obj[`${key}@like`] = `${params.filter[key]}` } } 给当前得属性加上@like 传入 { "pagination": { "pageIn
阅读全文
摘要:if (!response.code) { let arr: any = [] response.data && response.data.map((item: any) => { arr.push({ value: item.id.toString(), label: item.name.toS
阅读全文
摘要:const buttonFlag: any = { 0: () => { // setCurrentMenu(null); setEditVisible(true); }, 1: () => { // setCurrentMenu(null); setAddSpecialVisible(true);
阅读全文
摘要:useEffect(() => { if(menuModalData.id){ form.setFieldsValue({...menuModalData,beginDate:moment(menuModalData.begin_date), endDate:moment(menuModalData
阅读全文
摘要:res.beginDate = countFormat(res.beginDate) res.endDate = countFormat(res.endDate) const countFormat = (item:any) => { return item?moment(item).format(
阅读全文
摘要:<Form.Item label="有效期" > <Form.Item name={'beginDate'} style={{ display: 'inline-block', width: 'calc(50% - 8px)' }} rules={[{ required: true, message
阅读全文
摘要:Postgrest使用手册 1 过滤出 is_delete = 0 的数据 分页查询并按照 id 倒叙排列 2 GET http: // 127.0.0.1 : 3000 / t_wms_location?is_delete = eq .0 & limit = 10 & offset = 2 3 &
阅读全文
摘要:<Form.Item labelCol={{ span: 8 }} label="文件上传" name={"uoload"} rules={[{ required: true, message: '文件上传' }]} > <Upload name="file" fileList={fileList}
阅读全文
摘要:URLSearchParams API 提供对 URL 查询的读写访问。 URLSearchParams 类也可以与以下四个构造函数之一单独使用。 URLSearchParams 类也在全局对象上可用。 WHATWG URLSearchParams 接口和 querystring 模块具有相似的用途
阅读全文
摘要:{ title: '房号', dataIndex: 'bedCode', key: 'bedCode', render: (value, record, index) => { // 处理列,相同数据则合并 // 处理rowSpan const obj = { children: value, pr
阅读全文
摘要:const onChangeValue = (e: any) => { console.log(e,"eeeeee") const length=e let arr:any=[] for(var i=0;i<length;i++){ arr.push({index:i}) } setDataList
阅读全文
摘要:import React, { useState, useEffect, useCallback, memo } from 'react'; import { Select, Table, Button, Modal, message, Card, Form, DatePicker } from '
阅读全文
摘要:postGrest().getOne('search_holiday_detail',{holiday_id:id}). then((response:any)=> { if (!response.code) { setMenuDataSpecial(response.data) } else {
阅读全文
摘要:const onOk = useCallback(() => { form.validateFields().then(res => { debugger const values = res as AddOrEditMenuFormProps; const info: any = { ...men
阅读全文
摘要://数组对象中得值进行乘法处理 export function dataRuduce(arr1: any) { const result = [] for (const v1 of arr1) { result.push({ ...v1, // arr2 count: Number(v1.layer
阅读全文
摘要:<Col span={4}> {index 0 && ( <Button onClick={handleAdd}>新增</Button> )} {index !== 0 && ( <Button style={{ marginLeft: "20px" }} onClick={() => handle
阅读全文
摘要:不需要每一个写then 然后进行数据得处理即可
阅读全文
摘要:const handleSave = async () => { let arr: any = [] const res = await form.validateFields() console.log(res) arr = myFunc(res) console.log(arr, "arrarr
阅读全文
摘要://目标数组拼接 export function concatTarget(arr1:any, arr2:any) { const result = [] for (const v1 of arr1) { for (const v2 of arr2) { result.push({ ...v1, /
阅读全文
摘要:export function myContact(target: any, source: any) { for (const [key, value] of Object.entries(source)) { const [name, index] = key.split('-') // 要求k
阅读全文
摘要:Object.values(newObj) 转换后
阅读全文
摘要:let obj = { "color-1": "1", "color-2": "2", "color-3": "3", "geyao-1": "1", "geyao-2": "2", "geyao-3": "3" } function myFunc(obj) { const newObj = {}
阅读全文
摘要:let obj = { "color-1": "1", "color-2": "2", "color-3": "3", "geyao-1": "1", "geyao-2": "2", "geyao-3": "3" } const strList = key.split('-') const grou
阅读全文
摘要:let obj = { "color-1": "1", "color-2": "2", "color-3": "3", "geyao-1": "1", "geyao-2": "2", "geyao-3": "3" } console.log(Object.entries(obj),"Object")
阅读全文
摘要:{data && data.map((item, index) => ( <Row style={{ marginTop: "20px" }} gutter={24}> <Col span={4}> <Form.Item key={index} labelCol={{ span: 13 }} wra
阅读全文
摘要:const [form] = Form.useForm(); const [formKuan] = Form.useForm(); const [formAll] = Form.useForm();
阅读全文
摘要:const initPageList = async (params?: MenuSearchParams) => { setLoading(true); try { let text = { ...page, ...params } technologyList(text) .unwrap() .
阅读全文
摘要:对象转换为&拼接 is_delete=eq.0&limit=10&offset=0&order=id.desc
阅读全文
摘要:const getOrderBy = (field: string, order: string, primaryKey: PrimaryKey) => { console.log(primaryKey,"primaryKey") if (field == 'id') { console.log(p
阅读全文
摘要:const parseFilters = (filter: any, defaultListOp: any) => { const result: any = {} console.log(filter,"filter 1") //{is_delete: 0, name@like: '我是测试'}
阅读全文
摘要:const parseFilters = (filter: any, defaultListOp: any) => { const result: any = {} console.log(filter,"filter") console.log(defaultListOp,"defaultList
阅读全文
摘要:前言 我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 微信公众号前端小歌谣 需求分析 在前端项目中 最常见的就是做一个页面的
阅读全文
摘要:前言 我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 微信公众号前端小歌谣 需求分析 在前端项目中 最常见的就是封装一个ta
阅读全文
摘要:前言 我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 微信公众号前端小歌谣 需求分析 首先 我们需要实现一个带有搜索功能的搜
阅读全文
摘要:{props.actions.map((action: SearchFormAction, index: number) => ( <Form.Item key={index}> <Button type={action.type} onClick={() => props.onClick(inde
阅读全文
摘要:["id"] 76 search_manufacture_size const isCompoundKey = (primaryKey: PrimaryKey): Boolean => { return primaryKey.length > 1; } 判断数组长度是否大于1 返回值Boolean
阅读全文
摘要:getOne: (resource: any, params: any) => { const key: any = Object.keys(params) const id = params[key[0]]; const primaryKey = getPrimaryKey(resource, p
阅读全文
摘要:getDetail: (resource: any, params: any) => { const data=new URLSearchParams(params) const url = `${PostgrestUrl}/rpc/${resource}?${data}`; return http
阅读全文
摘要:getSelect: (resource: any, params: any,filter?:any) => { const data=new URLSearchParams(filter) const url = `${PostgrestUrl}/${resource}?select=${para
阅读全文
摘要:export const uploadFile = (url:string,formData:any)=>{ return axios.post( `${BaseUrl}/${url}`, formData, { headers: { "Content-Type": "multipart/form-
阅读全文
摘要:点击是否关闭弹框操作 做出确认弹出框
阅读全文
摘要:结算页面得制作 修改关闭遮罩层功能
阅读全文
摘要:添加一个详情看看是否显示 取反 进行数据处理
阅读全文
摘要:创建context组件 数据和方法都传递 数据传递
阅读全文
摘要:第二种方式使用 创建生产者 数据得生产者 A和B都是子组件 都可以进行数据得访问
阅读全文
摘要:基本案例 设置初始值 使用方式1context
阅读全文
摘要:判断购物车中是否存在此商品
阅读全文
摘要:组件设置 样式设置 前端 等于0的时候就不能在减了
阅读全文
摘要:不需要的需要全部清理 只剩基本骨架
阅读全文
摘要:安装包中的数据
阅读全文
摘要:根据索引删除数据 定义函数数据直接进行过滤
阅读全文
摘要:进行过滤操作 使用过滤数据 创建一个fliter的select数据 函数方法 尽量在组件内部用
阅读全文
摘要:定义一个函数 对数据进行一个删除 数组进行浅层赋值 对数据进行一个新的赋值 返回值接受数据 删除数据
阅读全文
摘要:设置z-index层级 出现问题 设置成为后代元素 直接和router平级 直接渲染到指定位置 第一步 设置一个新的元素 第二步获取元素 第三步 传到对应的位置 总结
阅读全文
摘要:每点击一个x号就显示一个 创建一个遮罩层 组件的子元素 放到遮罩中
阅读全文
摘要:设置样式 最终样式
阅读全文
摘要:需要讲logsForm中的数据传递给app组件 传值的时候传递 当添加新的日志的时候 直接子传父
阅读全文
摘要:利用formdata对象存储到一个对象当中
阅读全文
摘要:受控组件 可以通过数据进行数据绑定
阅读全文
摘要:尽量不要使用useRef对象 写一个子组件 父子组件 子组件传值 类组件得数据格式
阅读全文
摘要:原生获取dom对象 usRef获取dom对象
阅读全文
摘要:浅复制 计算不能连续执行 prevcounter保证每次得值都是最新得
阅读全文
摘要:// 创建三个变量,用来存储表单中的数据 let inputDate = ''; let inputDesc = ''; let inputTime = 0; // 创建一个响应函数,监听日期的变化 const dateChangeHandler = (e) => { // 获取到当前触发事件的对象
阅读全文