Commit 4aaaaf86 authored by songrui's avatar songrui

诊断检验组件

parent bfe5a7a8
...@@ -57,7 +57,7 @@ export default { ...@@ -57,7 +57,7 @@ export default {
if (!token) { if (!token) {
token = sessionStorage.getItem('token') token = sessionStorage.getItem('token')
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
token = '35fea16a-be69-4290-b6f0-4f52902c2c72' token = '2039ead8-da95-4cf7-b2ce-144132d9e0e8'
} }
} }
if (token) { if (token) {
......
...@@ -57,7 +57,7 @@ export default { ...@@ -57,7 +57,7 @@ export default {
}) })
}, },
onConfirm({ selectedValues, selectedOptions }) { onConfirm({ selectedValues, selectedOptions }) {
this.$emit('update:value', selectedValues[0] || {}) this.$emit('update:value', selectedValues[0])
this.$emit('change', selectedOptions[0] || {}) this.$emit('change', selectedOptions[0] || {})
this.$emit('update:show', false) this.$emit('update:show', false)
}, },
......
...@@ -64,7 +64,7 @@ export default { ...@@ -64,7 +64,7 @@ export default {
}) })
}, },
onConfirm({ selectedValues, selectedOptions }) { onConfirm({ selectedValues, selectedOptions }) {
this.$emit('update:value', selectedValues[0] || {}) this.$emit('update:value', selectedValues[0])
this.$emit('change', selectedOptions[0] || {}) this.$emit('change', selectedOptions[0] || {})
this.$emit('update:show', false) this.$emit('update:show', false)
}, },
......
...@@ -74,7 +74,7 @@ export default { ...@@ -74,7 +74,7 @@ export default {
return getUnitByName(query) return getUnitByName(query)
}, },
onConfirm({ selectedValues, selectedOptions }) { onConfirm({ selectedValues, selectedOptions }) {
this.$emit('update:value', selectedValues[0] || {}) this.$emit('update:value', selectedValues[0])
this.$emit('change', selectedOptions[0] || {}) this.$emit('change', selectedOptions[0] || {})
this.$emit('update:show', false) this.$emit('update:show', false)
this.searchStr = '' this.searchStr = ''
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
:teleport="teleport" :teleport="teleport"
class="input-select"> class="input-select">
<van-picker <van-picker
title="请选择" title="请选择或录入"
:columns="array" :columns="array"
:columns-field-names="fieldNames" :columns-field-names="fieldNames"
v-model="innerValue" v-model="innerValue"
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
@cancel="onCancel" @cancel="onCancel"
> >
<template #columns-top> <template #columns-top>
<van-field v-model="customValue" placeholder="请输入" clearable/> <van-field v-model="customValue" placeholder="请输入" clearable maxlength="100"/>
</template> </template>
</van-picker> </van-picker>
</van-popup> </van-popup>
...@@ -57,7 +57,7 @@ export default { ...@@ -57,7 +57,7 @@ export default {
}, },
methods: { methods: {
onConfirm({ selectedValues, selectedOptions }) { onConfirm({ selectedValues, selectedOptions }) {
this.$emit('update:value', selectedValues[0] || {}) this.$emit('update:value', selectedValues[0])
this.$emit('change', selectedOptions[0] || {}) this.$emit('change', selectedOptions[0] || {})
this.$emit('update:show', false) this.$emit('update:show', false)
this.customValue = '' this.customValue = ''
......
...@@ -26,10 +26,9 @@ ...@@ -26,10 +26,9 @@
</van-checkbox-group> </van-checkbox-group>
</div> </div>
</van-popup> </van-popup>
<div class="flex flex-col mt-3 instpect-list"> <div class="flex flex-col mt-3 instpect-list">
<div v-for="(row, index1) in viewData" :key="row.insType" <div v-for="(row, index1) in viewData" :key="row.insType"
class="pt-3 px-2 mb-2" class="pt-3 px-2 mb-2 instpect-list-item"
:style="`order: ${row.insType}`"> :style="`order: ${row.insType}`">
<div class="required-mark mb-3">{{ row.insName }}</div> <div class="required-mark mb-3">{{ row.insName }}</div>
<template v-for="(item, index2) in row.items" :key="item.itemCode"> <template v-for="(item, index2) in row.items" :key="item.itemCode">
...@@ -39,9 +38,8 @@ ...@@ -39,9 +38,8 @@
:maxLength="100" :maxLength="100"
:rules="getRule(item)" :rules="getRule(item)"
:name="['viewData', index1, 'items', index2, 'itemValue'].join('.')" :name="['viewData', index1, 'items', index2, 'itemValue'].join('.')"
label-align="top"
class="no-back mb-2" class="no-back mb-2"
style="border-radius: .08rem;" maxlength="100"
v-destory:itemValue="item" v-destory:itemValue="item"
v-if="item.itemType === 1" v-if="item.itemType === 1"
> >
...@@ -49,9 +47,55 @@ ...@@ -49,9 +47,55 @@
<span class="ml-1">{{ item.unit }}</span> <span class="ml-1">{{ item.unit }}</span>
</template> </template>
</van-field> </van-field>
<van-field :label="getItemName(item)"
is-link
:modelValue="item.itemValue"
readonly
placeholder='请选择'
:name="['viewData', index1, 'items', index2, 'itemValue'].join('.')"
:rules="getRule(item)"
@click="setSelectOption(item, item.itemType)"
label-align="top"
class="no-back mb-2"
v-destory:itemValue="item"
v-else-if="item.itemType === 3"
>
<template #extra v-if="item.unit">
<span class="ml-1">{{ item.unit }}</span>
</template>
</van-field>
<van-field :label="getItemName(item)"
is-link
:modelValue="item.itemValue"
readonly
placeholder='请选择或录入'
:name="['viewData', index1, 'items', index2, 'itemValue'].join('.')"
:rules="getRule(item)"
@click="setSelectOption(item, item.itemType)"
label-align="top"
class="no-back mb-2"
v-destory:itemValue="item"
v-else-if="item.itemType === 4"
>
<template #extra v-if="item.unit">
<span class="ml-1">{{ item.unit }}</span>
</template>
</van-field>
</template> </template>
</div> </div>
<van-popup v-model:show="selectOption.show3" position="bottom">
<van-picker
title="请选择"
:columns="selectOption.dict"
:columns-field-names="{text: 'name', value: 'value'}"
@confirm="onSelectConfirm"
@cancel="() => selectOption.show = false"
>
</van-picker>
</van-popup>
<InputSelect v-model:show="selectOption.show4"
:dict="selectOption.dict"
@change="onSelectInputConfirm"></InputSelect>
</div> </div>
</div> </div>
</template> </template>
...@@ -60,10 +104,13 @@ ...@@ -60,10 +104,13 @@
import { inspectDefault } from './config.js' import { inspectDefault } from './config.js'
import { getInspectCode } from '@/api/doctor/disease.js' import { getInspectCode } from '@/api/doctor/disease.js'
import { useStore } from '@/doctor/store/index.js' import { useStore } from '@/doctor/store/index.js'
import InputSelect from './InputSelect.vue'
export default { export default {
name: 'InstpectCommon', name: 'InstpectCommon',
components: {}, components: {
InputSelect
},
props: { props: {
// 初始化数据 // 初始化数据
info: { default: () => { return {} } }, info: { default: () => { return {} } },
...@@ -89,7 +136,13 @@ export default { ...@@ -89,7 +136,13 @@ export default {
codeTable: [], codeTable: [],
// 图片上传回显 // 图片上传回显
imageData: [], imageData: [],
showInspect: false showInspect: false,
selectOption: {
show3: false,
show4: false,
dict: [],
item: {}
}
} }
}, },
computed: { computed: {
...@@ -159,9 +212,9 @@ export default { ...@@ -159,9 +212,9 @@ export default {
}, },
getItemName(item) { getItemName(item) {
if (item.itemCode) { if (item.itemCode) {
return `${item.itemName}(${item.itemCode})` return `${item.itemName}(${item.itemCode}) : `
} }
return item.itemName return item.itemName + ' : '
}, },
getRule(item) { getRule(item) {
if (!item.pattern) { if (!item.pattern) {
...@@ -172,15 +225,35 @@ export default { ...@@ -172,15 +225,35 @@ export default {
{ pattern: new RegExp(item.pattern), message: item.message } { pattern: new RegExp(item.pattern), message: item.message }
] ]
}, },
setSelectOption(item, itemType) {
this.selectOption.dict = item.dictItemList
this.selectOption.item = item
this.selectOption['show'+itemType] = true
},
onSelectConfirm({ selectedValues } = {}) {
// console.log(selectedValues)
this.selectOption.item.itemValue = selectedValues[0]
this.selectOption.show3 = false
},
onSelectInputConfirm(option) {
this.selectOption.item.itemValue = option.value
this.selectOption.show4 = false
}
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.instpect-list { .instpect-list {
>div { .instpect-list-item {
background-color: #F5F5F5; background-color: #F5F5F5;
border-radius: 8px; border-radius: 8px;
} }
:deep(.van-field) {
border-radius: .08rem;
.van-field__label {
width: auto;
}
}
} }
</style> </style>
<template> <template>
<div class="diagnose-form-cont"> <div class="diagnose-form-cont">
<van-form ref='form' class="doc-form" > <van-form ref='form' class="doc-form">
<InstpectCommon :disease="diseaseType"/> <InstpectCommon :disease="diseaseType"/>
</van-form> </van-form>
</div> </div>
......
...@@ -245,7 +245,7 @@ export default { ...@@ -245,7 +245,7 @@ export default {
}, },
onRefresh() { onRefresh() {
this.pagination.pageIndex = 1 this.pagination.pageIndex = 1
this.load() this.load(false)
}, },
tabChange() { tabChange() {
this.pagination.pageIndex = 1 this.pagination.pageIndex = 1
......
...@@ -206,7 +206,7 @@ export default { ...@@ -206,7 +206,7 @@ export default {
}, },
onRefresh() { onRefresh() {
this.pagination.pageIndex = 1 this.pagination.pageIndex = 1
this.load() this.load(false)
}, },
openSearch() { openSearch() {
this.searchVisible = !this.searchVisible this.searchVisible = !this.searchVisible
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment