cooladmin使用整理

news2024/11/27 12:50:28

1、后端关键字自动生成没有代码段提示,原因是拉取的项目代码中没有.vscode文件夹,复制一套至项目src同级即可

2、前端快速创建,在Entity完成后就去快速创建中选数据结构,这时没有对应的内容,数据结构是和controller层admin下的文件对应的,也就是说有几个接口文件就可以创建几个前端页面。

3、前端详情编辑页面中的内容可以使用折叠卡片,在item中使用cl-form-card组件,为其添加children数组,children中正常写各个组件和字段就可以。

4、前端列表页刷新数据分页展示数据参数设置,添加参数也可以在这里设置

const Crud = useCrud(
	{
		service: service.purchase.orderComparePrices
	},
	(app) => {
		app.refresh({ size: 5 });
	}
);

//其他参数
const Crud = useCrud(
	{
		service: service.purchase.comparePricesInfo
	},
	(app) => {
		app.refresh({ size: 5, comparePricesId: props.comparePricesId });
	}
);

5、设置分页为5,列表展示五行信息,列表高度为0不展示内容,修改table样式

<cl-table ref="Table" style="max-height: 722px;" />

6、前端获取浏览器cookie

import { storage } from "/@/cool/utils";
const username = storage.get("username") || "";//用户名

7、获取数组字典用于页面展示

import { useCool } from "/@/cool";
const { service } = useCool();

//供应商启用状态数据字典选项
export async function getDictOps(dictName: string[]): Promise<any[]> {
    const types = new Array([dictName]);
    try {
        const res = await service.dict.info.data({ types: types });
        const status = res[dictName].map((item: any) => ({
            ...item,
            label: item.name,
            // type: getType(item.value, dictName[0]),
            //为标签设置颜色,如果设置了type,会将颜色设置覆盖掉,使用color就不设置type
            color: getColor(item.value, dictName[0]),
        }));
        return status;
    } catch (error) {
        console.error('Error fetching dictionary operations:', error);
        throw error;
    }
}

//设置选项标签类型:success、danger、warning、error
function getType(value: string, dictName: string): string {
    switch (dictName) {
        //耗材启用状态
        case 'status':
            return value === 1 ? "success" : "danger";
        //供应商启用状态
        case 'vendorStatus':
            return value === 'Y' ? "success" : "danger";
        //供应商等级选项
        case 'vendorLevelOps':
            switch (value) {
                case 0:
                    return "success";//优质供应商
                case 1:
                    return "info";//正常
                case 2:
                    return "info";//重点关注
                case 3:
                    return "danger";//劣质供应商
                case 4:
                    return "warning";//黑名单
                default:
                    return "info";
            }
        //比价拟用采纳状态
        case 'pricesInfoIsProposed':
            return value === 1 ? "success" : "danger";
        // //订单状态选项
        case 'PIOrderStateOps':
            return info;
        //订单验收状态
        case 'PIOrderResultOps':
            switch (value) {
                case 0:
                    return "info";//未验收
                case 1:
                    return "info";//通过
                case 2:
                    return "danger";//不通过
                default:
                    return "info";
            }
        default:
            return "info";
    }
}

function getColor(value: string, dictName: string): string {
    switch (dictName) {
        //耗材启用状态
        case 'status':
            return value === 1 ? "#67c23a" : "#f56c6c";
        //供应商启用状态
        case 'vendorStatus':
            return value === 'Y' ? "#67c23a" : "#f56c6c";
        //供应商等级选项
        case 'vendorLevelOps':
            switch (value) {
                case 0:
                    return "#FF007F";//优质供应商
                case 1:
                    return "#00BFFF";//正常
                case 2:
                    return "#67c23a";//重点关注
                case 3:
                    return "#8B0000";//劣质供应商
                case 4:
                    return "#404040";//黑名单
                default:
                    return "#00BFFF";
            }
        //比价拟用采纳状态
        case 'pricesInfoIsProposed':
            return value === 1 ? "#67c23a" : "#f56c6c";
        // //订单状态选项
        case 'PIOrderStateOps':
            switch (value) {
                case 0:
                    return "#FFA500";//待确认
                case 1:
                    return "#00BFFF";//已发货
                case 2:
                    return "#67c23a";//已收货
                default:
                    return "#FFA500";
            }
        // //订单验收状态
        case 'PIOrderResultOps':
            switch (value) {
                case 0:
                    return "#FFD700";//未验收
                case 1:
                    return "#67c23a";//通过
                case 2:
                    return "#f56c6c";//不通过
                default:
                    return "#FFD700";
            }
        default:
            return '#FFFF00';
    }
}

8、列表页面table设置单元格按钮并编写事件

const Table = useTable({
	columns: [
		{ type: "selection" },
		// { label: "询价比价主表ID", prop: "comparePricesId" },
		{ label: "订单编码", prop: "code" },
		{ label: "订单标题", prop: "title", showOverflowTooltip: true },
		//状态:待确认(0)、已发货(1)、已收货(2)
		{ label: "订单状态", prop: "state", dict: orderStateOptions, width: "90px" },
		{ label: "创建者", prop: "createBy" },
		//采购明细
		{
			label: "采购明细",
			type: "op",
			buttons: [
				{
					label: "查看",
					type: "primary",
					onClick: (row) => {
						//采购计划列表
						comparePricesId.value = row.scope.row.comparePricesId;
						openPlanInfos.value = true;
					}
				},
			],
			width: "100px"
		},
		{ label: "验收人员", prop: "inspectorName", width: "90px" },
		{ label: "验收内容", prop: "acceptanceContent", showOverflowTooltip: true },
		//验收结果状态:未验收(0)、通过(1)、不通过(2)
		{ label: "验收结果状态", prop: "resultState", dict: resultStateOptions, },
		{ label: "通过/不通过原因", prop: "reason", showOverflowTooltip: true },
		// { label: "更新者", prop: "updateBy" },
		{ label: "创建时间", prop: "createTime" },
		// { label: "更新时间", prop: "updateTime" },
		{ type: "op", buttons: ["info", "edit", "delete"], width: "225px" }
	]
});

9、应用其他页面作为子组件,引用写法

<cl-dialog :title=title v-model="open" width="80%" append-to-body>
		<consumableDetail v-model="open" ref="myRefs" />
		<div slot="footer" class="dialog-footer">
			<el-button type="primary" @click="HandleSelectedLists">确 定</el-button>
			<el-button @click="open = false">取 消</el-button>
		</div>
	</cl-dialog>

	<cl-dialog title="供给耗材" v-model="openConsumables" width="80%" append-to-body>
		<el-button class="el-button el-button--primary" @click="handleConsumableDetail">选择耗材</el-button>
		<vendorConsumable v-model="openConsumables" ref="consumablesRefs" :vendorId="vendorId" />
		<div slot="footer" class="dialog-footer">
			<!-- <el-button type="primary" @click="HandleSelectedLists">确 定</el-button> -->
			<el-button @click="openConsumables = false">取 消</el-button>
		</div>
	</cl-dialog>
import consumableDetail from "/@/modules/purchase/views/consumableDetail.vue";
import vendorConsumable from "/@/modules/purchase/views/vendorConsumable.vue";

10、详情编辑页面打开前逻辑处理

// cl-upsert
const Upsert = useUpsert({
	onOpen() {
		if (Upsert.value.mode == "add") {
			Upsert.value.form.vendorCode = "V" + nowDate();
			Upsert.value.form.createBy = storage.get("username") || "";
		}

		if (Upsert.value.mode == "update") {
			Upsert.value.form.updateBy = storage.get("username") || "";
		}
	},
});

11、列表单元格文本过长展示省略号和鼠标悬浮title,在列设置showOverflowTooltip: true

{ label: "供应商名称", prop: "vendorName", width: "100px", showOverflowTooltip: true },

12、详情页面lable标签过长换行,并设置向右对齐。在label值中需要换行的位置加上\n换行符,然后添加样式如下:

label: "供应商\n英文名称",
.el-form-item__label {
	white-space: pre-line;/*保留换行符*/
	/* white-space: pre-wrap; */
	text-align: right;/*向右对齐*/
	word-wrap: break-word;
	line-height: 100%;
	align-items: center;/*上下居中*/
}

13、后续继续补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 网络编程(一)—— UDP数据报套接字编程

概念 在网络编程中主要的对象有两个&#xff1a;客户端和服务器。客户端是提供请求的&#xff0c;归用户使用&#xff0c;发送的请求会被服务器接收&#xff0c;服务器根据请求做出响应&#xff0c;然后再将响应的数据包返回给客户端。 作为程序员&#xff0c;我们主要关心应…

Jmeter命令监控CPU等指标

JMeter 命令行执行脚本得到的报告中&#xff0c;是没有CPU、内存使用率等监控数据的&#xff0c;但是可以使用JMeter插件帮忙。 一、下载jmeter-plugins-manager.jar 下载后将文件放到jmeter安装包lib/ext目录下。打开Jmeter》菜单栏》选项》Plugins Manager 二、安装PerfMon…

ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录 一、搭建SkyWalking 1.1 版本选择 1.2 下载安装 1.3 配置启动 1.4 SkyWalking UI介绍 二、Springboot项目使用 2.1 Agent下载 2.2 Agent配置skywalking oap地址 2.3 IDEA配置Agent地址 2.4 生成的ES索引介绍 三、在kibana上查看日志 四、问题和解决 3.1 日志…

如何快速搭建一个spring boot项目

一、准备工作 1.1 安装JDK&#xff1a;确保计算机上已安装Java Development Kit (JDK) 8或更高版本、并配置了环境变量 1.2 安装Maven&#xff1a;下载并安装Maven构建工具&#xff0c;这是Spring Boot官方推荐的构建工具。 1.3 安装代码编辑器&#xff1a;这里推荐使用Inte…

spring-第十三章 AOP

spring 文章目录 spring前言1.AOP介绍2.AOP七大术语3.切点表达式4.使用spring的AOP4.1概述4.2准备工作4.3基于注解方式使用AOP4.3.1准备目标类和目标方法4.3.2编写配置类4.3.3编写通知类4.3.4编写测试类4.3.5通知类型4.3.6切面的先后顺序4.3.7PointCut注解通用切点 4.4基于XML方…

jmeter常用配置元件介绍总结之安装插件

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之取样器 jmeter常用配置元件介绍总结之安装插件 1.下载插件2.安装插件管理包3.不用插件管理包&#xff0c;直接官网插件下载安装 1.下载插件 jm…

MySQL 多数据库备份与恢复,包括查询,函数,SP

一、备份语句&#xff1a; mysqldump 可以用来导出单个数据库、多个数据库&#xff0c;甚至所有数据库的数据。以下是导出多个数据库到指定文件位置的语法和具体案例。 基本语法 mysqldump -u [username] -p[password] --databases [db1] [db2] ... > [file_path] -u: …

contenteditable实现需要一个像文本域一样的可编辑框

我这里是因为左上和右下有一个固定的模板&#xff0c;所有用textarea有点不方便&#xff0c;查了下还有一个方法可以解决就是在需要编辑的元素上加上 :contenteditable"true" 完整代码如下&#xff0c;因为这个弹窗是两用的&#xff0c;所以用messageType做了一下判…

linux 安装anaconda3

1.下载 使用repo镜像网址下载对应安装包 右击获取下载地址&#xff0c;使用终端下载 wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh2.安装 使用以下命令可直接指定位置 bash Anaconda3-2024.02-1-Linux-x86_64.sh -b -p /home/anaconda3也…

如何选择适合的AWS EC2实例类型

在云计算的世界中&#xff0c;Amazon Web Services&#xff08;AWS&#xff09;提供了丰富的服务&#xff0c;其中Elastic Compute Cloud&#xff08;EC2&#xff09;是最受欢迎的服务之一。选择合适的EC2实例类型对于确保应用程序的性能和成本效益至关重要。我们九河云通过本文…

(蓝桥杯C/C++)——基础算法(下)

目录 一、时空复杂度 1.时间复杂度 2.空间复杂度 3.分析技巧 4.代码示例 二、递归 1.递归的介绍 2.递归如何实现 3.递归和循环的比较 4.代码示例 三、差分 1.差分的原理和特点 2.差分的实现 3.例题讲解 四、枚举 1.枚举算法介绍 2.解空间的类型 3. 循环枚举解…

7.5 inch电力线载波通信技术

7.5寸电子桌牌 产品型号 PE75R_D_W 尺寸 176.2*137.15*80mm 屏幕尺寸 7.5 inch 显示区域(mm) 163.2(H) * 97.92(V) 分辨率 800*480 显示技术 电子墨水屏双面显示 显示颜色 黑/白/红 外观颜色 银色 工作温度 0-40℃ 视角 180 支持内容格式 文本/图片/二维码…

Linux下的ADC

ADC ADC简介 ADC是 Analog Digital Converter 的缩写&#xff0c;翻译过来为模数转换器&#xff0c;ADC可以将模拟值转换成数字值。模拟值是什么呢?比如我们日常生活中的温度&#xff0c;速度&#xff0c;湿度等等都是模拟值。所以如果我们想测量这些模拟值的值是多少&#x…

星空天文 2.0.1| 完全免费的观星软件,无注册登录,天文爱好者必备。

星空天文是一款完全免费且功能强大的观星软件&#xff0c;适用于安卓平台。无需注册登录即可使用&#xff0c;界面设计精美且操作简单。软件支持AR实景模式&#xff0c;可以将实景与星空结合&#xff0c;增强观星体验。用户可以设定任意日期和时间来观察不同时段的天空&#xf…

书生大模型实战营第四期-入门岛-1. Linux前置基础

入门岛-Linux前置基础 书生大模型实战营-第四期-Linux前置基础&#xff1a; 任务&#xff1a;https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/linux/task.md 文档&#xff1a;https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/linux 任务描述完成所需时…

JavaEE初阶--servlet篇(三)HttpServlet/response/request对应方法使用

文章目录 1.总括说明2.httpservlet父类2.1方法介绍2.2dopost方法的演示2.3doput方法的演示 3.HttpServletRequest类3.1方法说明3.2方法使用演示3.3getparameter方法使用3.4使用form表单的方式3.5jackson获取参数 4.HttpResponse类4.1设置状态码4.2自动进行刷新4.3重定向跳转4.3…

前后端分离,Jackson,Long精度丢失

案例:后端接口放回一个Long数据 GetMapping("/testForLong")public Map<String, Object> testForLong() {Map<String, Object> map new HashMap<>();map.put("aaa", 1234567890123456789L);return map;}实际前端接收的数据 前后端数据…

记某单位众测项目漏洞挖掘中的一些手法

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 一个想当文人的黑客 &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【edusrc漏洞挖掘】 【VulnHub靶场复现】【面试分析】 &#x1f389;欢迎…

用 Python 写了一个天天酷跑(附源码)

Hello&#xff0c;大家好&#xff0c;给大家说一下&#xff0c;我要开始装逼了 这期写个天天酷跑玩一下叭&#xff01; 制作一个完整的“天天酷跑”游戏涉及很多方面&#xff0c;包括图形渲染、物理引擎、用户输入处理、游戏逻辑等。由于Python是一种高级编程语言&#xff0c;…

芯片设计公司ERP系统如何实现一体化管理

在当今高科技迅猛发展的时代&#xff0c;芯片设计行业作为信息技术的核心&#xff0c;正面临着日益激烈的市场竞争和复杂多变的市场需求。为了提升企业的运营效率和市场竞争力&#xff0c;芯片设计公司纷纷引入ERP(企业资源计划)系统&#xff0c;以实现一体化管理。接下来我们跟…