feat:样品库管理

This commit is contained in:
houjunxiang
2025-11-21 17:56:33 +08:00
parent 7ee3df9ab9
commit 753766893b
24 changed files with 818 additions and 218 deletions

View File

@@ -12,13 +12,16 @@ onLaunch(async () => {
// #ifdef APP-PLUS // #ifdef APP-PLUS
let sysInfo = uni.getSystemInfoSync() let sysInfo = uni.getSystemInfoSync()
let brand = sysInfo.brand.toLowerCase() let brand = sysInfo.brand.toLowerCase()
if (brand === 'chainway') {
if (brand === 'huawei') {
plus.screen.lockOrientation('landscape') plus.screen.lockOrientation('landscape')
} }
if (brand === 'urovo') {
urovo.scanRegister(data => { urovo.scanRegister(data => {
console.log('优博讯扫码结果:' + data) console.log('优博讯扫码结果:' + data)
$store('biz').scanQRInfo = data $store('biz').scanQRInfo = data
}) })
}
// #endif // #endif
}) })

View File

@@ -70,7 +70,7 @@ const open = () => {
justify-content: space-between; justify-content: space-between;
margin-bottom: 10px; margin-bottom: 10px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
padding: 4px 0; padding: 8px 0;
} }
.label-my { .label-my {
color: #606266; color: #606266;
@@ -80,7 +80,8 @@ const open = () => {
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
font-weight: 400; font-weight: 400;
padding: 10px; padding: 20px;
padding-top: 35px;
background-color: $uni-color-primary; background-color: $uni-color-primary;
color: #fff; color: #fff;
} }

View File

@@ -1,8 +1,8 @@
// 在此不用配置接口前缀 // 在此不用配置接口前缀
const isDev = process.env.NODE_ENV === 'development' const isDev = process.env.NODE_ENV === 'development'
// const BaseUrl = isDev ? 'http://192.168.26.116:888/admin-api' : 'http://192.168.26.116:888/admin-api' const BaseUrl = isDev ? 'http://192.168.26.116:888/admin-api' : 'http://192.168.26.116:888/admin-api'
const BaseUrl = isDev ? 'http://192.168.26.190:48080/admin-api' : 'http://192.168.26.116:888/admin-api' // const BaseUrl = isDev ? 'http://192.168.26.163:48080/admin-api' : 'http://192.168.26.116:888/admin-api'
//
// const BaseUrl = isDev ? 'http://localhost:9999' : '' // const BaseUrl = isDev ? 'http://localhost:9999' : ''
const upgradeBaseUrl = 'http://192.168.26.116:888' const upgradeBaseUrl = 'http://192.168.26.116:888'

View File

@@ -11,7 +11,7 @@ export default {
execReturnToStock: data => execReturnToStock: data =>
request({ request({
url: '/qms/business-sub-sample/execReturnToStock', url: '/qms/business-sub-sample/execReturnToStock',
method: 'GET', method: 'POST',
data data
}), }),
// 库位变更 // 库位变更
@@ -42,6 +42,20 @@ export default {
method: 'POST', method: 'POST',
data data
}), }),
// 调拨创建临时数据
createDispatchTempData: data =>
request({
url: '/qms/business-sample-dispatch/createTempData',
method: 'POST',
data
}),
// 按样品添加内部调拨数据
addDispatchSample: data =>
request({
url: '/qms/business-sample-dispatch/addBySampleCode',
method: 'POST',
data
}),
// 查询待归还样品 // 查询待归还样品
searchBySampleCode: params => searchBySampleCode: params =>
request({ request({

View File

@@ -34,5 +34,12 @@ export default {
url: '/sys/app-client-role/getListByUserIdAndClientId', url: '/sys/app-client-role/getListByUserIdAndClientId',
method: 'GET' method: 'GET'
}) })
} },
// 获取当前部门下的用户
getAssignUserList: params =>
request({
url: '/qms/bus/sample/task-assign/getAssignUserList',
method: 'GET',
params
})
} }

View File

@@ -7,7 +7,7 @@ export function useListData({ searchParams, api, needInitListData = false, proce
const loadingData = ref(true) const loadingData = ref(true)
const pageParams = reactive({ const pageParams = reactive({
pageNo: 1, pageNo: 1,
pageSize: 5 pageSize: 10
}) })
const total = ref(0) const total = ref(0)
const loadStatus = ref('loadmore') const loadStatus = ref('loadmore')

View File

@@ -5,13 +5,13 @@
<u-col span="2" class="text-center" style="position: relative"> <u-col span="2" class="text-center" style="position: relative">
<slot name="tag" v-if="$slots.tag" :task="task"></slot> <slot name="tag" v-if="$slots.tag" :task="task"></slot>
<template v-else> <template v-else>
<u-icon :color="taskStyle(task)" name="tags-fill" size="40"></u-icon> <u-icon :color="taskStyle(task)" name="tags-fill" size="50"></u-icon>
<text class="seq">{{ seq }}</text> <text class="seq">{{ seq }}</text>
</template> </template>
</u-col> </u-col>
<u-col span="10"> <u-col span="10">
<view class="fs18">{{ task.taskNo }}</view> <view class="fs20">{{ task.taskNo }}</view>
<view class="mt3 mb3">{{ task.taskName }}{{ task.assayOper }}</view> <view class="mt8 mb8">{{ task.taskName }}{{ task.assayOper }}</view>
<view class="x-f"> <view class="x-f">
<u-icon name="clock"></u-icon> <u-icon name="clock"></u-icon>
<text class="ml5">{{ taskOperatorTime }}</text> <text class="ml5">{{ taskOperatorTime }}</text>
@@ -75,8 +75,8 @@ const taskStyle = task => {
} }
.seq { .seq {
position: absolute; position: absolute;
top: 12px; top: 20px;
left: 12px; left: 20px;
color: #fff; color: #fff;
font-size: 11px; font-size: 11px;
} }

View File

@@ -8,7 +8,7 @@
</view> </view>
<u-gap height="5" bg-color="#0055A2"></u-gap> <u-gap height="5" bg-color="#0055A2"></u-gap>
<scroll-view <scroll-view
style="height: 75vh" style="height: 82vh"
scroll-y scroll-y
scroll-with-animation scroll-with-animation
class="content-main-left" class="content-main-left"
@@ -37,7 +37,7 @@
</view> </view>
<u-gap height="5" bg-color="#0055A2"></u-gap> <u-gap height="5" bg-color="#0055A2"></u-gap>
<view> <view>
<scroll-view scroll-y scroll-with-animation style="height: calc(75vh - 60px)"> <scroll-view scroll-y scroll-with-animation style="height: calc(82vh - 60px)">
<block v-for="(sample, index) in sampleList" :key="index"> <block v-for="(sample, index) in sampleList" :key="index">
<view class="sample-item"> <view class="sample-item">
<u-row @click="showSampleDetail(sample.businessAssayTaskDataId, index)"> <u-row @click="showSampleDetail(sample.businessAssayTaskDataId, index)">
@@ -50,7 +50,7 @@
<view> <view>
<text class="pl5">{{ sample.sampleAssayCode }}</text> <text class="pl5">{{ sample.sampleAssayCode }}</text>
</view> </view>
<view> <view class="mt10">
<text class="pl5"> <text class="pl5">
{{ sample.sampleName }} {{ sample.sampleName }}
</text> </text>
@@ -58,7 +58,7 @@
</u-col> </u-col>
<u-col span="4"> <u-col span="4">
<view> <view>
<text style="padding-left: 10px" v-html="sample.assayProject"></text> <rich-text :nodes="sample.assayProject"> </rich-text>
</view> </view>
</u-col> </u-col>
</u-row> </u-row>
@@ -171,10 +171,9 @@ onBackPress(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.content-title-name { .content-title-name {
height: 50px; height: 60px;
box-sizing: border-box; box-sizing: border-box;
font-size: 20px; font-size: 20px;
font-weight: 300;
padding: 10px; padding: 10px;
text-align: center; text-align: center;
display: flex; display: flex;

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
<up-badge v-if="taskList.length > 0" class="ml5" :value="taskList.length" type="warning"></up-badge> <up-badge v-if="taskList.length > 0" class="ml5" :value="taskList.length" type="warning"></up-badge>
</view> </view>
<u-gap height="5" bg-color="#0055A2"></u-gap> <u-gap height="5" bg-color="#0055A2"></u-gap>
<scroll-view style="height: 75vh" scroll-y scroll-with-animation class="content-main-left"> <scroll-view style="height: 82vh" scroll-y scroll-with-animation class="content-main-left">
<template v-if="taskList.length > 0"> <template v-if="taskList.length > 0">
<TaskItem <TaskItem
v-for="(task, index) in taskList" v-for="(task, index) in taskList"
@@ -29,7 +29,7 @@
</view> </view>
<u-gap height="5" bg-color="#0055A2"></u-gap> <u-gap height="5" bg-color="#0055A2"></u-gap>
<view> <view>
<scroll-view scroll-y scroll-with-animation style="height: calc(75vh - 60px)"> <scroll-view scroll-y scroll-with-animation style="height: calc(82vh - 60px)">
<u-checkbox-group placement="column" v-model="checkedSampleCodes"> <u-checkbox-group placement="column" v-model="checkedSampleCodes">
<block v-for="(sample, index) in sampleList" :key="index"> <block v-for="(sample, index) in sampleList" :key="index">
<view v-if="currentTask.reviewCount === sample.reviewCount" class="sample-item"> <view v-if="currentTask.reviewCount === sample.reviewCount" class="sample-item">
@@ -52,13 +52,13 @@
<view> <view>
{{ sample.sampleAssayCode }} {{ sample.sampleAssayCode }}
</view> </view>
<view> <view class="mt10">
{{ sample.sampleName }} {{ sample.sampleName }}
</view> </view>
</u-col> </u-col>
<u-col span="6"> <u-col span="6">
<view> <view>
<text class="pl10" v-html="sample.assayProject"> </text> <rich-text :nodes="sample.assayProject"> </rich-text>
</view> </view>
</u-col> </u-col>
</u-row> </u-row>
@@ -263,10 +263,9 @@ onBackPress(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.content-title-name { .content-title-name {
height: 50px; height: 60px;
box-sizing: border-box; box-sizing: border-box;
font-size: 20px; font-size: 22px;
font-weight: 300;
padding: 10px; padding: 10px;
text-align: center; text-align: center;
display: flex; display: flex;

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