diff --git a/package.json b/package.json
index b63bc39..d513735 100644
--- a/package.json
+++ b/package.json
@@ -62,12 +62,15 @@
"eslint-plugin-auto-import": "^0.1.1",
"eslint-plugin-vue": "^10.1.0",
"globals": "^16.1.0",
+ "rollup-plugin-visualizer": "^6.0.5",
"sass": "1.69.5",
+ "terser": "^5.46.0",
"typescript": "^5.9.3",
"unplugin-auto-import": "0.17.1",
"unplugin-vue-setup-extend-plus": "1.0.0",
"vite": "5.0.4",
"vite-plugin-compression": "0.5.1",
+ "vite-plugin-imagemin": "^0.6.1",
"vite-plugin-svg-icons": "2.0.1"
}
}
diff --git a/src/api/liswork/work/LisWork.ts b/src/api/liswork/work/LisWork.ts
index cad508c..b38b811 100644
--- a/src/api/liswork/work/LisWork.ts
+++ b/src/api/liswork/work/LisWork.ts
@@ -439,5 +439,37 @@ export function clearPrintflag(query?: Object) {
params: query
})
}
+// 自动签收条码
+export function autosavebarcode(query?: Object) {
+ return request({
+ url: '/liswork/autosavebarcode',
+ method: 'get',
+ params: query
+ })
+}
+// 条码签收
+export function querybarcode(query?: Object) {
+ return request({
+ url: '/liswork/querybarcode',
+ method: 'get',
+ params: query
+ })
+}
+// 拒收条码
+export function refusedbarcode(query?: Object) {
+ return request({
+ url: '/refused/getData',
+ method: 'get',
+ params: query
+ })
+}
+// 保存拒收条码
+export function refusedSaveData(query?: Object) {
+ return request({
+ url: '/refused/saveData',
+ method: 'post',
+ data: query
+ })
+}
diff --git a/src/views/checkCode/index.vue b/src/views/checkCode/index.vue
index 5569e1e..f9bbf53 100644
--- a/src/views/checkCode/index.vue
+++ b/src/views/checkCode/index.vue
@@ -62,9 +62,9 @@
取消登记
-
+
报告查询
@@ -137,18 +137,16 @@
-
-
-
-
-
-
- 读取
-
-
-
-
+
+
+
+
+
+ 读取
+
+
+
{{ formatDict(row.zt, 'ST') }}
@@ -518,8 +516,8 @@ const sqdQuery = () => {
userid: queryParams.userid,
status: 12,
yljg: queryParams.yljg
- }).then((res: any) => {
- if (res.code == 0) {
+ }).then((res2: any) => {
+ if (res2.code == 0) {
cyTableData.value = cyTableData.value.concat(res.data)
}
})
@@ -535,6 +533,7 @@ const sqdQuery = () => {
const closeDialog = () => {
cyTableData.value = []
sqhText.value = ''
+ handleQuery()
}
@@ -611,6 +610,7 @@ const sendSampleHandle = () => {
pdfUrl.value = `data:application/pdf;base64,${url}`
previewShow.value = true
}
+ handleQuery()
})
}
@@ -705,10 +705,8 @@ const printHandle = () => {
}
addObj(data).then((res: any) => {
- if (res.code == 0) {
- getList()
- }
}).finally(() => {
+ getList()
btnLoading.value = false;
})
}
diff --git a/src/views/liswork/micro/index.vue b/src/views/liswork/micro/index.vue
index 8807e46..c8eb402 100644
--- a/src/views/liswork/micro/index.vue
+++ b/src/views/liswork/micro/index.vue
@@ -662,14 +662,10 @@ const changeStatus = (updatedPat: any, flag: boolean) => {
labPat.value = response.data;
const index = labPatList.value.findIndex((item: any) => item.ybh == updatedPat.ybh);
if (index !== -1) {
- labPatList.value = labPatList.value.map((item, i) =>
- i === index ? { ...labPat.value } : item
- );
+ // 更新样本列表中的样本信息
+ labPatList.value = labPatList.value.map((item, i) => i === index ? { ...labPat.value } : item);
highlightRowIndex.value = index;
- nextTick(() => {
- labPatListRef.value.setCurrentRow(labPat.value);
- });
// 条码号输入后操作
if (flag) {
setTimeout(() => { handleNext() }, 10)
@@ -823,7 +819,7 @@ onMounted(async () => {
GMC: toRaw(dictRefs.GMC.value) || [],
};
// 初始化Socket
- initSocket()
+ // initSocket()
});
onActivated(() => {
diff --git a/src/views/liswork/receive/index.vue b/src/views/liswork/receive/index.vue
new file mode 100644
index 0000000..826a0ca
--- /dev/null
+++ b/src/views/liswork/receive/index.vue
@@ -0,0 +1,188 @@
+/**
+* @file index.vue
+* @author: w
+* @since: 2026-01-28
+*/
+
+
+
+
+
+
+
+ 读取
+
+
+ 保存
+
+
+ 设置
+
+
+ 打印
+
+
+
+
+
+
+ 急
+ 无
+
+
+ {{ formatDict(row.zt.trim(), 'ST') }}
+
+
+ {{ formatDict(row.ksdh, 'DP') }}
+
+
+ {{ formatDict(row.brxb, 'SX') }}
+
+
+ {{ formatYs(row.sqys) }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.configName }}:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/liswork/visaRefusal/index.vue b/src/views/liswork/visaRefusal/index.vue
new file mode 100644
index 0000000..50db12b
--- /dev/null
+++ b/src/views/liswork/visaRefusal/index.vue
@@ -0,0 +1,165 @@
+/**
+* @file index.vue
+* @author: w
+* @since: 2026-01-28
+*/
+
+
+
+
+
+
+
+ 读取
+
+
+ 保存
+
+
+ 打印
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 急
+ 无
+
+
+ {{ formatDict(row.zt.trim(), 'ST') }}
+
+
+ {{ formatDict(row.ksdh, 'DP') }}
+
+
+ {{ formatDict(row.brxb, 'SX') }}
+
+
+ {{ formatYs(row.sqys) }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/liswork/work/index.vue b/src/views/liswork/work/index.vue
index 9af1708..9ec77b1 100644
--- a/src/views/liswork/work/index.vue
+++ b/src/views/liswork/work/index.vue
@@ -543,16 +543,17 @@ const changeStatus = (updatedPat: any, flag: boolean) => {
queryLabPat(queryParams.value).then((response: any) => {
if (response.code == 0) {
labPat.value = response.data;
+ lastRow.value = response.data
const index = labPatList.value.findIndex((item: any) => item.ybh == updatedPat.ybh);
if (index !== -1) {
- labPatList.value = labPatList.value.map((item, i) =>
- i === index ? { ...labPat.value } : item
- );
+ // 更新列表中对应的样本信息
+ labPatList.value = labPatList.value.map((item, i) => i === index ? { ...labPat.value } : item);
highlightRowIndex.value = index;
- nextTick(() => {
- labPatListRef.value.setCurrentRow(labPat.value);
- });
+ // nextTick(() => {
+ // labPatListRef.value.setCurrentRow(labPat.value);
+ // });
+
// 条码号输入后操作
if (flag) {
setTimeout(() => { handleNext() }, 10)
@@ -708,7 +709,7 @@ onMounted(async () => {
ST: toRaw(dictRefs.ST.value) || [],
};
// 初始化Socket
- initSocket()
+ // initSocket()
});
onActivated(() => {
diff --git a/vite.config.js b/vite.config.js
index 03728c3..e29c79f 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -4,7 +4,10 @@ import {
} from 'vite'
import path from 'path'
import createVitePlugins from './vite/plugins'
-import.meta
+import viteImagemin from 'vite-plugin-imagemin'
+import {
+ visualizer
+} from 'rollup-plugin-visualizer'
// https://vitejs.dev/config/
export default defineConfig(({
@@ -20,7 +23,28 @@ export default defineConfig(({
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
base: VITE_APP_ENV === 'production' ? '/' : '/',
- plugins: createVitePlugins(env, command === 'build'),
+ plugins: [
+ createVitePlugins(env, command === 'build'),
+ // 图片压缩
+ VITE_APP_ENV === 'production' && viteImagemin({
+ gifsicle: {
+ optimizationLevel: 3
+ },
+ optipng: {
+ optimizationLevel: 7
+ },
+ mozjpeg: {
+ quality: 85
+ },
+ svgo: {
+ plugins: [{
+ removeViewBox: false
+ }, {
+ cleanupIDs: false
+ }]
+ }
+ })
+ ].filter(Boolean),
resolve: {
// https://cn.vitejs.dev/config/#resolve-alias
alias: {
@@ -69,21 +93,54 @@ export default defineConfig(({
}]
}
},
- // 新增build配置,用于生产环境移除console
build: {
- // 只有生产环境才移除console
- minify: VITE_APP_ENV === 'production' ? 'esbuild' : 'terser',
+ minify: VITE_APP_ENV === 'production' ? 'terser' : 'esbuild',
+ terserOptions: VITE_APP_ENV === 'production' ? {
+ compress: {
+ drop_console: true,
+ drop_debugger: true,
+ pure_funcs: ['console.log', 'console.warn'],
+ collapse_vars: true,
+ reduce_vars: true
+ },
+ format: {
+ comments: false
+ }
+ } : {},
esbuild: {
- // 生产环境下移除console和debugger
drop: VITE_APP_ENV === 'production' ? ['console', 'debugger'] : []
},
target: 'es2015',
- cssTarget: ['chrome64', 'firefox67', 'safari11.1', 'edge79'] // CSS兼容目标: ['chrome64', 'firefox67', 'safari11.1', 'edge79'] // CSS兼容目标
+ cssTarget: ['chrome64', 'firefox67', 'safari11.1', 'edge79'],
+ assetsInlineLimit: 4096,
+ chunkSizeWarningLimit: 500,
+ rollupOptions: {
+ output: {
+ manualChunks(id) {
+ if (id.includes('node_modules')) return 'vendor';
+ if (id.includes('src/components/common')) return 'common-components';
+ if (id.includes('src/utils')) return 'utils';
+ },
+ preload: false,
+ prefetch: false,
+ chunkFileNames: 'js/[name]-[hash].js',
+ entryFileNames: 'js/[name]-[hash].js',
+ assetFileNames: '[ext]/[name]-[hash].[ext]'
+ },
+ plugins: [
+ VITE_APP_ENV === 'production' && visualizer({
+ filename: './node_modules/.cache/visualizer/stats.html',
+ open: true,
+ gzipSize: true,
+ brotliSize: true
+ })
+ ].filter(Boolean)
+ }
},
optimizeDeps: {
- // include: ['jquery', 'select2', 'vue3-select2-component'],
- // exclude: ['sortablejs'] // 跳过 Vite 对 SortableJS 的预构建
- },
+ include: ['vue', 'axios'], // 仅预构建核心依赖
+ exclude: ['sortablejs', 'jquery']
+ }
}
})
\ No newline at end of file