feat:待审数据

This commit is contained in:
houjunxiang
2025-11-11 20:51:08 +08:00
parent fb41fa9a03
commit 970a8b8eae
11 changed files with 416 additions and 651 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -5,11 +5,9 @@ const taskPrefix = '/qms/bus/qmsBusAssayTask'
// 获取任务
const getAssayTaskList = params => {
return request({
url: '/qms/business-assay-task/page',
url: '/qms/business-assay-task/list',
method: 'GET',
params: {
pageSize: 999,
pageNo: 1,
...params
}
})
@@ -107,16 +105,11 @@ const execSendSample = data => {
}
// 获取任务明细字段
const queryFieldsByTaskDetail = params => {
const getSampleAnalysisDataByTaskDataId = params => {
return request({
url: '/qms/config/qmsConAssayTaskDetailField/queryFieldsByTaskDetail',
url: '/qms/bus/sample/analysis/getSampleAnalysisDataByTaskDataId',
method: 'GET',
params: {
...params
},
custom: {
isTransformResponse: true
}
params
})
}
@@ -125,9 +118,7 @@ const queryHeadFieldsByTaskNo = params => {
return request({
url: '/qms/config/qmsConAssayTaskHead/queryHeadFieldsByTaskNo',
method: 'GET',
params: {
...params
}
params
})
}
@@ -136,9 +127,7 @@ const queryHeadValueByTaskNo = params => {
return request({
url: '/qms/bus/qmsBusAssayTaskHead/queryHeadValueByTaskNo',
method: 'GET',
params: {
...params
},
params,
custom: {
showError: false,
isTransformResponse: true
@@ -280,7 +269,7 @@ export default {
getDynamicBaseFormSchema,
getAssayTaskDetailListByTaskNo,
getAssayTaskDetailById,
queryFieldsByTaskDetail,
getSampleAnalysisDataByTaskDataId,
queryHeadFieldsByTaskNo,
queryHeadValueByTaskNo,
saveHeadValue,

View File

@@ -46,6 +46,7 @@ export function calcAnalysisValue(group) {
if (formulaVal.startsWith('Get')) {
//计算公式为Get开头的都是执行方法
v = eval(formulaVal)
} else if (formulaVal.startsWith('From')) {
} else {
v = math.evaluate(formulaVal).toString()
v = isFinite(v) ? v.toString() : ''
@@ -85,6 +86,7 @@ export function calcRowAnalysisValue(row, columnObj, dynamicsColumns) {
if (formulaVal.startsWith('Get')) {
formulaVal = formulaVal.replace(')', ",'" + row.conBaseSampleId + "')")
v = eval(formulaVal)
} else if (formulaVal.startsWith('From')) {
} else {
v = math.evaluate(formulaVal).toString()
v = isFinite(v) ? v : 0
@@ -326,3 +328,27 @@ function accAdd(arg1, arg2) {
}
return (arg1 + arg2) / m
}
// 通过配置项分组
export function groupByField(list, groupKey = 'groupDictionaryBusinessKey') {
const groupMap = new Map()
list.unshift({ groupDictionaryBusinessKey: 'all', groupDictionaryBusinessName: '全部' })
for (const item of list) {
const key = item[groupKey]
if (!key) continue // 跳过没有 group 的项(可选)
if (!groupMap.has(key)) {
groupMap.set(key, {
value: key,
label: item.groupDictionaryBusinessName, // 假设 title 在每个 item 中,且同组相同
fields: []
})
}
// 把当前项(或仅需要的部分)推入 fields
groupMap.get(key).fields.push(item)
}
// 转为数组
return Array.from(groupMap.values())
}

View File

@@ -149,6 +149,7 @@ http.interceptors.response.use(
}
const { code, data, msg } = response.data
// 统一处理【公司/部门二次选择】:参考 PC 端逻辑,自动补全或提示选择后重试
if (code === 400 && Array.isArray(data)) {
debugger
@@ -209,17 +210,19 @@ http.interceptors.response.use(
}
}
if ((code === 0 || code === 200) && response.config.custom.showSuccess) {
setTimeout(() => {
uni.showToast({
title: msg || response.config.custom.successMsg,
icon: 'none'
})
}, 100)
if (code === 0 || code === 200) {
if (response.config.custom.showSuccess) {
setTimeout(() => {
uni.showToast({
title: msg || response.config.custom.successMsg,
icon: 'none'
})
}, 100)
}
$store('user').updateLastRequestTime()
return Promise.resolve(data)
}
$store('user').updateLastRequestTime()
return Promise.resolve(data)
return Promise.reject(response.data)
},
error => {
console.log('error', error)

View File

@@ -1,7 +1,8 @@
export default {
isNullOrEmpty: function (value) {
//是否为空
return value === null || value === '' || value === undefined ? true : false
isEmpty: function (value) {
if (value === undefined || value === null) return true
if (typeof value === 'string' && value.trim() === '') return true
return false
},
trim: function (value) {
//去空格
@@ -311,6 +312,20 @@ export default {
}
})
},
showPromiseModal(title, content) {
return new Promise(resolve => {
uni.showModal({
title,
content,
cancelColor: '#0055A2',
confirmColor: '#0055A2',
success: res => {
resolve(res.confirm) // true 表示点击了确定false 表示取消
},
fail: () => resolve(false)
})
})
},
isRsk() {
let sysInfo = uni.getSystemInfoSync()
let brand = sysInfo.brand.toLowerCase()

View File

@@ -28,9 +28,9 @@ const isAllowAgainPrint = ref(false)
const menuItemList = ref([
// { url: '/pages/analysis/sample/sample-receive', otherConf: { icon: 'arrow-downward' }, name: '收样' },
{ url: '/pages/analysis/sample/sample-work-list', otherConf: { icon: 'edit-pen-fill' }, name: '样品分析' },
{ url: '/pages/analysis/sample/sample-report', otherConf: { icon: 'arrow-upward' }, name: '数据上报' },
// { url: '/pages/analysis/sample/sample-report', otherConf: { icon: 'arrow-upward' }, name: '数据上报' },
{ url: '/pages/analysis/sample/sample-report-search', otherConf: { icon: 'search' }, name: '待审数据' },
{ url: '/pages/analysis/sample/sample-print', otherConf: { icon: 'file-text-fill' }, name: '单据补打' },
// { url: '/pages/analysis/sample/sample-print', otherConf: { icon: 'file-text-fill' }, name: '单据补打' },
{ url: '/pages/analysis/setting/setting', otherConf: { icon: 'setting-fill' }, name: '系统设置' }
])

View File

@@ -15,7 +15,7 @@ import { getBaseUrl } from '@/defaultBaseUrl'
import nx from '@/nx'
// 响应式数据
const taskId = ref('')
const businessAssayTaskId = ref('')
const localFilePath = ref('')
const reportKey = ref('')
const hideResultFlag = ref('')
@@ -87,10 +87,10 @@ const loadPdfOnAndroid = async pdfUrl => {
const getPdf = async () => {
const printBaseUrl = getBaseUrl()
const baseUrl = getBaseUrl()
let dataUrl = `${baseUrl}/qms/bus/qmsBusAssayTask/getAssayTaskDataWithDetailData?taskId=${taskId.value}`
let dataUrl = `${baseUrl}/qms/bus/sample/analysis-audit/crossAuditByTaskId?businessAssayTaskId=${businessAssayTaskId.value}`
dataUrl += `&hideResultFlag=${hideResultFlag.value}`
const token = nx.$store('user').token
let url = `${printBaseUrl}/report/gridpp/report/previewDocs`
let url = `${printBaseUrl}/qms/config-report-template/preview`
url += `?token=${token}`
url += `&type=PDF`
url += `&reportKey=${reportKey.value}`
@@ -123,8 +123,8 @@ const deleteTmpFile = () => {
// 生命周期
onLoad(param => {
if (param.taskId) {
taskId.value = param.taskId
if (param.businessAssayTaskId) {
businessAssayTaskId.value = param.businessAssayTaskId
reportKey.value = param.reportKey
hideResultFlag.value = param.hideResultFlag
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More