diff --git a/.cursor/rules/frontend-design-spec.mdc b/.cursor/rules/frontend-design-spec.mdc index 2a01119..d7f2097 100644 --- a/.cursor/rules/frontend-design-spec.mdc +++ b/.cursor/rules/frontend-design-spec.mdc @@ -31,7 +31,7 @@ alwaysApply: true - HandsontablePro 列定义用 `key` + `label`,勿用 `data` + `title` - HandsontablePro 固定列序:操作(可选,内容自适应宽)→ 序号(50px)→ 复选框(可选,60px)→ 数据;`stretch-columns` 只拉宽数据列,勿再传 `action-column-position` / `action-column-width` - 列表页高度:`flex: 1; min-height: 0`,`.list-wrap` 勿写死 min-height -- 分页 10/30/50/100,默认 30 +- 分页 10/30/50/100,默认 50 - 新页面 path 与 API 前缀冲突时须配置 nginx SPA 回退(见规范 §十五) ### 权限 diff --git a/IDE官网/9610.html b/IDE官网/9610.html index d93395a..552ba2d 100644 --- a/IDE官网/9610.html +++ b/IDE官网/9610.html @@ -4,6 +4,13 @@ 9610跨境电商出口方案选择指南 | IDE国际物流 + + + + + + + \ No newline at end of file diff --git a/src/views/system/announcement/index.vue b/src/views/system/announcement/index.vue index 209beac..99b1d8a 100644 --- a/src/views/system/announcement/index.vue +++ b/src/views/system/announcement/index.vue @@ -249,7 +249,7 @@ const dataSource = ref([]) const activeTab = ref<'notice' | 'message'>('notice') const keyword = ref('') const currentPage = ref(1) -const pageSize = ref(30) +const pageSize = ref(50) const totalCount = ref(0) const modalVisible = ref(false) @@ -482,7 +482,7 @@ function handlePageSizeChange(size: number) { function formatReceiverOptionLabel(opt: NoticeReceiverOption) { if (!opt.extra) return opt.label - return `${opt.label}(${opt.extra})` + return `${opt.label}ï¼?{opt.extra})` } function mergeReceiverOptions(options: NoticeReceiverOption[]) { diff --git a/src/views/system/dataPerm/audit/index.vue b/src/views/system/dataPerm/audit/index.vue index 7681171..0a770c3 100644 --- a/src/views/system/dataPerm/audit/index.vue +++ b/src/views/system/dataPerm/audit/index.vue @@ -30,14 +30,14 @@ - + - P1 后端暂不自动写入访问日志;本页为预留查询界面,待内审需求启用后再对接。 + P1 后端暂不自动写入访问日志;本页为预留查询界面,待内审需求启用后再对接ã€?
@@ -94,7 +94,7 @@ const changeQuery = reactive({ targetId: '', timeRange: [] as string[], }) -const changePagination = reactive({ current: 1, pageSize: 30, total: 0 }) +const changePagination = reactive({ current: 1, pageSize: 50, total: 0 }) const accessLoading = ref(false) const accessLogs = ref([]) @@ -103,7 +103,7 @@ const accessQuery = reactive({ dataResourceCode: '', timeRange: [] as string[], }) -const accessPagination = reactive({ current: 1, pageSize: 30, total: 0 }) +const accessPagination = reactive({ current: 1, pageSize: 50, total: 0 }) function buildTimeParams(range: string[]) { if (!range?.length || range.length < 2) return {} diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue index d5bc48f..0d3f219 100644 --- a/src/views/system/dict/index.vue +++ b/src/views/system/dict/index.vue @@ -242,7 +242,7 @@ const query = reactive({ const pagination = reactive({ current: 1, - pageSize: 30, + pageSize: 50, total: 0, }) @@ -345,7 +345,7 @@ function actionRenderer(_row: DictDto, _rowIndex: number): string { ]) } -/** 固定列序:操作 + 序号 → 数据从 col 2 起 */ +/** 固定列序:操ä½?+ 序号 â†?数据ä»?col 2 èµ?*/ function customCellRenderer(_row: number, col: number, _value: unknown, rowData: DictDto): string | null { const dataColIndex = col - 2 if (dataColIndex < 0 || dataColIndex >= hotColumns.value.length) return null @@ -391,7 +391,7 @@ function handleTypeNodeClick(key: string) { } function handleTypeSearch() { - // filteredTypeList 客户端过滤 + // filteredTypeList 客户端过æ»? } function handleSearch() { diff --git a/src/views/system/organization/index.vue b/src/views/system/organization/index.vue index 4dfc152..de9fb59 100644 --- a/src/views/system/organization/index.vue +++ b/src/views/system/organization/index.vue @@ -287,7 +287,7 @@ const selectedOrganization = ref(null) const userSearchKeyword = ref('') const userLoading = ref(false) const userDataSource = ref([]) -const userPagination = reactive({ current: 1, pageSize: 30, total: 0 }) +const userPagination = reactive({ current: 1, pageSize: 50, total: 0 }) const { tableContainerRef, tableHeight } = useTableContainerHeight() const handsontableHeight = computed(() => Math.max(tableHeight.value || 0, 400)) @@ -432,7 +432,7 @@ function handleOrgSearch() { } function customCellRenderer(_row: number, col: number, _value: any, rowData: UserDto): string | null { - // HandsontablePro 列序:操作 → 序号 → 数据;showActionColumn 时 dataColStart=2 + // HandsontablePro 列序:操ä½?â†?序号 â†?数据;showActionColumn æ—?dataColStart=2 const dataColIndex = col - 2 if (dataColIndex < 0 || dataColIndex >= hotColumns.value.length) return null const key = hotColumns.value[dataColIndex].key diff --git a/src/views/track/trackMapping/Pull.vue b/src/views/track/trackMapping/Pull.vue index aaada5b..bcf4f8e 100644 --- a/src/views/track/trackMapping/Pull.vue +++ b/src/views/track/trackMapping/Pull.vue @@ -72,7 +72,7 @@ /** 搜索条件 */ const searchModel = reactive({}); - /** 搜索关键�?*/ + /** 搜索关键ï¿?*/ const searchKeyword = ref(''); const pullListData = ref([]); @@ -123,8 +123,8 @@ children: list.map((item: any) => { const time = item.createTime ? dayjs(item.createTime).format('YYYY-MM-DD HH:mm') : ''; const app = item.appName || (item.appKey != null ? (appMap.value?.[item.appKey] ?? '') : '') || item.appKey || '-'; - const appStr = app ? `【${app}】` : ''; - const customerStr = item.customer ? `【${item.customer}】` : ''; + const appStr = app ? `ã€?{app}】` : ''; + const customerStr = item.customer ? `ã€?{item.customer}】` : ''; const codeLine = [time, appStr, customerStr].filter(Boolean).join(' '); return { key: `item-${item.id}`, @@ -167,7 +167,7 @@ const activeTab = ref<'detail' | 'priority'>('detail'); const slidingTabItems = computed(() => [ { key: 'detail', label: '明细' }, - { key: 'priority', label: '优先级' }, + { key: 'priority', label: '优先çº? }, ]); const priorityModalRef = ref(); const priorityModalParams = reactive({ @@ -176,15 +176,15 @@ trackPullConfigId: undefined, }); - // 明细表分页 + // 明细表分é¡? const totalCount = ref(0); const currentPage = ref(1); - const pageSize = ref(30); + const pageSize = ref(50); - // 优先级 tab 分页 + // 优先çº?tab 分页 const priorityTotalCount = ref(0); const priorityCurrentPage = ref(1); - const priorityPageSize = ref(30); + const prioritypageSize = ref(50); const detailColumns = computed(() => [ { key: 'standardTrack', label: t('track.pull.table.standardTrack'), width: 280 }, @@ -196,9 +196,9 @@ { key: 'customer', label: '客户', width: 140 }, { key: 'orderNoTypeText', label: '拉取单号类型', width: 140 }, { key: 'pullTimesPerDay', label: '每天拉取次数', width: 120 }, - { key: 'priority', label: '优先级', width: 100 }, + { key: 'priority', label: '优先çº?, width: 100 }, { key: 'updateTime', label: '修改时间', width: 160 }, - { key: 'updateUser', label: '修改人', width: 120 }, + { key: 'updateUser', label: '修改äº?, width: 120 }, ]); function formatOrderNoType(cellValue: any) { @@ -293,7 +293,7 @@ label: '每天拉取次数', comp: 'AInputNumber', compProps: { - placeholder: '请输入次数', + placeholder: '请输入次æ•?, min: 0, max: 12, precision: 0, @@ -303,7 +303,7 @@ { required: true, type: 'number', - message: '请输入每天拉取次数', + message: '请输入每天拉取次æ•?, }, { type: 'number', @@ -315,7 +315,7 @@ }, { field: 'priority', - label: '优先级', + label: '优先çº?, comp: 'AInputNumber', compProps: { placeholder: '请输入优先级', @@ -370,7 +370,7 @@ span: 8, }, { - label: '服务商', + label: '服务å•?, field: 'serviceProviderCode', comp: 'SelectPro', compProps: (): any => { @@ -379,7 +379,7 @@ clearable: true, labelKeys: ['name'], titleStrs: ['name'], - placeholder: '请选择服务商', + placeholder: '请选择服务å•?, style: { width: '100%', height: '40px' }, idKey: 'code', isPage: false, @@ -394,17 +394,17 @@ rules: [ { required: true, - message: '请选择服务商', + message: '请选择服务å•?, }, ], }, { - label: '开始轨迹', + label: '开始轨è¿?, field: 'startTrackCode', comp: 'SelectPro', compProps: (): any => { return { - placeholder: '请选择开始轨迹', + placeholder: '请选择开始轨è¿?, isPage: true, clearable: true, immediate: true, @@ -420,11 +420,11 @@ span: 8, }, { - label: '开始睡眠多少小时', + label: '开始睡眠多少小æ—?, field: 'silenceBeforeStart', comp: 'AInputNumber', compProps: { - placeholder: '请输入1-48的整数', + placeholder: '请输å…?-48的整æ•?, style: { width: '100%', height: '40px' }, min: 1, max: 14, @@ -437,7 +437,7 @@ type: 'number', min: 1, max: 48, - message: '请输入1-48之间的整数', + message: '请输å…?-48之间的整æ•?, trigger: 'change', }, ], @@ -464,11 +464,11 @@ span: 8, }, { - label: '结束继续拉取多久/天', + label: '结束继续拉取多久/å¤?, field: 'silenceAfterEnd', comp: 'AInputNumber', compProps: { - placeholder: '请输入1-14的整数', + placeholder: '请输å…?-14的整æ•?, style: { width: '100%', height: '40px' }, min: 1, max: 14, @@ -481,7 +481,7 @@ type: 'number', min: 1, max: 14, - message: '请输入1-14之间的整数', + message: '请输å…?-14之间的整æ•?, trigger: 'change', }, ], @@ -553,7 +553,7 @@ }; const data: any[] = [ { - label: '拉取轨迹关键字', + label: '拉取轨迹关键å­?, field: 'trackKeywords', comp: 'TagsAdd', compProps: ({ formModel }: { formModel: any }) => { @@ -565,7 +565,7 @@ span: 24, }, { - label: '拉取轨迹关键字(过滤)', + label: '拉取轨迹关键字(过滤ï¼?, field: 'trackKeywordReverses', comp: 'TagsAdd', compProps: ({ formModel }: { formModel: any }) => { @@ -607,7 +607,7 @@ // 单击行获取行数据 function cellClick(par: any) { currentId.value = par; - // 点击行数据处�? + // 点击行数据处ï¿? } // 点击新增 编辑打开左侧弹窗 @@ -714,10 +714,10 @@ }); } - // 删除优先级数�? + // 删除优先级数ï¿? function handleDelPriorityData(row: any) { if (!row.customer) { - $baseMessage('客户字段为必填项,无法删除', 'warning'); + $baseMessage('客户字段为必填项,无法删é™?, 'warning'); return; } $baseConfirm({ @@ -768,9 +768,9 @@ priorityTotalCount.value = 0; } - // 提交前数据处�? + // 提交前数据处ï¿? function beforeSubmitLeft(formData: any) { - // 返参配置字段已废弃,提交时确保不带这些字段(兼容旧数据/缓存) + // 返参配置字段已废弃,提交时确保不带这些字段(兼容旧数æ�?缓存ï¼? const deprecatedKeys = [ 'parseMethod', 'orderPath', @@ -792,15 +792,15 @@ return formData; } - // 右侧弹窗提交前处理:接口不再需要兜底轨迹发生地等字段 + // 右侧弹窗提交前处理:接口不再需要兜底轨迹发生地等字æ®? function beforeSubmitRight(formData: any) { if ('trackPlaceValue' in formData) delete formData.trackPlaceValue; return formData; } - // 从API获取数据后处�? + // 从API获取数据后处ï¿? function onGetInfoLeft(data: any) { - // 返参配置已废弃:不再做默认值处理 + // 返参配置已废弃:不再做默认值处ç�? } // 左侧弹窗保存 @@ -825,16 +825,16 @@ }); } - // 优先级弹�?- 新增/编辑 + // 优先级弹ï¿?- 新增/编辑 function handleOpenPriorityModal(type: IDialogConfig['type'], row?: any) { if (!currentId.value || !currentId.value.id) { - $baseMessage('请先选择左侧一条拉取配置', 'warning'); + $baseMessage('请先选择左侧一条拉取配ç½?, 'warning'); return; } const titleObj: { [x in IDialogConfig['type']]: string } = { - add: '新增优先级', - edit: '编辑优先级', + add: '新增优先çº?, + edit: '编辑优先çº?, }; priorityModalParams.trackPullConfigId = currentId.value.id; @@ -854,8 +854,8 @@ formData = { customer: row.customer, orderNoType: row.orderNoType, - // 24 / 每天拉取次数 * 60 = 接口�? - // 每天拉取次数 = 24 * 60 / 接口�?= 1440 / 接口�? + // 24 / 每天拉取次数 * 60 = 接口ï¿? + // 每天拉取次数 = 24 * 60 / 接口ï¿?= 1440 / 接口ï¿? pullInterval: row.pullInterval && row.pullInterval !== 0 ? 1440 / row.pullInterval : undefined, priority: row.priority, }; @@ -868,7 +868,7 @@ }); } - // 优先级弹窗提�? + // 优先级弹窗提ï¿? async function onSubmitPriority(formData: any) { if (!currentId.value || !currentId.value.id) return; @@ -879,8 +879,8 @@ customer: formData.customer, orderNoType: formData.orderNoType, priority: formData.priority, - // 24 / 每天拉取次数 * 60 = 接口�? - // 接口�?= (24 / 每天拉取次数) * 60 = 1440 / 每天拉取次数 + // 24 / 每天拉取次数 * 60 = 接口ï¿? + // 接口ï¿?= (24 / 每天拉取次数) * 60 = 1440 / 每天拉取次数 pullInterval: formData.pullInterval && formData.pullInterval !== 0 ? 1440 / formData.pullInterval : undefined, }; @@ -1012,7 +1012,7 @@ // 确认串联拉取 function handleConfirmChainPull() { if (!selectedServiceProviderId.value) { - $baseMessage('请选择服务商', 'warning'); + $baseMessage('请选择服务å•?, 'warning'); return; } // TODO: 这里可以添加串联拉取的具体逻辑 @@ -1043,7 +1043,7 @@ search-placeholder="请输入服务商名称或appkey" :refresh-title="$t('track.push.actions.refresh')" add-title="新增拉取" - loading-text="加载中..." + loading-text="加载ä¸?.." delete-label="删除" :show-method="false" :show-map-count="false" @@ -1162,7 +1162,7 @@
- +
@@ -1223,7 +1223,7 @@ >
- + @@ -1239,7 +1239,7 @@
- + ({}); - /** 搜索关键字 */ + /** 搜索关键å­?*/ const searchKeyword = ref(''); const pushListData = ref([]); @@ -104,7 +104,7 @@ const items = res?.data?.items ?? res?.items ?? res?.data ?? []; pushListData.value = Array.isArray(items) ? items : []; } catch (e) { - $baseMessage('加载推送配置列表失败', 'error'); + $baseMessage('加载推送配置列表失è´?, 'error'); pushListData.value = []; } finally { pushLoading.value = false; @@ -117,12 +117,12 @@ return [ { key: 'category-1', - title: '推送配置', + title: '推送配ç½?, children: list.map((item: any) => { const time = item.createTime ? dayjs(item.createTime).format('YYYY-MM-DD HH:mm') : ''; const app = item.appName || (item.appKey != null ? (appMap.value?.[item.appKey] ?? '') : '') || item.appKey || '-'; - const appStr = app ? `【${app}】` : ''; - const customerStr = item.customer ? `【${item.customer}】` : ''; + const appStr = app ? `ã€?{app}】` : ''; + const customerStr = item.customer ? `ã€?{item.customer}】` : ''; const codeLine = [time, appStr, customerStr].filter(Boolean).join(' '); return { key: `item-${item.id}`, @@ -167,7 +167,7 @@ // 分页 const totalCount = ref(0); const currentPage = ref(1); - const pageSize = ref(30); + const pageSize = ref(50); const detailColumns = computed(() => { const fixed = [ @@ -221,7 +221,7 @@ function addDraftColumn() { const name = newColumnName.value?.trim(); if (!name) { - $baseMessage('请输入列名', 'warning'); + $baseMessage('请输入列å�?, 'warning'); return; } if (draftColumns.value.some((c) => c.title === name)) { @@ -251,7 +251,7 @@ function saveDraftColumnTitle(col: CustomColumnItem, newTitle: string) { const title = newTitle?.trim(); if (!title) { - $baseMessage('请输入列名', 'warning'); + $baseMessage('请输入列å�?, 'warning'); return; } if (draftColumns.value.some((c) => c !== col && c.title === title)) { @@ -499,7 +499,7 @@ field: col.field, comp: 'AInput', compProps: { - placeholder: '请输入', + placeholder: '请输å…?, }, span: 12, })); @@ -868,7 +868,7 @@ } catch { /* ignore */ } } }); - // 根据接口返回的 extraConfig 完全替换自定义表头 + // 根据接口返回çš?extraConfig 完全替换自定义表å¤? customColumns.value = Array.from(extraKeys).map((key) => ({ field: key, title: key })); items.forEach((r: any) => { r.standardTrack = formatStandardTrack(r); @@ -919,7 +919,7 @@ :search-placeholder="$t('track.push.search.placeholder')" :refresh-title="$t('track.push.actions.refresh')" :add-title="$t('track.push.actions.addPush')" - loading-text="加载中..." + loading-text="加载ä¸?.." :delete-label="$t('track.push.actions.delete')" :show-method="false" :show-map-count="false" @@ -1043,7 +1043,7 @@ 取消 保存 -
请填写上游接口-推送轨迹的字段名,用于传递入参
+
请填写上游接å�?推送轨迹的字段名,用于传递入å�?/div>
@@ -1051,7 +1051,7 @@
{{ column.title }} - + ×
@@ -1098,7 +1098,7 @@ width: 100%; } - /* 左侧区域 - 符合设计规范:圆角 8px */ + /* 左侧区域 - 符合设计规范:圆è§?8px */ :deep(.trb-transform-left) { background: var(--app-sidebar-bg) !important; backdrop-filter: blur(20px) saturate(180%); @@ -1344,7 +1344,7 @@ } } - /* 新增、保存按钮间距 */ + /* 新增、保存按钮间è·?*/ .toolbar-add-save-btns { display: flex; align-items: center; @@ -1494,7 +1494,7 @@ } } - /* 左侧面板与轨迹拉取一致 */ + /* 左侧面板与轨迹拉取一è‡?*/ :deep(.trb-transform-left) { background: transparent !important; border: none !important; @@ -1530,7 +1530,7 @@ height: 100%; } - /* 输入框 / Select 焦点 - 符合设计规范 */ + /* 输入æ¡?/ Select 焦点 - 符合设计规范 */ .track-layout :deep(.arco-input:focus-within), .track-layout :deep(.arco-input-number:focus-within), .track-layout :deep(.arco-select-view-open) { diff --git a/src/views/track/trackMapping/components/PullScroll.vue b/src/views/track/trackMapping/components/PullScroll.vue index 3982443..c9fec27 100644 --- a/src/views/track/trackMapping/components/PullScroll.vue +++ b/src/views/track/trackMapping/components/PullScroll.vue @@ -28,15 +28,15 @@ const page = reactive({ pageIndex: 1, - pageSize: 30, + pageSize: 50, }); const listData = ref([]); - // 应用列表映射(appKey -> name) + // 应用列表映射(appKey -> nameï¼? const appMap = ref>({}); - // 加载应用列表并创建映射 + // 加载应用列表并创建映å°? const loadAppMap = async () => { try { const res = await getAppGetList({ @@ -56,7 +56,7 @@ } }; - // 组件挂载时加载应用映射 + // 组件挂载时加载应用映å°? onMounted(() => { loadAppMap(); }); @@ -208,19 +208,19 @@ } } - /* 修改滚动条轨道背景颜色 */ + /* 修改滚动条轨道背景颜è‰?*/ .scrollbar::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.08); border-radius: 8px; } - /* 修改滚动条滑块背景颜色 */ + /* 修改滚动条滑块背景颜è‰?*/ .scrollbar::-webkit-scrollbar-thumb { background: rgba(86, 144, 236, 0.65); border-radius: 8px; } - /* 修改滚动条滑块前景颜色 */ + /* 修改滚动条滑块前景颜è‰?*/ .scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(59, 97, 148, 0.85); } diff --git a/src/views/track/trackMapping/components/PushScroll.vue b/src/views/track/trackMapping/components/PushScroll.vue index 04180ca..df7328c 100644 --- a/src/views/track/trackMapping/components/PushScroll.vue +++ b/src/views/track/trackMapping/components/PushScroll.vue @@ -28,14 +28,14 @@ const page = reactive({ pageIndex: 1, - pageSize: 30, + pageSize: 50, }); const listData = ref([]); - // 应用列表映射(appKey -> name) + // 应用列表映射(appKey -> nameï¼? const appMap = ref>({}); - // 加载应用列表并创建映射 + // 加载应用列表并创建映å°? const loadAppMap = async () => { try { const res = await getAppGetList({ @@ -55,7 +55,7 @@ } }; - // 组件挂载时加载应用映射 + // 组件挂载时加载应用映å°? onMounted(() => { loadAppMap(); }); @@ -205,19 +205,19 @@ } } - /* 修改滚动条轨道背景颜色 */ + /* 修改滚动条轨道背景颜è‰?*/ .scrollbar::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.08); border-radius: 8px; } - /* 修改滚动条滑块背景颜色 */ + /* 修改滚动条滑块背景颜è‰?*/ .scrollbar::-webkit-scrollbar-thumb { background: rgba(86, 144, 236, 0.65); border-radius: 8px; } - /* 修改滚动条滑块前景颜色 */ + /* 修改滚动条滑块前景颜è‰?*/ .scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(59, 97, 148, 0.85); } diff --git a/src/views/user/senderAddress/index.vue b/src/views/user/senderAddress/index.vue index dc8a8c7..4df8a9a 100644 --- a/src/views/user/senderAddress/index.vue +++ b/src/views/user/senderAddress/index.vue @@ -37,7 +37,7 @@ const keyword = ref('') const listLoading = ref(false) const tableRows = ref([]) const currentPage = ref(1) -const pageSize = ref(30) +const pageSize = ref(50) const totalCount = ref(0) const saving = ref(false) diff --git a/src/views/user/sub-account/index.vue b/src/views/user/sub-account/index.vue index 9e0d252..c3b7a09 100644 --- a/src/views/user/sub-account/index.vue +++ b/src/views/user/sub-account/index.vue @@ -175,7 +175,7 @@ const mainCustomerOptions = ref<{ label: string; value: number }[]>([]) const tableData = ref([]) const totalCount = ref(0) const currentPage = ref(1) -const pageSize = ref(30) +const pageSize = ref(50) const hotColumns = computed(() => [ { key: 'customerCode', label: t('user.subAccount.fields.customerCode'), width: 110 }, @@ -304,7 +304,7 @@ async function loadMainCustomerOptions() { const id = extractCustomerId(c as Record)! return { value: id, - label: `${c.customerName || ''}(${c.customerCode || id})`, + label: `${c.customerName || ''}ï¼?{c.customerCode || id})`, } }) } catch { @@ -379,7 +379,7 @@ const formRules = computed(() => ({ password: [{ required: true, message: t('user.subAccount.rules.passwordRequired') }], })) -// 权限树(子账号权限须 ⊆ 当前登录用户 permissions) +// 权限树(子账号权限须 âŠ?当前登录用户 permissionsï¼? const permissionTreeLoading = ref(false) const permissionTree = ref([]) const permissionExpandedKeys = ref([]) diff --git a/src/views/warehouse/binLocation/index.vue b/src/views/warehouse/binLocation/index.vue index a1533e0..983fed6 100644 --- a/src/views/warehouse/binLocation/index.vue +++ b/src/views/warehouse/binLocation/index.vue @@ -37,7 +37,7 @@ const tableRows = ref([]) const keyword = ref('') const enabledFilter = ref(undefined) const currentPage = ref(1) -const pageSize = ref(30) +const pageSize = ref(50) const totalCount = ref(0) const [registerFormModal, { openModal, closeModal }] = useModal() as any diff --git a/src/views/warehouse/inboundNotice/index.vue b/src/views/warehouse/inboundNotice/index.vue index 997e4e1..75f32ce 100644 --- a/src/views/warehouse/inboundNotice/index.vue +++ b/src/views/warehouse/inboundNotice/index.vue @@ -78,7 +78,7 @@ const { } = useWarehouseAdminCustomer() const currentWarehouseStore = useCurrentWarehouseStore() -/** Tab active-key;全部用 'all',请求时再转成不传 receiptStatus */ +/** Tab active-key;全部用 'all',请求时再转成不ä¼?receiptStatus */ const STATUS_TAB_ALL = 'all' const receiptStatus = ref(STATUS_TAB_ALL) const summary = ref({ forecasted: 0, received: 0, completed: 0 }) @@ -90,7 +90,7 @@ const skuOptions = ref>([] const listLoading = ref(false) const tableRows = ref([]) const currentPage = ref(1) -const pageSize = ref(30) +const pageSize = ref(50) const totalCount = ref(0) const selectedBoxKeys = ref([]) const activeBoxKey = ref('') @@ -699,7 +699,7 @@ onMounted(async () => {
{{ t('warehouse.inbound.box') }} {{ box.boxSeqNo }} - ({{ box.markBoxNo }}) + ({{ box.markBoxNo }}ï¼?/span>
- + @@ -149,20 +149,20 @@ - + - + @@ -180,26 +180,26 @@ :footer="false" > - - 打开 Agent 桌面端 + - 一键连接 + + 一键连æŽ? - 本机引擎与扩展 + 本机引擎与扩å±? Web 远程控制 - - 请先在浏览器登录 OMS,再打开桌面端点击「连接 OMS」。若本页已打开,授权会自动完成。 + + 请先在浏览器登录 OMS,再打开桌面端点击「连æŽ?OMS」。若本页已打开,授权会自动完成ã€?
-
桌面端
+
桌面ç«?/div>
{{ desktopAgentHint }}
@@ -228,7 +228,7 @@ const selectedAgentId = ref(); const showSetupDrawer = ref(false); const pagination = reactive({ current: 1, - pageSize: 30, + pageSize: 50, total: 0, }); @@ -257,41 +257,41 @@ const bridgeUrlText = computed(() => { const engineBadge = computed((): { kind: XhsBadgeKind; text: string } => { const agent = selectedAgent.value; - if (!agent || agent.status !== 'online') return { kind: 'idle', text: '待刷新' }; - if (agent.engineRunning) return { kind: 'ok', text: '运行中' }; - if (agent.extensionConnected) return { kind: 'warn', text: '待扩展' }; - return { kind: 'err', text: '未启动' }; + if (!agent || agent.status !== 'online') return { kind: 'idle', text: '待刷æ–? }; + if (agent.engineRunning) return { kind: 'ok', text: '运行ä¸? }; + if (agent.extensionConnected) return { kind: 'warn', text: '待扩å±? }; + return { kind: 'err', text: '未启åŠ? }; }); const loginBadge = computed((): { kind: XhsBadgeKind; text: string } => { const agent = selectedAgent.value; - if (!agent || agent.status !== 'online') return { kind: 'idle', text: '待刷新' }; - if (agent.xhsLoggedIn) return { kind: 'ok', text: '已登录' }; + if (!agent || agent.status !== 'online') return { kind: 'idle', text: '待刷æ–? }; + if (agent.xhsLoggedIn) return { kind: 'ok', text: '已登å½? }; if (agent.engineRunning && agent.extensionConnected) return { kind: 'ok', text: '扩展就绪' }; - if (agent.engineRunning) return { kind: 'warn', text: '未登录' }; - return { kind: 'warn', text: '待启动' }; + if (agent.engineRunning) return { kind: 'warn', text: '未登å½? }; + return { kind: 'warn', text: '待启åŠ? }; }); const loginGuideText = computed(() => { const agent = selectedAgent.value; if (!agent) { - return '只需:连接 Agent → 启动引擎 → 在 Chrome 加载扩展 → 打开小红书并登录。'; + return '只需:连æŽ?Agent â†?启动引擎 â†?åœ?Chrome 加载扩展 â†?打开小红书并登录ã€?; } if (agent.xhsLoggedIn) { - return '校验通过:可在「内容分析」或「爆款创作」页使用工具。'; + return '校验通过:可在「内容分析」或「爆款创作」页使用工具ã€?; } if (agent.engineRunning && agent.extensionConnected) { - return '引擎与扩展已就绪。请在 Chrome 中打开小红书并登录;可点击扩展图标查看实时状态。'; + return '引擎与扩展已就绪。请åœ?Chrome 中打开小红书并登录;可点击扩展图标查看实时状态ã€?; } - return '只需:启动引擎 → 在 Chrome 加载扩展 → 打开小红书并登录。扩展图标可查看 Bridge 与登录状态;下方按钮用于快捷操作。'; + return '只需:启动引æ“?â†?åœ?Chrome 加载扩展 â†?打开小红书并登录。扩展图标可查看 Bridge 与登录状态;下方按钮用于快捷操作ã€?; }); const desktopAgentHint = computed(() => [ '1. 运行 oms0414/xhs-agent-desktop/run.ps1', - '2. 桌面端点击「连接 OMS」(无需填 API / Token)', - '3. 保持本页打开 → 自动授权;或按提示打开授权页', - '4. 启动引擎 → Chrome 加载扩展目录 → 登录小红书', + '2. 桌面端点击「连æŽ?OMS」(无需å¡?API / Tokenï¼?, + '3. 保持本页打开 â†?自动授权;或按提示打开授权é¡?, + '4. 启动引擎 â†?Chrome 加载扩展目录 â†?登录小红ä¹?, ].join('\n'), ); @@ -333,7 +333,7 @@ async function tryAutoPair() { const ok = await pushCredentialsToAgent(token); if (ok) { pairPushed = true; - Message.success('已向桌面 Agent 发送授权'); + Message.success('已向桌面 Agent 发送授æ�?); setTimeout(loadAgents, 1500); } } @@ -370,13 +370,13 @@ async function control(action: string) { return; } if (agent.status !== 'online') { - Message.warning('所选 Agent 离线,请检查本机是否在运行'); + Message.warning('所é€?Agent 离线,请检查本机是否在运行'); return; } if (action === 'clear_cookies') { Modal.confirm({ - title: '退出登录', - content: '将在浏览器中退出小红书登录状态,确定继续?', + title: '退出登å½?, + content: '将在浏览器中退出小红书登录状态,确定继续ï¼?, onOk: () => sendControl(agent.id, action), }); return; @@ -387,7 +387,7 @@ async function control(action: string) { async function sendControl(agentId: number, action: string) { try { const res = await controlXhsAgent(agentId, action); - Message.success(`已创建任务 #${res.taskId}`); + Message.success(`已创建任åŠ?#${res.taskId}`); setTimeout(loadAgents, 2000); } catch (e: any) { Message.error(e?.message || '操作失败');