From cfbf23bd68616ec5381890f57534e1ce9d9d853e Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Wed, 28 Jan 2026 10:18:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 4 +- public/favicon.ico | Bin 5225 -> 11540 bytes src/api/monitor/job.js | 11 +- src/assets/logo/logo.png | Bin 5225 -> 11540 bytes src/components/PersonPicker/index.vue | 96 ++-- src/utils/bus.js | 1 + .../personManage/addAndEditForm.vue | 1 + src/views/basicManage/personManage/config.js | 62 +-- src/views/basicManage/personManage/index.vue | 7 +- src/views/sMsSendManage/loopSend/edit.vue | 11 +- src/views/sMsSendManage/loopSend/index.vue | 17 +- src/views/system/dept/index.vue | 517 ++++++++++-------- src/views/system/user/index.vue | 10 +- 13 files changed, 423 insertions(+), 314 deletions(-) diff --git a/.env.production b/.env.production index ff69b18..6e01c9d 100644 --- a/.env.production +++ b/.env.production @@ -5,10 +5,10 @@ VITE_APP_TITLE = 短信发送小工具 VITE_APP_ENV = 'production' # 短信发送小工具/生产环境 -VITE_APP_BASE_API = '/ynDigitalGadgets-prod-api' +VITE_APP_BASE_API = '/ynMessage-prod-api/ynMessage' #静态资源路径(服务器目录) -VITE_APP_PUBLIC_PATH = '/ynDigitalGadgets' +VITE_APP_PUBLIC_PATH = '/ynMessage' # 是否在打包时开启压缩,支持 gzip 和 brotli VITE_BUILD_COMPRESS = gzip \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico index 84ea8650e8cefaf6f62324176f2ff11982f62831..d4e04d34e9cf116176ff08f8e8263809377bef45 100644 GIT binary patch literal 11540 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 diff --git a/src/api/monitor/job.js b/src/api/monitor/job.js index 30b9897..cb08f4f 100644 --- a/src/api/monitor/job.js +++ b/src/api/monitor/job.js @@ -29,8 +29,8 @@ export function addJob(data) { // 修改定时任务调度 export function updateJob(data) { return request({ - url: '/job', - method: 'put', + url: '/job/edit', + method: 'POST', data: data }) } @@ -38,8 +38,11 @@ export function updateJob(data) { // 删除定时任务调度 export function delJob(jobId) { return request({ - url: '/job/' + jobId, - method: 'delete' + url: '/job/delete/', + method: 'POST', + data: { + jobId: jobId + } }) } diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png index 84ea8650e8cefaf6f62324176f2ff11982f62831..d4e04d34e9cf116176ff08f8e8263809377bef45 100644 GIT binary patch literal 11540 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 diff --git a/src/components/PersonPicker/index.vue b/src/components/PersonPicker/index.vue index 499cd9e..d30b183 100644 --- a/src/components/PersonPicker/index.vue +++ b/src/components/PersonPicker/index.vue @@ -277,8 +277,17 @@ const onPersonSelectionChange = (selection) => { return } - // 更新直接选择的人员ID列表 - directSelectedPersonIds.value = selection.map((item) => item.id) + // 获取当前过滤后可见的人员ID集合 + const visiblePersonIds = new Set(filteredPersonList.value.map((item) => item.id)) + + // 获取当前选中的可见人员ID集合 + const selectedVisibleIds = new Set(selection.map((item) => item.id)) + + // 保留不在当前过滤列表中的已选人员(这些人员被搜索过滤掉了,但应该保留) + const preservedIds = directSelectedPersonIds.value.filter((id) => !visiblePersonIds.has(id)) + + // 合并保留的ID和当前选中的可见ID + directSelectedPersonIds.value = [...preservedIds, ...selectedVisibleIds] // 触发更新,合并所有选中的人员 updateSelectedPersons() @@ -333,7 +342,17 @@ const onGroupSelectionChange = (selection) => { return } - selectedGroupIds.value = selection.map((group) => group.id) + // 获取当前过滤后可见的分组ID集合 + const visibleGroupIds = new Set(filteredGroupList.value.map((item) => item.id)) + + // 获取当前选中的可见分组ID集合 + const selectedVisibleIds = new Set(selection.map((group) => group.id)) + + // 保留不在当前过滤列表中的已选分组(这些分组被搜索过滤掉了,但应该保留) + const preservedIds = selectedGroupIds.value.filter((id) => !visibleGroupIds.has(id)) + + // 合并保留的ID和当前选中的可见ID + selectedGroupIds.value = [...preservedIds, ...selectedVisibleIds] // 触发更新,合并所有选中的人员 updateSelectedPersons() @@ -401,34 +420,38 @@ const syncGroupTableSelection = () => { // 移除单个人员 const handleRemovePerson = (personId) => { - // 检查该人员是否来自分组 - const groupsToRemove = [] + // 检查该人员是否在直接选择列表中 + const isDirectSelected = directSelectedPersonIds.value.includes(personId) + // 检查该人员是否来自分组 + const groupsContainingPerson = [] selectedGroupIds.value.forEach((groupId) => { const group = groupList.value.find((g) => g.id === groupId) if (group && group.workerList && Array.isArray(group.workerList)) { const hasPerson = group.workerList.some((w) => w.id === personId) if (hasPerson) { - groupsToRemove.push(groupId) + groupsContainingPerson.push(groupId) } } }) - if (groupsToRemove.length > 0) { - // 如果人员来自分组,移除对应的分组 - selectedGroupIds.value = selectedGroupIds.value.filter((id) => !groupsToRemove.includes(id)) - updateSelectedPersons() - nextTick(() => { - syncGroupTableSelection() - }) - } else { - // 如果人员是直接选择的,从直接选择列表中移除 + // 如果人员既在直接选择列表中,又在分组中,只移除直接选择,保留分组 + if (isDirectSelected) { directSelectedPersonIds.value = directSelectedPersonIds.value.filter( (id) => id !== personId, ) - updateSelectedPersons() + } else if (groupsContainingPerson.length > 0) { + // 如果人员只来自分组(不在直接选择列表中),移除对应的分组 + selectedGroupIds.value = selectedGroupIds.value.filter( + (id) => !groupsContainingPerson.includes(id), + ) + nextTick(() => { + syncGroupTableSelection() + }) } + updateSelectedPersons() + // 同步人员表格 nextTick(() => { syncPersonTableSelection() @@ -482,42 +505,31 @@ const getGroupList = async () => { } } -// 监听 modelValue 变化,同步表格选中状态和区分直接选择的人员 +// 监听 modelValue 变化,仅在初始化时同步(避免干扰用户操作) watch( () => props.modelValue, (newVal) => { + // 如果内部状态已经有数据,说明是用户操作导致的,不需要反向同步 + // 只在初始化时(两个列表都为空)才同步 + if (directSelectedPersonIds.value.length > 0 || selectedGroupIds.value.length > 0) { + return + } + if (!newVal || newVal.length === 0) { directSelectedPersonIds.value = [] return } - // 区分哪些是直接选择的人员,哪些是来自分组的 - const directSelectedIds = [] - const groupPersonIds = new Set() - - // 收集所有分组中的人员ID - selectedGroupIds.value.forEach((groupId) => { - const group = groupList.value.find((g) => g.id === groupId) - if (group && group.workerList && Array.isArray(group.workerList)) { - group.workerList.forEach((worker) => { - if (worker && worker.id) { - groupPersonIds.add(worker.id) - } - }) - } - }) - - // 如果人员不在分组中,则认为是直接选择的 - newVal.forEach((person) => { - if (person && person.id && !groupPersonIds.has(person.id)) { - directSelectedIds.push(person.id) - } - }) - - directSelectedPersonIds.value = directSelectedIds + // 初始化时,尝试区分哪些是直接选择的人员 + // 由于此时还没有分组数据,先假设所有人员都是直接选择的 + // 等分组数据加载后,会通过 updateSelectedPersons 重新计算 + const personIds = newVal.map((p) => p.id).filter(Boolean) + directSelectedPersonIds.value = personIds if (activeTab.value === 'person') { - syncPersonTableSelection() + nextTick(() => { + syncPersonTableSelection() + }) } }, { deep: true, immediate: true }, diff --git a/src/utils/bus.js b/src/utils/bus.js index 3d4cb73..5e55b39 100644 --- a/src/utils/bus.js +++ b/src/utils/bus.js @@ -4,4 +4,5 @@ export const bus = mitt() // 定义事件名称常量 export const BUS_EVENTS = { REFRESH_OPTIONS: 'REFRESH_OPTIONS', // 刷新下拉选项信号 + REFRESH_LOOP_SEND_LIST: 'REFRESH_LOOP_SEND_LIST', // 刷新循环发送任务列表 } diff --git a/src/views/basicManage/personManage/addAndEditForm.vue b/src/views/basicManage/personManage/addAndEditForm.vue index 8b5d4e5..294776b 100644 --- a/src/views/basicManage/personManage/addAndEditForm.vue +++ b/src/views/basicManage/personManage/addAndEditForm.vue @@ -69,6 +69,7 @@ const rules = { workerName: [{ required: true, message: '请输入姓名', trigger: 'blur' }], sex: [{ required: true, message: '请选择性别', trigger: 'change' }], phone: [ + { required: true, message: '请输入电话', trigger: 'blur' }, { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', diff --git a/src/views/basicManage/personManage/config.js b/src/views/basicManage/personManage/config.js index 14862c3..1459842 100644 --- a/src/views/basicManage/personManage/config.js +++ b/src/views/basicManage/personManage/config.js @@ -3,41 +3,33 @@ import CryptoUtil from "../../../api/crypto.js"; // 根据下拉数据构建搜索表单配置 // 注意:这里不直接发请求,只依赖调用方传入的 options,避免在模块顶层使用组合式 API -export const buildFormColumns = ( - positionOptions = [], - natureOptions = [], - categoryOptions = [], -) => [ - { - type: 'input', - prop: 'name', - placeholder: '请输入姓名', - }, - { - type: 'select', - prop: 'sex', - placeholder: '请选择性别', - options: [ - { - label: '男', - value: 1, - }, - { - label: '女', - value: 0, - }, - ], - }, - { - type: 'select', - prop: 'positionId', - placeholder: '请选择部门', - options: positionOptions.map((item) => ({ - label: item.value, - value: item.id, - })), - }, - ] +export const buildFormColumns = [ + { + type: 'input', + prop: 'orgName', + placeholder: '请输入部门名称', + }, + { + type: 'input', + prop: 'workerName', + placeholder: '请输入姓名', + }, + { + type: 'select', + prop: 'sex', + placeholder: '请选择性别', + options: [ + { + label: '男', + value: 1, + }, + { + label: '女', + value: 0, + }, + ], + }, +] export const tableColumns = [ { diff --git a/src/views/basicManage/personManage/index.vue b/src/views/basicManage/personManage/index.vue index fab4fe0..2714dad 100644 --- a/src/views/basicManage/personManage/index.vue +++ b/src/views/basicManage/personManage/index.vue @@ -3,7 +3,7 @@ @@ -211,6 +210,7 @@ import { import ComButton from '@/components/ComButton/index.vue' import ComDialog from '@/components/ComDialog/index.vue' import PersonPicker from '@/components/PersonPicker/index.vue' +import { bus, BUS_EVENTS } from '@/utils/bus' const route = useRoute() const router = useRouter() @@ -373,6 +373,8 @@ const onSubmit = async () => { const result = await API(params) if (result.code === 200) { proxy.$modal.msgSuccess(mode.value === 'edit' ? '编辑成功' : '新增成功') + // 通知父页面刷新列表 + bus.emit(BUS_EVENTS.REFRESH_LOOP_SEND_LIST) onBack() } } catch (error) { @@ -563,7 +565,12 @@ onMounted(() => { } .page-footer { - margin-top: 12px; + position: sticky; + bottom: 10px; + background: #fff; + z-index: 10; + border-top: 1px solid #e4e7ed; + padding-top: 15px; display: flex; justify-content: flex-end; gap: 12px; diff --git a/src/views/sMsSendManage/loopSend/index.vue b/src/views/sMsSendManage/loopSend/index.vue index ffd94e9..a9ff56e 100644 --- a/src/views/sMsSendManage/loopSend/index.vue +++ b/src/views/sMsSendManage/loopSend/index.vue @@ -45,7 +45,7 @@ diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index c82e24d..5b1d77e 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -1,282 +1,361 @@