diff --git a/doc/部署说明/部署过程描述.md b/doc/部署说明/部署过程描述.md index beb9c9b8..fce99065 100644 --- a/doc/部署说明/部署过程描述.md +++ b/doc/部署说明/部署过程描述.md @@ -89,7 +89,7 @@ Nginx 是源码编译安装的,安装在 `/usr/local/nginx/`,可执行文件 mysqldump -h 10.134.89.36 -P 15144 -u zfjd -p'szsf@zfjd' --default-character-set=utf8mb4 --single-transaction --triggers --events zfjd_ef20_1 sszt_jbxx110497_new > /efcode20/dbv2/zfjd_ef20_1_2026_06_20_utf8_sszt_jbxx110497_new.sql ``` * 压缩备份文件 - zip -e -P 'xj.sdeqwe.12345' /efcode20/dbv2/zfjd_ef20_1.zip /efcode20/dbv2/zfjd_ef20_1_2026_06_20_utf8.sql + zip -e -P 'xj.sdeweqwew222qwe.12345' /efcode20/dbv2/zfjd_ef20_1.zip /efcode20/dbv2/zfjd_ef20_1_2026_06_20_utf8.sql * sql客户端 * mysql -h 10.134.89.36 -P 15144 -u zfjd -p'szsf@zfjd' ### DATAX diff --git a/script/sql/zfjd-refactoring-v1/099-初始化测试账号密码.sql b/script/sql/zfjd-refactoring-v1/099-初始化测试账号密码.sql index 04b70f3a..b7e2e21c 100644 --- a/script/sql/zfjd-refactoring-v1/099-初始化测试账号密码.sql +++ b/script/sql/zfjd-refactoring-v1/099-初始化测试账号密码.sql @@ -7,6 +7,10 @@ UPDATE enterprise_user SET tenant_id = '000000', dept_id = '405', user_name = ' UPDATE enterprise_user SET tenant_id = '000000', dept_id = '405', user_name = '周军', login_name = 'XP073215', nick_name = '', user_type = '00', email = '', phonenumber = '15012671807', sex = '0', avatar = '', password = '30522017a2b452a5fb3ac1b41b3400c6', status = '0', del_flag = '0', login_ip = '10.76.108.3', login_date = '2025-07-08 10:19:58', salt = 'c50b0b', create_dept = null, create_by = 0, create_time = '2025-06-19 12:09:02', update_by = 0, update_time = '2025-07-08 10:10:37', remark = null WHERE user_id = 17608601734; UPDATE enterprise_user SET tenant_id = '000000', dept_id = '405', user_name = '测试用户', login_name = 'test859410', nick_name = '测试用户', user_type = 'app_user', email = '', phonenumber = '13800138000', sex = '0', avatar = null, password = 'e65c88662cd7f789d20eb43e0fe5a4db', status = '0', del_flag = '0', login_ip = '', login_date = '2026-06-09 17:11:59', salt = '584564', create_dept = '0', create_by = -1, create_time = '2026-06-09 17:11:59', update_by = -1, update_time = '2026-06-09 17:11:59', remark = '深i企同步用户' WHERE user_id = 2064274295779979265; UPDATE enterprise_user SET tenant_id = '000000', dept_id = '405', user_name = '测试用户', login_name = 'test093590', nick_name = '测试用户', user_type = 'app_user', email = '', phonenumber = '13800138000', sex = '0', avatar = null, password = '600720af91e09f88ca73210ed1b39ad5', status = '0', del_flag = '0', login_ip = '', login_date = '2026-06-09 17:15:00', salt = '584564', create_dept = 'a8b21ab028964281bfa478b59ca4f5e8', create_by = 2064274295779979265, create_time = '2026-06-09 17:15:00', update_by = 2064274295779979265, update_time = '2026-06-09 17:15:00', remark = '深i企同步用户' WHERE user_id = 2064275054386966530; +UPDATE enterprise_user SET tenant_id = '000000', dept_id = '405', user_name = '石磊', login_name = 'free_kylin', nick_name = '', user_type = '00', email = '', phonenumber = '18520089969', sex = '0', avatar = '', password = '0b4b9db2b73916f0c59e0d8e3d82d16f', status = '0', del_flag = '0', login_ip = '10.76.108.3', login_date = '2026-06-15 11:44:30', salt = '06411c', create_dept = null, create_by = 0, create_time = '2025-12-08 15:58:36', update_by = 0, update_time = '2026-06-15 11:44:30', remark = null WHERE user_id = 17608629742; + +INSERT INTO enterprise_user_ref (ref_id, user_id, user_name, enterprise_id, enterprise_name, enterprise_number, create_dept, create_by, create_time, update_by, update_time, remark) +VALUES ('a9903a03-6caf-11f1-a343-fa163e541c39', 17608629742, '石磊', 'a8b21ab028964281bfa478b59ca4f5e8', '新粤云(深圳)信息技术有限公司', '91440300769156389U', null, 0, '2026-06-20 21:55:41', 0, '2026-06-20 21:55:41', null); UPDATE sys_user SET tenant_id = '000000', dept_id = '20210922213334342-BAF2-EBD8EF897', user_name = '刘倩琳', login_name = 'liuqianlin', nick_name = '', user_type = '00', email = '1950712844@qq.com', phonenumber = '67tS8WoU19KGYv2t5wSudg==', sex = '0', avatar = '', password = '9e68af2e7fe0e0d37cfb88ff80855b4b', status = '0', del_flag = '0', login_ip = '127.0.0.1', login_date = '2026-06-09 22:08:12', salt = 'ea356d', create_dept = null, create_by = 0, create_time = '2024-05-31 14:09:10', update_by = -1, update_time = '2026-06-09 22:08:12', remark = '', type = '0', law_certificate_num = '19020011041', fullname = '刘倩琳', taskId = '97055dfb-c914-4dcc-8ee8-d2c0c98fe2c0', systemId = '20240527155602377-9C71-8284C0FB6', effectOn = 'UPDATE', isDeleted = 'false', isDisabled = 'false', createAt = '1717065211909', updateAt = '1754646883614', mobileNumber = '67tS8WoU19KGYv2t5wSudg==', certificateNumber = '31nylKvncOOOz4z0RNiEcQDv5OcXNQowwTb9vUh8RCo=', srzUserid = null, isMappingPerson = '0', units = '[{"unitleader":"","positionname":"深圳市司法局行政执法协调监督处三级主任科员","zwbscode":"","jbcc":"三级主任科员","priority":"","zwjc":"","gzgxcode":"00","gzgx":"主职","jbcccode":"160090","zwbs":"","positioncode":"","zgdw":"Y","unitid":"20210922213334342-BAF2-EBD8EF897","position":"","zwjccode":"","isMappingPerson":"0","order":"15231750"}]', organizationId = '20210922213334342-BAF2-EBD8EF897', certificateTypeId = '居民身份证', certificateTypeIdCode = '1', strUserId = '20210811170431003-2EFB-6B2217C70', user_source = 0, rylbCode = '0101', rylb = '公务员(含试用期)' WHERE user_id = 7897; UPDATE sys_user SET tenant_id = '000000', dept_id = '20210922214042443-C1E6-E2489F594', user_name = '白宁', login_name = 'baining', nick_name = '', user_type = '00', email = '', phonenumber = '4p9mipP7ZxDshFDHaQOfYg==', sex = '0', avatar = '', password = '686b6725b894ac60fed4dd2c3eb64e26', status = '0', del_flag = '0', login_ip = '127.0.0.1', login_date = '2026-06-09 22:03:38', salt = 'bd202c', create_dept = null, create_by = 0, create_time = '2024-05-31 14:07:57', update_by = 17608416912, update_time = '2026-06-09 22:03:38', remark = null, type = null, law_certificate_num = '19020811001', fullname = '白宁', taskId = '00003e5e-41b0-43b0-9d06-4982e409d9f8', systemId = '20240527155602377-9C71-8284C0FB6', effectOn = 'CREATE', isDeleted = 'false', isDisabled = 'false', createAt = '1717065071662', updateAt = '1754646860325', mobileNumber = '4p9mipP7ZxDshFDHaQOfYg==', certificateNumber = 'c/+TMp+6HZ8AdcjUgZ8Q5wU/r/6xYA5YZvQlLfL/DAI=', srzUserid = null, isMappingPerson = '0', units = '[{"unitleader":"","positionname":"深圳市坪山区司法局党组书记、局长","zwbscode":"","jbcc":"一级调研员","priority":"","zwjc":"局长","gzgxcode":"00","gzgx":"主职","jbcccode":"160030","zwbs":"","positioncode":"010060","zgdw":"Y","unitid":"20210922214042443-C1E6-E2489F594","position":"正处级","zwjccode":"216A","isMappingPerson":"0","order":"166956000"}]', organizationId = '20210922214042443-C1E6-E2489F594', certificateTypeId = '居民身份证', certificateTypeIdCode = '1', strUserId = '20210922224417280-B03D-8791A1ED7', user_source = 0, rylbCode = '0101', rylb = '公务员(含试用期)' WHERE user_id = 17608416858; diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-bad-dis.png b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-bad-dis.png new file mode 100644 index 00000000..47f5fdc5 Binary files /dev/null and b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-bad-dis.png differ diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-bad.png b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-bad.png new file mode 100644 index 00000000..2d3bf620 Binary files /dev/null and b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-bad.png differ diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-good-dis.png b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-good-dis.png new file mode 100644 index 00000000..4ee5bb6c Binary files /dev/null and b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-good-dis.png differ diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-good.png b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-good.png new file mode 100644 index 00000000..732e9dcf Binary files /dev/null and b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-good.png differ diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-verygood-dis.png b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-verygood-dis.png new file mode 100644 index 00000000..5f100225 Binary files /dev/null and b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-verygood-dis.png differ diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-verygood.png b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-verygood.png new file mode 100644 index 00000000..2ede1bb6 Binary files /dev/null and b/zdxt-web-client/zdxt-admin-plus-ui/src/assets/images/eval-verygood.png differ diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/views/nos/components/MobilePreview.vue b/zdxt-web-client/zdxt-admin-plus-ui/src/views/nos/components/MobilePreview.vue new file mode 100644 index 00000000..dc530186 --- /dev/null +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/views/nos/components/MobilePreview.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/assets/images/nos/no-data.png b/zdxt-web-client/zdxt-efcode-enforcement-app/src/assets/images/nos/no-data.png new file mode 100644 index 00000000..87bf8724 Binary files /dev/null and b/zdxt-web-client/zdxt-efcode-enforcement-app/src/assets/images/nos/no-data.png differ diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/nos/no-data.png b/zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/nos/no-data.png new file mode 100644 index 00000000..87bf8724 Binary files /dev/null and b/zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/nos/no-data.png differ diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/store/messageState.js b/zdxt-web-client/zdxt-efcode-enterprise-app/src/store/messageState.js new file mode 100644 index 00000000..2883364c --- /dev/null +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/store/messageState.js @@ -0,0 +1,22 @@ +import { ref, computed } from 'vue'; + +/** + * 消息未读数(跨 tabbar 页面共享) + * - 模块级单例,四个 tabbar 页面(首页/查询/消息/我的)共享同一份 + * - 消息中心页面负责写入;其他页面仅读取用于 footer-bar 角标展示 + */ +export const messageUnread = ref(0); + +/** 格式化为角标展示值(0 显示空) */ +export const messageUnreadBadge = computed(() => (messageUnread.value > 0 ? messageUnread.value : '')); + +/** 直接设置未读总数 */ +export const setMessageUnread = (count) => { + messageUnread.value = Number(count) || 0; +}; + +// 占位 default 导出:src/store 目录会被 globalStore.js 通过 import.meta.glob +// 以 { import: 'default' } 的方式扫描,缺少 default 会触发 +// "does not provide an export named 'default'" 错误。 +// 此处导出一个不带 $id 的对象,globalStore 会自动跳过注册,不影响 Pinia。 +export default {}; diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/util/fileUrl.js b/zdxt-web-client/zdxt-efcode-enterprise-app/src/util/fileUrl.js new file mode 100644 index 00000000..9a9714f9 --- /dev/null +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/util/fileUrl.js @@ -0,0 +1,42 @@ +import { baseUrl } from "@/config/env" + +const ABSOLUTE_URL_RE = /^https?:\/\//i + +const isAbsoluteUrl = (path) => + ABSOLUTE_URL_RE.test(path) || path.startsWith("blob:") || path.startsWith("data:") + +const getApiBase = () => (baseUrl || "").replace(/\/+$/, "") + +/** + * ȥ�� VITE_BASE_URL ����ǰ׺��֧���ظ�ǰ׺�����õ�������·������ /profile/2026/... + */ +export const toRelativeFilePath = (path) => { + if (!path) return "" + if (isAbsoluteUrl(path)) return path + + const prefix = getApiBase() + let p = path.startsWith("/") ? path : `/${path}` + + if (prefix) { + const normalizedPrefix = prefix.startsWith("/") ? prefix : `/${prefix}` + while (p === normalizedPrefix || p.startsWith(`${normalizedPrefix}/`)) { + p = p.slice(normalizedPrefix.length) || "/" + if (!p.startsWith("/")) p = `/${p}` + } + } + + return p +} + +/** + * ƴ��Ϊǰ�˿ɷ���·�����ݵȣ����ظ����ã����� uploader ���ԣ� + */ +export const toFullFileUrl = (path) => { + if (!path) return "" + if (isAbsoluteUrl(path)) return path + + const prefix = getApiBase() + const relative = toRelativeFilePath(path) + if (!prefix) return relative + return prefix + relative +} diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/loginByPassword.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/loginByPassword.vue index bb3e5827..b5ffaa9a 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/loginByPassword.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/loginByPassword.vue @@ -52,14 +52,14 @@ const showTestPicker = ref(false); const testEnterprises = [ + { account: 'free_kylin', name: '新粤云(深圳)信息技术有限公司', password: 'szsf@zfjd' }, { account: 'weil45', name: '深圳农牧美益肉业有限公司', password: 'szsf@zfjd' }, { account: 'DGD440881199506180622', name: '深圳市深水龙岗污水处理有限公司', password: 'szsf@zfjd' }, { account: 'smiledzb1982', name: '深圳康泰生物制品股份有限公司', password: 'szsf@zfjd' }, { account: 'A7271888', name: '深圳市里程食品有限公司', password: 'szsf@zfjd' }, { account: 'qintongzhen138', name: '欧姆龙电子部件(深圳)有限公司', password: 'szsf@zfjd' }, { account: 'XP073215', name: '深圳市强达电路股份有限公司', password: 'szsf@zfjd' }, - { account: '33ef1970fd449676fa4bc197', name: '吉田拉链(深圳)有限公司公明工厂', password: 'szsf@zfjd' }, - { account: 'test093590', name: '新粤云(深圳)信息技术有限公司', password: 'szsf@zfjd' } + { account: '33ef1970fd449676fa4bc197', name: '吉田拉链(深圳)有限公司公明工厂', password: 'szsf@zfjd' } ]; const selectTestEnterprise = (item) => { diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/index.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/index.vue index 2795f98b..1bbbf5b4 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/index.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/index.vue @@ -15,14 +15,13 @@ - +