From 0cdc3bdee20f9b822f6fa58d70a9ebcdd5982d34 Mon Sep 17 00:00:00 2001 From: wuyy Date: Mon, 9 Mar 2026 15:04:59 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/api/login.ts | 12 + src/assets/images/logo_new.png | Bin 0 -> 12411 bytes src/store/index.ts | 2 + src/store/modules/commonStore.ts | 37 ++ src/utils/useFingerprint.ts | 45 ++ .../liswork/Issueorder/components/info.vue | 1 - .../components/multiConditionSearch.vue | 117 ---- src/views/liswork/Issueorder/index.vue | 52 +- src/views/login.vue | 519 ++++++++++++------ vite.config.ts | 2 +- 11 files changed, 495 insertions(+), 294 deletions(-) create mode 100644 src/assets/images/logo_new.png create mode 100644 src/store/modules/commonStore.ts create mode 100644 src/utils/useFingerprint.ts delete mode 100644 src/views/liswork/Issueorder/components/multiConditionSearch.vue diff --git a/package.json b/package.json index c506467..802b5b4 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "dependencies": { "@element-plus/icons-vue": "2.3.2", + "@fingerprintjs/fingerprintjs": "^5.1.0", "@vueup/vue-quill": "1.2.0", "@vueuse/core": "14.1.0", "axios": "1.13.2", @@ -32,6 +33,7 @@ "mitt": "^3.0.1", "nprogress": "0.2.0", "pinia": "3.0.4", + "pinia-plugin-persistedstate": "^4.7.1", "pinyin-pro": "^3.28.0", "sortablejs": "^1.15.7", "splitpanes": "4.0.4", diff --git a/src/api/login.ts b/src/api/login.ts index a2e4149..b2244f8 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -32,6 +32,18 @@ export function register(data: SysRegister): Promise { }) } +export function getLocalconfig(data: object) { + return request({ + url: '/getLocalconfig', + headers: { + isToken: false + }, + method: 'get', + params: data, + timeout: 20000 + }) +} + // 获取用户详细信息 export function getInfo(): Promise { return request({ diff --git a/src/assets/images/logo_new.png b/src/assets/images/logo_new.png new file mode 100644 index 0000000000000000000000000000000000000000..74849a249cf3623f514a75a52f36040ce1f20853 GIT binary patch literal 12411 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

D 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 literal 0 HcmV?d00001 diff --git a/src/store/index.ts b/src/store/index.ts index 944c3c6..db1107e 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,3 +1,5 @@ +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' const store = createPinia() +store.use(piniaPluginPersistedstate) // 注册持久化插件 export default store diff --git a/src/store/modules/commonStore.ts b/src/store/modules/commonStore.ts new file mode 100644 index 0000000..76708b6 --- /dev/null +++ b/src/store/modules/commonStore.ts @@ -0,0 +1,37 @@ +//公共状态管理 +import { defineStore } from 'pinia' +// 定义配置对象接口 +interface DefaultConfig { + defaultinstr?: string //默认仪器 + lisgroupid?: string //默认分组id + [key: string]: any // 允许其他属性 +} +export const useCommonStore = defineStore('commonStore', { + state: () => ({ + lxsrs: [] as string[], // 存储项目模板名称 + fingerprint: '',// 存储指纹信息 + defaultConfig: {} as DefaultConfig, // 存储默认配置 + }), + actions: { + setLxsrList(list: any[]) { + this.lxsrs = list + }, + + setFingerprint(fingerprint: string) { + this.fingerprint = fingerprint + }, + + setDefaultConfig(config: DefaultConfig) { + this.defaultConfig = config + }, + }, + // 持久化配置 + persist: { + // 指定要持久化的状态字段 + pick: ['fingerprint', 'defaultConfig'], + // 可选配置:自定义存储键名(默认是store的id) + // key: 'common_store', + // 可选配置:指定存储位置(默认是localStorage 也可以用sessionStorage) + storage: localStorage, + } +}) \ No newline at end of file diff --git a/src/utils/useFingerprint.ts b/src/utils/useFingerprint.ts new file mode 100644 index 0000000..437770c --- /dev/null +++ b/src/utils/useFingerprint.ts @@ -0,0 +1,45 @@ + +import FingerprintJS from '@fingerprintjs/fingerprintjs'; + +export function useFingerprint() { + const fingerprint = ref(''); + const loading = ref(true); + const error = ref(null); + // 初始化FingerprintJS并获取指纹 + const getFingerprint = async () => { + try { + loading.value = true; + // 初始化代理 + const fp = await FingerprintJS.load({ + // 可选配置 + monitoring: false, + // 扩展结果数据 + //@ts-ignore + extendedResult: true + }); + + // 获取指纹信息 + const result = await fp.get(); + + // 指纹标识符 + fingerprint.value = result.visitorId; + + // 可以获取更多详细信息 + console.log('指纹详细信息:', result); + return result; + } catch (err) { + error.value = err; + console.error('获取指纹失败:', err); + return null; + } finally { + loading.value = false; + } + }; + + return { + fingerprint, + loading, + error, + getFingerprint + }; +} \ No newline at end of file diff --git a/src/views/liswork/Issueorder/components/info.vue b/src/views/liswork/Issueorder/components/info.vue index 9d0b966..ee364b1 100644 --- a/src/views/liswork/Issueorder/components/info.vue +++ b/src/views/liswork/Issueorder/components/info.vue @@ -109,7 +109,6 @@ const lastJgbz = ref(); watch(() => props.labPat, (newVal) => { lastValue.value = JSON.stringify(newVal); lastJgbz.value = newVal.zt; - console.log('newVal==>', newVal); }) diff --git a/src/views/liswork/Issueorder/components/multiConditionSearch.vue b/src/views/liswork/Issueorder/components/multiConditionSearch.vue deleted file mode 100644 index 46f108b..0000000 --- a/src/views/liswork/Issueorder/components/multiConditionSearch.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/views/liswork/Issueorder/index.vue b/src/views/liswork/Issueorder/index.vue index 58e7703..8ac701d 100644 --- a/src/views/liswork/Issueorder/index.vue +++ b/src/views/liswork/Issueorder/index.vue @@ -55,7 +55,31 @@

- + + + + + + + + + +
+ + 近3天 + 近7天 + 此日 + + + + + + +
+
+
{ }) } -const onSearch = (params) => { - queryPatList(params).then(res => { +const handleQuery = () => { + searchForm.value.begdate = dayjs(searchForm.value.begdate).format('YYYY-MM-DD') + ' 00:00:00' + searchForm.value.enddate = dayjs(searchForm.value.begdate).format('YYYY-MM-DD') + ' 23:59:59' + queryPatList(searchForm.value).then(res => { labPatList.value = res.data if (!res.data.length) { labpat.value = { @@ -189,10 +214,6 @@ const xmColumns = ref([ { field: 'yblx', title: '样本', align: 'center', resizable: true }, ]) -const setbilRef = useTemplateRef('setbilRef') -const BillingHandle = () => { - setbilRef.value.open() -} const processedTableData = ref([]) @@ -283,6 +304,7 @@ const formatDictzt = (value) => { } onMounted(() => { + searchForm.value.begdate = dayjs().format('YYYY-MM-DD') getXmList() getDictData('PT', 'SX', 'AU', 'BT', 'DP', 'SRD', 'ZJLX') }) @@ -312,7 +334,7 @@ onMounted(() => { .table-box { margin-top: 2px; - height: calc(100% - 30px); + height: calc(100% - 65px); } .el-form-item { @@ -352,4 +374,14 @@ onMounted(() => { color: #000; font-weight: 700; } + +.radio_box { + display: flex; + align-items: center; + margin: .125rem 0; + + .el-radio { + margin-right: .3125rem; + } +} \ No newline at end of file diff --git a/src/views/login.vue b/src/views/login.vue index f0275e2..e51c75b 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -1,219 +1,327 @@ - + +.login-logo img { + height: 40px; + width: auto; +} + +.login-split { + width: 1px; + height: 30px; + background-color: #ccc; + margin: 0 15px; +} + +.login-title h1 { + margin: 0; + font-size: 24px; + color: #1989fa; + font-weight: 500; +} + +/* Tab容器样式(修复冲突) */ +.login-tabs { + width: 100%; + height: 350px; + overflow: hidden; + border-radius: 8px; + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 1px 10px 10px; + background: transparent; + + :deep(.el-tabs__header) { + background: transparent; + margin: 0; + } + + :deep(.el-tabs__nav-prev), + :deep(.el-tabs__nav-next) { + display: none !important; // 隐藏Tab左右箭头 + } + + :deep(.el-tabs__nav-wrap) { + overflow: visible !important; + } +} + +.custom-select { + margin-top: 20px; + /* 可根据需求调整数值 */ +} + +/* Tab占位样式 */ +.tab-placeholder { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 40px 0; + color: #666; + height: calc(100% - 40px); // 适配Tab容器高度 + + .placeholder-icon { + font-size: 48px; + margin-bottom: 20px; + color: #ccc; + } + + .wechat-login-btn { + margin-top: 20px; + width: 200px; + } +} + +/* 隐藏必填项星号 */ +:deep(.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap .el-form-item__asterisk) { + display: none !important; +} + \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 01a0484..3d7a804 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -48,7 +48,7 @@ export default defineConfig(({ mode, command }) => { proxy: { // https://cn.vitejs.dev/config/#server-proxy '/dev-api': { - target: 'http://47.97.125.165:8905', + target: 'http://47.97.125.165:8904', changeOrigin: true, rewrite: (p) => p.replace(/^\/dev-api/, '') },