fix: lint

This commit is contained in:
xingyu4j
2025-11-24 15:34:25 +08:00
parent c3a702efbf
commit f22b390380
42 changed files with 178 additions and 170 deletions

View File

@@ -80,7 +80,7 @@ export const useMallKefuStore = defineStore('mall-kefu', {
},
conversationSort() {
// 按置顶属性和最后消息时间排序
this.conversationList.sort((a, b) => {
this.conversationList.toSorted((a, b) => {
// 按照置顶排序,置顶的会在前面
if (a.adminPinned !== b.adminPinned) {
return a.adminPinned ? -1 : 1;

View File

@@ -97,7 +97,7 @@ async function getChatConversationList() {
// 1.1 获取 对话数据
conversationList.value = await getChatConversationMyList();
// 1.2 排序
conversationList.value.sort((a, b) => {
conversationList.value.toSorted((a, b) => {
return Number(b.createTime) - Number(a.createTime);
});
// 1.3 没有任何对话情况

View File

@@ -13,7 +13,6 @@ import {
getChatRole,
updateChatRole,
} from '#/api/ai/model/chatRole';
import {} from '#/api/bpm/model';
import { $t } from '#/locales';
import { useFormSchema } from '../data';

View File

@@ -9,7 +9,6 @@ import { ElMessage } from 'element-plus';
import { useVbenForm } from '#/adapter/form';
import { createModel, getModel, updateModel } from '#/api/ai/model/model';
import {} from '#/api/bpm/model';
import { $t } from '#/locales';
import { useFormSchema } from '../data';

View File

@@ -17,7 +17,7 @@ const currentSong = ref({}); // 当前音乐
const mySongList = ref<Recordable<any>[]>([]);
const squareSongList = ref<Recordable<any>[]>([]);
function generateMusic(formData: Recordable<any>) {
function generateMusic(_formData: Recordable<any>) {
loading.value = true;
setTimeout(() => {
mySongList.value = Array.from({ length: 20 }, (_, index) => {

View File

@@ -6,7 +6,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -54,7 +54,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -102,7 +102,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -150,7 +150,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -198,7 +198,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -246,7 +246,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -294,7 +294,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,
@@ -342,7 +342,7 @@ export function getChartOptions(activeTabName: any, res: any): any {
return {
dataset: {
dimensions: ['nickname', 'count'],
source: cloneDeep(res).reverse(),
source: cloneDeep(res).toReversed(),
},
grid: {
left: 20,

View File

@@ -86,6 +86,7 @@ watch(
/** 处理新增 */
function handleAdd() {
// TODO @芋艿
const newRow = {
id: undefined,
warehouseId: undefined,

View File

@@ -105,6 +105,7 @@ function handleAdd() {
/** 处理删除 */
function handleDelete(row: ErpStockOutApi.StockOutItem) {
// TODO @芋艿
const index = tableData.value.findIndex((item) => item.seq === row.seq);
if (index !== -1) {
tableData.value.splice(index, 1);
@@ -271,7 +272,7 @@ onMounted(async () => {
</template>
<template #bottom>
<div class="border-border bg-muted mt-2 rounded border p-2">
<div class="mt-2 rounded border border-border bg-muted p-2">
<div class="text-muted-foreground flex justify-between text-sm">
<span class="text-foreground font-medium">合计</span>
<div class="flex space-x-4">

View File

@@ -47,7 +47,7 @@ const { status, data, send, close, open } = useWebSocket(server.value, {
const messageList = ref(
[] as { text: string; time: number; type?: string; userId?: string }[],
); // 消息列表
const messageReverseList = computed(() => [...messageList.value].reverse());
const messageReverseList = computed(() => [...messageList.value].toReversed());
watchEffect(() => {
if (!data.value) {
return;

View File

@@ -57,10 +57,10 @@ export function isContains(hotArea: Rect, point: Point): boolean {
*/
export function createRect(a: Point, b: Point): Rect {
// 计算矩形的范围
let [left, left2] = [a.x, b.x].sort();
let [left, left2] = [a.x, b.x].toSorted();
left = left ?? 0;
left2 = left2 ?? 0;
let [top, top2] = [a.y, b.y].sort();
let [top, top2] = [a.y, b.y].toSorted();
top = top ?? 0;
top2 = top2 ?? 0;
const right = left2 + 1;

View File

@@ -111,20 +111,22 @@ const [Modal, modalApi] = useVbenModal({
if (data.row?.id) {
// 编辑:加载数据
const rowData = data.row;
const formValues: any = { ...rowData };
formValues.reply = {
type: rowData.responseMessageType,
accountId: data.accountId || -1,
content: rowData.responseContent,
mediaId: rowData.responseMediaId,
url: rowData.responseMediaUrl,
title: rowData.responseTitle,
description: rowData.responseDescription,
thumbMediaId: rowData.responseThumbMediaId,
thumbMediaUrl: rowData.responseThumbMediaUrl,
articles: rowData.responseArticles,
musicUrl: rowData.responseMusicUrl,
hqMusicUrl: rowData.responseHqMusicUrl,
const formValues: any = {
...rowData,
reply: {
type: rowData.responseMessageType,
accountId: data.accountId || -1,
content: rowData.responseContent,
mediaId: rowData.responseMediaId,
url: rowData.responseMediaUrl,
title: rowData.responseTitle,
description: rowData.responseDescription,
thumbMediaId: rowData.responseThumbMediaId,
thumbMediaUrl: rowData.responseThumbMediaUrl,
articles: rowData.responseArticles,
musicUrl: rowData.responseMusicUrl,
hqMusicUrl: rowData.responseHqMusicUrl,
},
};
await formApi.setValues(formValues);
} else {

View File

@@ -106,7 +106,7 @@ async function getPage(page: any, params: any = null) {
const scrollHeight = msgDivRef.value?.scrollHeight ?? 0;
// 处理数据
const data = dataTemp.list.reverse();
const data = dataTemp.list.toReversed();
list.value = [...data, ...list.value];
loading.value = false;
if (data.length < queryParams.pageSize || data.length === 0) {

View File

@@ -134,20 +134,20 @@ function menuListToFrontend(list: any[]) {
list.forEach((item: RawMenu) => {
const menu: any = {
...item,
};
menu.reply = {
type: item.replyMessageType,
accountId: item.accountId,
content: item.replyContent,
mediaId: item.replyMediaId,
url: item.replyMediaUrl,
title: item.replyTitle,
description: item.replyDescription,
thumbMediaId: item.replyThumbMediaId,
thumbMediaUrl: item.replyThumbMediaUrl,
articles: item.replyArticles,
musicUrl: item.replyMusicUrl,
hqMusicUrl: item.replyHqMusicUrl,
reply: {
type: item.replyMessageType,
accountId: item.accountId,
content: item.replyContent,
mediaId: item.replyMediaId,
url: item.replyMediaUrl,
title: item.replyTitle,
description: item.replyDescription,
thumbMediaId: item.replyThumbMediaId,
thumbMediaUrl: item.replyThumbMediaUrl,
articles: item.replyArticles,
musicUrl: item.replyMusicUrl,
hqMusicUrl: item.replyHqMusicUrl,
},
};
result.push(menu as RawMenu);
});
@@ -277,18 +277,18 @@ function menuToBackend(menu: any) {
...menu,
children: undefined, // 不处理子节点
reply: undefined, // 稍后复制
replyMessageType: menu.reply.type,
replyContent: menu.reply.content,
replyMediaId: menu.reply.mediaId,
replyMediaUrl: menu.reply.url,
replyTitle: menu.reply.title,
replyDescription: menu.reply.description,
replyThumbMediaId: menu.reply.thumbMediaId,
replyThumbMediaUrl: menu.reply.thumbMediaUrl,
replyArticles: menu.reply.articles,
replyMusicUrl: menu.reply.musicUrl,
replyHqMusicUrl: menu.reply.hqMusicUrl,
};
result.replyMessageType = menu.reply.type;
result.replyContent = menu.reply.content;
result.replyMediaId = menu.reply.mediaId;
result.replyMediaUrl = menu.reply.url;
result.replyTitle = menu.reply.title;
result.replyDescription = menu.reply.description;
result.replyThumbMediaId = menu.reply.thumbMediaId;
result.replyThumbMediaUrl = menu.reply.thumbMediaUrl;
result.replyArticles = menu.reply.articles;
result.replyMusicUrl = menu.reply.musicUrl;
result.replyHqMusicUrl = menu.reply.hqMusicUrl;
return result;
}
// TODO @hwantd 和 ele 版本,基本没用自定义组件,他们的 tindwind 需要进一步对齐么?(主要还是考虑维护性哈。)

View File

@@ -256,9 +256,7 @@ export function useAppFormSchema(): VbenFormSchema[] {
/** 渠道新增/修改的表单 */
export function useChannelFormSchema(formType: string = ''): VbenFormSchema[] {
const schema: VbenFormSchema[] = [];
// 添加通用字段
schema.push(
const schema: VbenFormSchema[] = [
{
component: 'Input',
fieldName: 'id',
@@ -307,7 +305,8 @@ export function useChannelFormSchema(formType: string = ''): VbenFormSchema[] {
options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'),
},
},
);
];
// 添加通用字段
// 根据类型添加特定字段
if (formType.includes('alipay_')) {
schema.push(
@@ -402,7 +401,10 @@ export function useChannelFormSchema(formType: string = ''): VbenFormSchema[] {
fieldName: 'config.appCertContent',
component: h(InputUpload, {
inputType: 'textarea',
textareaProps: { rows: 3, placeholder: '请上传商户公钥应用证书' },
textareaProps: {
rows: 3,
placeholder: '请上传商户公钥应用证书',
},
fileUploadProps: {
accept: ['crt'],
},

View File

@@ -1,6 +1,4 @@
<script lang="ts" setup>
import type { UploadRawFile } from 'element-plus';
import { useVbenModal } from '@vben/common-ui';
import { downloadFileFromBlobPart } from '@vben/utils';