优化
This commit is contained in:
parent
867a46d933
commit
e3d63ed917
@ -19,6 +19,20 @@ const service = axios.create({
|
|||||||
timeout: 10000
|
timeout: 10000
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 全局参数过滤函数 抽出来
|
||||||
|
function filterEmptyParams(obj: Record<string, any>): Record<string, any> {
|
||||||
|
if (!obj || typeof obj !== 'object') return obj
|
||||||
|
const newObj: Record<string, any> = {}
|
||||||
|
for (const key in obj) {
|
||||||
|
const val = obj[key]
|
||||||
|
// 剔除 null、undefined、空字符串;0 / false 保留(数字0业务不能丢)
|
||||||
|
if (val !== null && val !== undefined && val !== '') {
|
||||||
|
newObj[key] = val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return newObj
|
||||||
|
}
|
||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
service.interceptors.request.use((config: any) => {
|
service.interceptors.request.use((config: any) => {
|
||||||
// 是否需要设置 token
|
// 是否需要设置 token
|
||||||
@ -31,6 +45,16 @@ service.interceptors.request.use((config: any) => {
|
|||||||
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
config.headers['hos_id'] = useUserStore().sysLoginParam.loginYLJG // 登录院区ID
|
config.headers['hos_id'] = useUserStore().sysLoginParam.loginYLJG // 登录院区ID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========== 全局过滤参数 ==========
|
||||||
|
// post json请求
|
||||||
|
if (config.data) {
|
||||||
|
config.data = filterEmptyParams(config.data)
|
||||||
|
}
|
||||||
|
// get params参数
|
||||||
|
if (config.params) {
|
||||||
|
config.params = filterEmptyParams(config.params)
|
||||||
|
}
|
||||||
// get请求映射params参数
|
// get请求映射params参数
|
||||||
if (config.method === 'get' && config.params) {
|
if (config.method === 'get' && config.params) {
|
||||||
let url = config.url + '?' + tansParams(config.params)
|
let url = config.url + '?' + tansParams(config.params)
|
||||||
|
|||||||
@ -284,7 +284,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="发血/申请单">
|
<el-form-item label="发血/申请单">
|
||||||
<el-input v-model="searchForm.applyNo" placeholder="" />
|
<el-input v-model="searchForm.billNo" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
@ -302,12 +302,12 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="发血人">
|
<el-form-item label="发血人">
|
||||||
<SelectTable v-model:data="searchForm.apply_person" :tableData="userList" placeholder="" />
|
<SelectTable v-model:data="searchForm.sendPerson" :tableData="userList" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="审核标志">
|
<el-form-item label="审核标志">
|
||||||
<el-select v-model="searchForm.audit_flag" placeholder="">
|
<el-select v-model="searchForm.checkSign" placeholder="">
|
||||||
<el-option label="未审核" value="0" />
|
<el-option label="未审核" value="0" />
|
||||||
<el-option label="已审核" value="1" />
|
<el-option label="已审核" value="1" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -315,7 +315,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="血液流水号">
|
<el-form-item label="血液流水号">
|
||||||
<el-input v-model="searchForm.billNo" placeholder="" />
|
<el-input v-model="searchForm.bloodNo" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|||||||
@ -15,7 +15,8 @@
|
|||||||
<div class="card-box scan-panel">
|
<div class="card-box scan-panel">
|
||||||
<div class="section-title">逐袋扫描</div>
|
<div class="section-title">逐袋扫描</div>
|
||||||
<el-form :model="scanForm" label-width="auto" class="scan-form">
|
<el-form :model="scanForm" label-width="auto" class="scan-form">
|
||||||
<el-form-item label="血液流水号"><el-input v-model="scanForm.blood_no" @keyup.enter="scanHandle" /></el-form-item>
|
<el-form-item label="血液流水号"><el-input ref="bloodNoInputRef" v-model="scanForm.blood_no"
|
||||||
|
@keyup.enter="scanHandle" /></el-form-item>
|
||||||
<el-form-item label="科室">
|
<el-form-item label="科室">
|
||||||
<el-select v-model="scanForm.dept_id" placeholder="" disabled>
|
<el-select v-model="scanForm.dept_id" placeholder="" disabled>
|
||||||
<el-option v-for="item in dictData.ks" :label="item.label" :value="item.value" />
|
<el-option v-for="item in dictData.ks" :label="item.label" :value="item.value" />
|
||||||
@ -53,7 +54,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-box" style="padding-bottom: 0;">
|
<div class="card-box" style="padding-bottom: 0;">
|
||||||
<el-form ref="formRef" :model="xkRecycleBagMain" label-width="auto" inline class="form-box">
|
<el-form :model="xkRecycleBagMain" label-width="auto" inline class="form-box">
|
||||||
|
|
||||||
<el-form-item label="接收人">
|
<el-form-item label="接收人">
|
||||||
<SelectTable v-model:data="xkRecycleBagMain.receive_person" :tableData="userList" placeholder=""
|
<SelectTable v-model:data="xkRecycleBagMain.receive_person" :tableData="userList" placeholder=""
|
||||||
@ -81,8 +82,7 @@
|
|||||||
<div> 已登记列表 </div>
|
<div> 已登记列表 </div>
|
||||||
<div style="margin-right: 30px"> 数量:{{ registeredList.length }} </div>
|
<div style="margin-right: 30px"> 数量:{{ registeredList.length }} </div>
|
||||||
</div>
|
</div>
|
||||||
<el-table ref="regTableRef" :data="registeredList" border height="100%" show-overflow-tooltip
|
<el-table :data="registeredList" border height="100%" show-overflow-tooltip highlight-current-row>
|
||||||
highlight-current-row>
|
|
||||||
<el-table-column prop="bill_no" label="出库单号" min-width="140" align="center" />
|
<el-table-column prop="bill_no" label="出库单号" min-width="140" align="center" />
|
||||||
<el-table-column prop="blood_no" label="血液流水号" min-width="140" align="center" />
|
<el-table-column prop="blood_no" label="血液流水号" min-width="140" align="center" />
|
||||||
<el-table-column prop="product_no" label="产品码" min-width="110" align="center" />
|
<el-table-column prop="product_no" label="产品码" min-width="110" align="center" />
|
||||||
@ -109,7 +109,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<BloodMask ref="maskRef" :bloodBreed="bloodBreed" @selectRow="selectBlood" />
|
<BloodMask ref="maskRef" :bloodBreed="bloodBreed" @selectRow="selectBlood" />
|
||||||
<el-dialog title="批量检索发血单" v-model="visible" width="420px" :close-on-click-modal="false">
|
<el-dialog title="批量检索发血单" v-model="visible" width="420px" :close-on-click-modal="false">
|
||||||
<el-form ref="batchFormRef" :model="batchForm" label-width="80px">
|
<el-form :model="batchForm" label-width="80px">
|
||||||
<el-form-item label="开始时间">
|
<el-form-item label="开始时间">
|
||||||
<div class="date-range">
|
<div class="date-range">
|
||||||
<el-date-picker v-model="batchForm.stime" type="date" value-format="YYYY-MM-DD" placeholder=""
|
<el-date-picker v-model="batchForm.stime" type="date" value-format="YYYY-MM-DD" placeholder=""
|
||||||
@ -132,31 +132,30 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import { getDictData, formatDict, dictData, useCommonDict } from '@/hooks'
|
import { getDictData, formatDict, dictData, useCommonDict } from '@/hooks'
|
||||||
const { userList, getUserData, getServerTime, bloodBreed, getBloodList, } = useCommonDict()
|
const { userList, getUserData, bloodBreed, getBloodList, } = useCommonDict()
|
||||||
import { getBloodBreed, queryBloodInfoByBloodNo } from '@/api/common'
|
import { queryBloodInfoByBloodNo } from '@/api/common'
|
||||||
import { getrecBatchList, getrecBloodInfo, queryBatchBloodInfo, recSaveData } from '@/api/blood'
|
import { getrecBatchList, getrecBloodInfo, queryBatchBloodInfo, recSaveData } from '@/api/blood'
|
||||||
import BloodMask from '../component/bloodMask.vue'
|
import BloodMask from '../component/bloodMask.vue'
|
||||||
import { ElMessageBox } from 'element-plus'
|
|
||||||
import { getUser } from '@/api/system/user'
|
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
|
|
||||||
const userInfo = useUserStore()
|
const userInfo = useUserStore()
|
||||||
const xkRecycleBagMain = ref({
|
const initMainForm = () => ({
|
||||||
receive_person: userInfo.name,
|
receive_person: userInfo.name,
|
||||||
receive_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
receive_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
send_person: userInfo.name,
|
send_person: userInfo.name,
|
||||||
send_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
send_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
})
|
})
|
||||||
|
const xkRecycleBagMain = ref(initMainForm())
|
||||||
const scanForm = ref({})
|
const scanForm = ref({})
|
||||||
const batchTableRef = ref()
|
const batchTableRef = ref()
|
||||||
const batchSelection = ref([])
|
const batchSelection = ref([])
|
||||||
const batchList = ref([])
|
const batchList = ref([])
|
||||||
const registeredList = ref([])
|
const registeredList = ref([])
|
||||||
const saveLoading = ref(false)
|
const saveLoading = ref(false)
|
||||||
const regTableRef = useTemplateRef('regTableRef')
|
const bloodNoInputRef = ref()
|
||||||
const maskRef = useTemplateRef('maskRef')
|
const maskRef = useTemplateRef('maskRef')
|
||||||
const visible = ref(false)
|
const visible = ref(false)
|
||||||
const batchForm = ref({
|
const batchForm = ref({
|
||||||
@ -165,12 +164,30 @@ const batchForm = ref({
|
|||||||
dept: ''
|
dept: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 已登记数据对应的出库单号(自动去重,随登记列表增删自动同步)
|
||||||
|
const billNoList = computed(() => [...new Set(registeredList.value.map(row => row.bill_no).filter(Boolean))])
|
||||||
|
|
||||||
const billNoList = ref([]) //选中的发血单号列表
|
const resetAll = () => {
|
||||||
const addHandle = () => {
|
|
||||||
scanForm.value = {}
|
scanForm.value = {}
|
||||||
registeredList.value = []
|
registeredList.value = []
|
||||||
batchList.value = []
|
batchList.value = []
|
||||||
|
batchSelection.value = []
|
||||||
|
batchTableRef.value?.clearSelection()
|
||||||
|
xkRecycleBagMain.value = initMainForm()
|
||||||
|
nextTick(() => bloodNoInputRef.value?.focus())
|
||||||
|
}
|
||||||
|
|
||||||
|
const addHandle = () => {
|
||||||
|
if (registeredList.value.length) {
|
||||||
|
ElMessageBox.confirm('当前存在已登记的数据,确定要清空并新增吗?',
|
||||||
|
'提示',
|
||||||
|
{ type: 'warning', }
|
||||||
|
).then(() => {
|
||||||
|
resetAll()
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resetAll()
|
||||||
}
|
}
|
||||||
const deleteHandle = (row, index) => {
|
const deleteHandle = (row, index) => {
|
||||||
ElMessageBox.confirm(`确定删除${row.blood_no}数据吗?`,
|
ElMessageBox.confirm(`确定删除${row.blood_no}数据吗?`,
|
||||||
@ -178,11 +195,15 @@ const deleteHandle = (row, index) => {
|
|||||||
{ type: 'warning', }
|
{ type: 'warning', }
|
||||||
).then(() => {
|
).then(() => {
|
||||||
registeredList.value.splice(index, 1)
|
registeredList.value.splice(index, 1)
|
||||||
|
// 删除后重新编排序号,保证 sid 连续不重复
|
||||||
|
registeredList.value.forEach((item, i) => item.sid = i + 1)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const saveHandle = () => {
|
const saveHandle = () => {
|
||||||
if (!registeredList.value.length) return ElMessage.warning("请添加登记数据")
|
if (!registeredList.value.length) return ElMessage.warning("请添加登记数据")
|
||||||
|
if (!xkRecycleBagMain.value.receive_person) return ElMessage.warning("请选择接收人")
|
||||||
|
if (!xkRecycleBagMain.value.receive_date) return ElMessage.warning("请选择接收时间")
|
||||||
const data = {
|
const data = {
|
||||||
billNoList: billNoList.value,
|
billNoList: billNoList.value,
|
||||||
xkRecycleBagDetailList: registeredList.value,
|
xkRecycleBagDetailList: registeredList.value,
|
||||||
@ -192,25 +213,29 @@ const saveHandle = () => {
|
|||||||
recSaveData(data).then(res => {
|
recSaveData(data).then(res => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success("保存成功!")
|
ElMessage.success("保存成功!")
|
||||||
addHandle()
|
resetAll()
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
saveLoading.value = false
|
saveLoading.value = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const scanHandle = () => {
|
const scanHandle = () => {
|
||||||
if (!scanForm.value.blood_no) return
|
const bloodNo = scanForm.value.blood_no?.trim()
|
||||||
const index = registeredList.value.findIndex(item => item.blood_no == scanForm.value.blood_no)
|
if (!bloodNo) return
|
||||||
if (index > -1) return ElMessage.warning("该血液流水号已被扫描过")
|
if (registeredList.value.some(item => item.blood_no == bloodNo)) {
|
||||||
queryBloodInfoByBloodNo({ bloodNo: scanForm.value.blood_no }).then(res => {
|
scanForm.value.blood_no = ''
|
||||||
|
bloodNoInputRef.value?.focus()
|
||||||
|
return ElMessage.warning("该血液流水号已被扫描过")
|
||||||
|
}
|
||||||
|
queryBloodInfoByBloodNo({ bloodNo }).then(res => {
|
||||||
if (res.data.length == 1) {
|
if (res.data.length == 1) {
|
||||||
const row = res.data[0]
|
getBloodInfo(res.data[0])
|
||||||
getBloodInfo(row)
|
} else {
|
||||||
} else if (res.data.length > 1) {
|
|
||||||
maskRef.value.open(res.data)
|
maskRef.value.open(res.data)
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
scanForm.value.blood_no = ''
|
scanForm.value.blood_no = ''
|
||||||
|
bloodNoInputRef.value?.focus()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,26 +244,21 @@ const selectBlood = (row) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getBloodInfo = (row) => {
|
const getBloodInfo = (row) => {
|
||||||
|
if (registeredList.value.some(item => item.blood_no == row.blood_no)) {
|
||||||
|
return ElMessage.warning("该血液流水号已在登记列表中")
|
||||||
|
}
|
||||||
getrecBloodInfo({ bloodNo: row.blood_no, productNo: row.product_no }).then(res => {
|
getrecBloodInfo({ bloodNo: row.blood_no, productNo: row.product_no }).then(res => {
|
||||||
if (!res.data) {
|
if (!res.data) {
|
||||||
ElMessage.warning(res.msg)
|
ElMessage.warning(res.msg)
|
||||||
scanForm.bloodNo = ''
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
scanForm.value = res.data || {}
|
scanForm.value = res.data || {}
|
||||||
const info = {
|
registeredList.value.push({
|
||||||
|
...res.data,
|
||||||
blood_no: row.blood_no,
|
blood_no: row.blood_no,
|
||||||
product_no: row.product_no,
|
product_no: row.product_no,
|
||||||
sid: registeredList.value.length + 1,
|
sid: registeredList.value.length + 1
|
||||||
...res.data
|
})
|
||||||
}
|
|
||||||
registeredList.value.push(info)
|
|
||||||
// bill_no加入之前判断billNoList中,如果存在则不加入
|
|
||||||
if (!billNoList.value.includes(info.bill_no)) {
|
|
||||||
billNoList.value.push(info.bill_no)
|
|
||||||
}
|
|
||||||
|
|
||||||
allRegSelect()
|
|
||||||
scanForm.value.blood_no = ''
|
scanForm.value.blood_no = ''
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -252,17 +272,22 @@ const openBatch = () => {
|
|||||||
visible.value = true
|
visible.value = true
|
||||||
}
|
}
|
||||||
const batchSearch = () => {
|
const batchSearch = () => {
|
||||||
batchForm.value.stime = dayjs(batchForm.value.stime).format('YYYY-MM-DD') + ' 00:00:00'
|
const { stime, etime, dept } = batchForm.value
|
||||||
batchForm.value.etime = dayjs(batchForm.value.etime).format('YYYY-MM-DD') + ' 23:59:59'
|
if (!stime || !etime) return ElMessage.warning('请选择开始时间和结束时间')
|
||||||
getrecBatchList(batchForm.value).then(res => {
|
if (dayjs(stime).isAfter(dayjs(etime), 'day')) return ElMessage.warning('开始时间不能晚于结束时间')
|
||||||
if (res.data.length) {
|
getrecBatchList({
|
||||||
|
stime: dayjs(stime).format('YYYY-MM-DD') + ' 00:00:00',
|
||||||
|
etime: dayjs(etime).format('YYYY-MM-DD') + ' 23:59:59',
|
||||||
|
dept
|
||||||
|
}).then(res => {
|
||||||
|
if (res.data?.length) {
|
||||||
batchList.value = res.data
|
batchList.value = res.data
|
||||||
selectAll()
|
selectAll()
|
||||||
|
visible.value = false
|
||||||
} else {
|
} else {
|
||||||
|
// 未查到数据时保留弹窗,便于调整条件重新检索
|
||||||
ElMessage.warning('未查询到数据')
|
ElMessage.warning('未查询到数据')
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
|
||||||
visible.value = false
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,36 +299,27 @@ const clearSelection = () => batchTableRef.value?.clearSelection()
|
|||||||
const addBatch = () => {
|
const addBatch = () => {
|
||||||
if (!batchSelection.value.length) return ElMessage.warning('请选择一条数据')
|
if (!batchSelection.value.length) return ElMessage.warning('请选择一条数据')
|
||||||
queryBatchBloodInfo(batchSelection.value).then(res => {
|
queryBatchBloodInfo(batchSelection.value).then(res => {
|
||||||
if (res.data.length) {
|
if (!res.data?.length) return ElMessage.warning('未查询到数据')
|
||||||
// 判断获取到的数据与registeredList中是否包含该条数据
|
// 已登记过的血液流水号跳过,避免重复登记
|
||||||
|
let added = 0
|
||||||
res.data.forEach(item => {
|
res.data.forEach(item => {
|
||||||
const index = registeredList.value.findIndex(row => row.blood_no == item.blood_no)
|
if (registeredList.value.some(row => row.blood_no == item.blood_no)) return
|
||||||
if (index > -1) {
|
|
||||||
res.data.splice(index, 1)
|
|
||||||
} else {
|
|
||||||
registeredList.value.push({ ...item, sid: registeredList.value.length + 1 })
|
registeredList.value.push({ ...item, sid: registeredList.value.length + 1 })
|
||||||
}
|
added++
|
||||||
|
|
||||||
if (!billNoList.value.includes(item.bill_no)) {
|
|
||||||
billNoList.value.push(item.bill_no)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
if (added) {
|
||||||
|
ElMessage.success(`成功添加 ${added} 条数据`)
|
||||||
} else {
|
} else {
|
||||||
ElMessage.warning('未查询到数据')
|
ElMessage.warning('所选数据均已登记,无需重复添加')
|
||||||
}
|
}
|
||||||
allRegSelect()
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const allRegSelect = () => {
|
|
||||||
regTableRef.value?.clearSelection()
|
|
||||||
regTableRef.value?.toggleAllSelection()
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getDictData('ks')
|
getDictData('ks')
|
||||||
getBloodList()
|
getBloodList()
|
||||||
getUserData()
|
getUserData()
|
||||||
|
nextTick(() => bloodNoInputRef.value?.focus())
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@
|
|||||||
<div class="card-box scan-panel">
|
<div class="card-box scan-panel">
|
||||||
<div class="section-title">逐袋扫描</div>
|
<div class="section-title">逐袋扫描</div>
|
||||||
<el-form-item label="血液流水号">
|
<el-form-item label="血液流水号">
|
||||||
<el-input v-model="bloodInfo.blood_no" @keyup.enter="scanHandle" />
|
<el-input v-model="bloodInfo.blood_no" ref="bloodNoInputRef" @keyup.enter="scanHandle" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品码">
|
<el-form-item label="产品码">
|
||||||
<el-input v-model="bloodInfo.product_no" disabled />
|
<el-input v-model="bloodInfo.product_no" disabled />
|
||||||
@ -220,7 +220,7 @@ import BloodMask from '../component/bloodMask.vue'
|
|||||||
const userInfo = useUserStore()
|
const userInfo = useUserStore()
|
||||||
|
|
||||||
const bloodInfo = ref({})
|
const bloodInfo = ref({})
|
||||||
|
const bloodNoInputRef = useTemplateRef('bloodNoInputRef')
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
handle_person: userInfo.name,
|
handle_person: userInfo.name,
|
||||||
back_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
back_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
@ -309,9 +309,14 @@ const handleClose = () => {
|
|||||||
}
|
}
|
||||||
const scanHandle = () => {
|
const scanHandle = () => {
|
||||||
if (!reason.value) return ElMessage.warning('请选择退血原因')
|
if (!reason.value) return ElMessage.warning('请选择退血原因')
|
||||||
if (!bloodInfo.value.blood_no) return
|
|
||||||
const index = bloodList.value.findIndex(item => item.blood_no == bloodInfo.value.blood_no)
|
const bloodNo = bloodInfo.value.blood_no?.trim()
|
||||||
if (index > -1) return ElMessage.warning("该血液流水号已被扫描过")
|
if (!bloodNo) return
|
||||||
|
if (bloodList.value.some(item => item.blood_no == bloodNo)) {
|
||||||
|
bloodInfo.value.blood_no = ''
|
||||||
|
bloodNoInputRef.value?.focus()
|
||||||
|
return ElMessage.warning("该血液流水号已被扫描过")
|
||||||
|
}
|
||||||
queryBloodInfoByBloodNo({ bloodNo: bloodInfo.value.blood_no }).then(res => {
|
queryBloodInfoByBloodNo({ bloodNo: bloodInfo.value.blood_no }).then(res => {
|
||||||
if (res.data.length == 1) {
|
if (res.data.length == 1) {
|
||||||
const row = res.data[0]
|
const row = res.data[0]
|
||||||
@ -321,6 +326,7 @@ const scanHandle = () => {
|
|||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
bloodInfo.value.blood_no = ''
|
bloodInfo.value.blood_no = ''
|
||||||
|
bloodNoInputRef.value?.focus()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -71,7 +71,7 @@
|
|||||||
<div class="card-box scan-panel">
|
<div class="card-box scan-panel">
|
||||||
<div class="section-title">逐袋扫描</div>
|
<div class="section-title">逐袋扫描</div>
|
||||||
<el-form-item label="血液流水号">
|
<el-form-item label="血液流水号">
|
||||||
<el-input v-model="bloodInfo.blood_no" @keyup.enter="scanHandle" />
|
<el-input v-model="bloodInfo.blood_no" ref="bloodNoInputRef" @keyup.enter="scanHandle" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品码">
|
<el-form-item label="产品码">
|
||||||
<el-input v-model="bloodInfo.product_no" disabled />
|
<el-input v-model="bloodInfo.product_no" disabled />
|
||||||
@ -206,6 +206,7 @@ const searchForm = ref({
|
|||||||
stime: dayjs().format('YYYY-MM-DD'),
|
stime: dayjs().format('YYYY-MM-DD'),
|
||||||
etime: dayjs().format('YYYY-MM-DD'),
|
etime: dayjs().format('YYYY-MM-DD'),
|
||||||
})
|
})
|
||||||
|
const bloodNoInputRef = useTemplateRef('bloodNoInputRef')
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
const bloodList = ref([])
|
const bloodList = ref([])
|
||||||
const visible = ref(false)
|
const visible = ref(false)
|
||||||
@ -262,9 +263,13 @@ const handleClose = () => {
|
|||||||
}
|
}
|
||||||
const scanHandle = () => {
|
const scanHandle = () => {
|
||||||
if (!reason.value) return ElMessage.warning('请选择报废单原因')
|
if (!reason.value) return ElMessage.warning('请选择报废单原因')
|
||||||
if (!bloodInfo.value.blood_no) return
|
const bloodNo = bloodInfo.value.blood_no?.trim()
|
||||||
const index = bloodList.value.findIndex(item => item.blood_no == bloodInfo.value.blood_no)
|
if (!bloodNo) return
|
||||||
if (index > -1) return ElMessage.warning("该血液流水号已被扫描过")
|
if (bloodList.value.some(item => item.blood_no == bloodNo)) {
|
||||||
|
bloodInfo.value.blood_no = ''
|
||||||
|
bloodNoInputRef.value?.focus()
|
||||||
|
return ElMessage.warning("该血液流水号已被扫描过")
|
||||||
|
}
|
||||||
queryBloodInfoByBloodNo({ bloodNo: bloodInfo.value.blood_no }).then(res => {
|
queryBloodInfoByBloodNo({ bloodNo: bloodInfo.value.blood_no }).then(res => {
|
||||||
if (res.data.length == 1) {
|
if (res.data.length == 1) {
|
||||||
const row = res.data[0]
|
const row = res.data[0]
|
||||||
@ -274,6 +279,7 @@ const scanHandle = () => {
|
|||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
bloodInfo.value.blood_no = ''
|
bloodInfo.value.blood_no = ''
|
||||||
|
bloodNoInputRef.value?.focus()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user