feat:待审数据
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -5,11 +5,9 @@ const taskPrefix = '/qms/bus/qmsBusAssayTask'
|
|||||||
// 获取任务
|
// 获取任务
|
||||||
const getAssayTaskList = params => {
|
const getAssayTaskList = params => {
|
||||||
return request({
|
return request({
|
||||||
url: '/qms/business-assay-task/page',
|
url: '/qms/business-assay-task/list',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params: {
|
||||||
pageSize: 999,
|
|
||||||
pageNo: 1,
|
|
||||||
...params
|
...params
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -107,16 +105,11 @@ const execSendSample = data => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取任务明细字段
|
// 获取任务明细字段
|
||||||
const queryFieldsByTaskDetail = params => {
|
const getSampleAnalysisDataByTaskDataId = params => {
|
||||||
return request({
|
return request({
|
||||||
url: '/qms/config/qmsConAssayTaskDetailField/queryFieldsByTaskDetail',
|
url: '/qms/bus/sample/analysis/getSampleAnalysisDataByTaskDataId',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params
|
||||||
...params
|
|
||||||
},
|
|
||||||
custom: {
|
|
||||||
isTransformResponse: true
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,9 +118,7 @@ const queryHeadFieldsByTaskNo = params => {
|
|||||||
return request({
|
return request({
|
||||||
url: '/qms/config/qmsConAssayTaskHead/queryHeadFieldsByTaskNo',
|
url: '/qms/config/qmsConAssayTaskHead/queryHeadFieldsByTaskNo',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params
|
||||||
...params
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,9 +127,7 @@ const queryHeadValueByTaskNo = params => {
|
|||||||
return request({
|
return request({
|
||||||
url: '/qms/bus/qmsBusAssayTaskHead/queryHeadValueByTaskNo',
|
url: '/qms/bus/qmsBusAssayTaskHead/queryHeadValueByTaskNo',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params,
|
||||||
...params
|
|
||||||
},
|
|
||||||
custom: {
|
custom: {
|
||||||
showError: false,
|
showError: false,
|
||||||
isTransformResponse: true
|
isTransformResponse: true
|
||||||
@@ -280,7 +269,7 @@ export default {
|
|||||||
getDynamicBaseFormSchema,
|
getDynamicBaseFormSchema,
|
||||||
getAssayTaskDetailListByTaskNo,
|
getAssayTaskDetailListByTaskNo,
|
||||||
getAssayTaskDetailById,
|
getAssayTaskDetailById,
|
||||||
queryFieldsByTaskDetail,
|
getSampleAnalysisDataByTaskDataId,
|
||||||
queryHeadFieldsByTaskNo,
|
queryHeadFieldsByTaskNo,
|
||||||
queryHeadValueByTaskNo,
|
queryHeadValueByTaskNo,
|
||||||
saveHeadValue,
|
saveHeadValue,
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export function calcAnalysisValue(group) {
|
|||||||
if (formulaVal.startsWith('Get')) {
|
if (formulaVal.startsWith('Get')) {
|
||||||
//计算公式为Get开头的,都是执行方法
|
//计算公式为Get开头的,都是执行方法
|
||||||
v = eval(formulaVal)
|
v = eval(formulaVal)
|
||||||
|
} else if (formulaVal.startsWith('From')) {
|
||||||
} else {
|
} else {
|
||||||
v = math.evaluate(formulaVal).toString()
|
v = math.evaluate(formulaVal).toString()
|
||||||
v = isFinite(v) ? v.toString() : ''
|
v = isFinite(v) ? v.toString() : ''
|
||||||
@@ -85,6 +86,7 @@ export function calcRowAnalysisValue(row, columnObj, dynamicsColumns) {
|
|||||||
if (formulaVal.startsWith('Get')) {
|
if (formulaVal.startsWith('Get')) {
|
||||||
formulaVal = formulaVal.replace(')', ",'" + row.conBaseSampleId + "')")
|
formulaVal = formulaVal.replace(')', ",'" + row.conBaseSampleId + "')")
|
||||||
v = eval(formulaVal)
|
v = eval(formulaVal)
|
||||||
|
} else if (formulaVal.startsWith('From')) {
|
||||||
} else {
|
} else {
|
||||||
v = math.evaluate(formulaVal).toString()
|
v = math.evaluate(formulaVal).toString()
|
||||||
v = isFinite(v) ? v : 0
|
v = isFinite(v) ? v : 0
|
||||||
@@ -326,3 +328,27 @@ function accAdd(arg1, arg2) {
|
|||||||
}
|
}
|
||||||
return (arg1 + arg2) / m
|
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())
|
||||||
|
}
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ http.interceptors.response.use(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { code, data, msg } = response.data
|
const { code, data, msg } = response.data
|
||||||
|
|
||||||
// 统一处理【公司/部门二次选择】:参考 PC 端逻辑,自动补全或提示选择后重试
|
// 统一处理【公司/部门二次选择】:参考 PC 端逻辑,自动补全或提示选择后重试
|
||||||
if (code === 400 && Array.isArray(data)) {
|
if (code === 400 && Array.isArray(data)) {
|
||||||
debugger
|
debugger
|
||||||
@@ -209,7 +210,8 @@ http.interceptors.response.use(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((code === 0 || code === 200) && response.config.custom.showSuccess) {
|
if (code === 0 || code === 200) {
|
||||||
|
if (response.config.custom.showSuccess) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: msg || response.config.custom.successMsg,
|
title: msg || response.config.custom.successMsg,
|
||||||
@@ -217,9 +219,10 @@ http.interceptors.response.use(
|
|||||||
})
|
})
|
||||||
}, 100)
|
}, 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
$store('user').updateLastRequestTime()
|
$store('user').updateLastRequestTime()
|
||||||
return Promise.resolve(data)
|
return Promise.resolve(data)
|
||||||
|
}
|
||||||
|
return Promise.reject(response.data)
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
console.log('error', error)
|
console.log('error', error)
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
export default {
|
export default {
|
||||||
isNullOrEmpty: function (value) {
|
isEmpty: function (value) {
|
||||||
//是否为空
|
if (value === undefined || value === null) return true
|
||||||
return value === null || value === '' || value === undefined ? true : false
|
if (typeof value === 'string' && value.trim() === '') return true
|
||||||
|
return false
|
||||||
},
|
},
|
||||||
trim: function (value) {
|
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() {
|
isRsk() {
|
||||||
let sysInfo = uni.getSystemInfoSync()
|
let sysInfo = uni.getSystemInfoSync()
|
||||||
let brand = sysInfo.brand.toLowerCase()
|
let brand = sysInfo.brand.toLowerCase()
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ const isAllowAgainPrint = ref(false)
|
|||||||
const menuItemList = ref([
|
const menuItemList = ref([
|
||||||
// { url: '/pages/analysis/sample/sample-receive', otherConf: { icon: 'arrow-downward' }, name: '收样' },
|
// { 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-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-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: '系统设置' }
|
{ url: '/pages/analysis/setting/setting', otherConf: { icon: 'setting-fill' }, name: '系统设置' }
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { getBaseUrl } from '@/defaultBaseUrl'
|
|||||||
import nx from '@/nx'
|
import nx from '@/nx'
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
const taskId = ref('')
|
const businessAssayTaskId = ref('')
|
||||||
const localFilePath = ref('')
|
const localFilePath = ref('')
|
||||||
const reportKey = ref('')
|
const reportKey = ref('')
|
||||||
const hideResultFlag = ref('')
|
const hideResultFlag = ref('')
|
||||||
@@ -87,10 +87,10 @@ const loadPdfOnAndroid = async pdfUrl => {
|
|||||||
const getPdf = async () => {
|
const getPdf = async () => {
|
||||||
const printBaseUrl = getBaseUrl()
|
const printBaseUrl = getBaseUrl()
|
||||||
const baseUrl = 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}`
|
dataUrl += `&hideResultFlag=${hideResultFlag.value}`
|
||||||
const token = nx.$store('user').token
|
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 += `?token=${token}`
|
||||||
url += `&type=PDF`
|
url += `&type=PDF`
|
||||||
url += `&reportKey=${reportKey.value}`
|
url += `&reportKey=${reportKey.value}`
|
||||||
@@ -123,8 +123,8 @@ const deleteTmpFile = () => {
|
|||||||
|
|
||||||
// 生命周期
|
// 生命周期
|
||||||
onLoad(param => {
|
onLoad(param => {
|
||||||
if (param.taskId) {
|
if (param.businessAssayTaskId) {
|
||||||
taskId.value = param.taskId
|
businessAssayTaskId.value = param.businessAssayTaskId
|
||||||
reportKey.value = param.reportKey
|
reportKey.value = param.reportKey
|
||||||
hideResultFlag.value = param.hideResultFlag
|
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
Reference in New Issue
Block a user