feat:查询条件调整

This commit is contained in:
houjunxiang
2025-11-14 17:46:43 +08:00
parent 45ba9b4899
commit d3f6ad4bf6
8 changed files with 412 additions and 136 deletions

View File

@@ -3,7 +3,7 @@
<u-popup :show="showAuncelSelector" closeable @close="close" @open="open" mode="right">
<view class="p10">天平选择</view>
<scroll-view scroll-y="true" class="content">
<u-grid border :col="3" @click="doSelect">
<u-grid :col="3" @click="doSelect" style="gap: 20px">
<u-grid-item v-for="(auncel, index) in auncelList" :index="index" :key="index">
<view class="auncel-item">
<view class="auncel-name">
@@ -18,6 +18,7 @@
<view v-if="auncel.isConnected === 1" class="weight-unit">{{ auncel.weightUnit }}</view>
</view>
</view>
<view v-if="auncel.isConnected != 1" class="shade">天平断开</view>
</u-grid-item>
</u-grid>
</scroll-view>
@@ -164,7 +165,7 @@ const handleDeviceStatus = res => {
if (item.id === res.deviceId) {
item.isConnected = res.connected
if (res.connected == 0) {
item.weightData = '天平断开'
item.weightData = ''
item.weightUnit = ''
item.weightStable = 0
}
@@ -199,7 +200,7 @@ onUnmounted(() => {
})
function getWeightText(auncel) {
if (auncel.isConnected !== 1) {
return '天平断开'
return ''
}
return auncel.weightData || ''
}
@@ -227,8 +228,9 @@ function getWeightStyle(auncel) {
<style scoped lang="scss">
.content {
width: 80vw;
width: 60vw;
height: 90vh;
padding: 0 20px 40px 20px;
}
.auncel-item {
height: 180px;
@@ -239,6 +241,22 @@ function getWeightStyle(auncel) {
display: flex;
flex-direction: column;
}
.shade {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
background-color: #000;
opacity: 0.6;
color: #fff;
font-weight: 500;
z-index: 10;
border-radius: 8px;
}
.auncel-name {
flex: 1;
text-align: center;

View File

@@ -330,28 +330,36 @@ function accAdd(arg1, arg2) {
// 通过配置项分组
export function groupByField(list, cupNumFieldIndex, groupKey = 'groupDictionaryBusinessKey') {
const groupMap = new Map()
// 插入“全部”项
list.unshift({ groupDictionaryBusinessKey: 'all', groupDictionaryBusinessName: '全部' })
for (const item of list) {
// 赋值杯号fieldindex
// 赋值杯号 fieldIndex
if (item.title === '杯号') {
cupNumFieldIndex.value = item.fieldIndex
}
const key = item[groupKey]
if (!key) continue // 跳过没有 group 的项(可选)
let key = item[groupKey]
// 如果没有有效 key统一归入自定义分组
if (!key) {
key = 'customParameter' // 使用固定字符串作为无 key 项的分组标识
}
// 如果该分组不存在,初始化
if (!groupMap.has(key)) {
groupMap.set(key, {
value: key,
label: item.groupDictionaryBusinessName, // 假设 title 在每个 item 中,且同组相同
label: key === 'customParameter' ? '分析项目' : item.groupDictionaryBusinessName || '未知分组',
fields: []
})
}
// 当前项(或仅需要的部分)推入 fields
// 当前项加入对应分组
groupMap.get(key).fields.push(item)
}
// 转为数组
return Array.from(groupMap.values())
}

View File

@@ -6,9 +6,7 @@
import Request from 'luch-request'
import { getBaseUrl, getTenantId } from '@/defaultBaseUrl'
import $store from '@/nx/store'
import { ApiEncryption } from '@/nx/utils/crypto.js'
const apiEncryption = new ApiEncryption()
import qs from 'qs'
const options = {
// 显示操作成功消息 默认不显示
@@ -62,7 +60,10 @@ const http = new Request({
// 跨域请求时是否携带凭证cookies仅H5支持HBuilderX 2.6.15+
withCredentials: false,
// #endif
custom: options
custom: options,
paramsSerializer(params) {
return qs.stringify(params, { arrayFormat: 'indices' })
}
})
/**

247
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,13 +15,14 @@
"gm-crypto": "^0.1.12",
"lodash": "^4.17.21",
"luch-request": "^3.0.8",
"mathjs": "^13.0.3",
"md5": "^2.3.0",
"pinia": "^2.0.24",
"pinia-plugin-persist-uni": "^1.2.0",
"mathjs": "^13.0.3"
"qs": "^6.14.0"
},
"devDependencies": {
"prettier": "^2.7.1",
"vconsole": "^3.15.0"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -188,7 +188,7 @@ const checkWork = () => {
const startWork = () => {
// if (!checkWork()) return
uni.navigateTo({
url: `/pages/analysis/sample/sample-work-detail?currentTaskId=${currentTask.value.id}`
url: `/pages/analysis/sample/sample-work-detail?currentTaskId=${currentTask.value.id}&configReportTemplateKey=${currentTask.value.configReportTemplateKey}`
})
}
@@ -205,7 +205,8 @@ const switchTask = async index => {
const getAssayTask = () => {
rollbackContent.value = ''
const param = {
taskStatus: 'submit'
taskAssignStatus: 'submitted',
taskAssayStatusList: ['not_start', 'saved']
// assayOper: userInfo.value.nickname
}
nx.$api.assayTask.getAssayTaskList(param).then(res => {