| | |
| | | |
| | | <script lang="ts" setup> |
| | | |
| | | import { ref, onMounted, nextTick } from 'vue' |
| | | import { ref, onMounted, watch, nextTick } from 'vue' |
| | | import JsBarcode from 'jsbarcode' |
| | | |
| | | defineOptions({ name: 'Barcode' }) |
| | |
| | | value: String |
| | | }); |
| | | |
| | | onMounted(() => { |
| | | nextTick(() => { |
| | | JsBarcode('.barcode', String(props.value), { |
| | | format: "CODE39",//选择要使用的条形码类型 |
| | | width:1,//设置条之间的宽度 |
| | | height:40,//高度 |
| | | displayValue:true,//是否在条形码下方显示文字 |
| | | const generateBarcode = () => { |
| | | JsBarcode('.barcode', String(props.value), { |
| | | format: "CODE39",//选择要使用的条形码类型 |
| | | width:1,//设置条之间的宽度 |
| | | height:40,//高度 |
| | | displayValue:true,//是否在条形码下方显示文字 |
| | | // text:"456",//覆盖显示的文本 |
| | | // fontOptions:"bold italic",//使文字加粗体或变斜体 |
| | | // font:"fantasy",//设置文本的字体 |
| | | // textAlign:"left",//设置文本的水平对齐方式 |
| | | // textPosition:"top",//设置文本的垂直位置 |
| | | // textMargin:5,//设置条形码和文本之间的间距 |
| | | fontSize:15,//设置文本的大小 |
| | | fontSize:15,//设置文本的大小 |
| | | // background:"#eee",//设置条形码的背景 |
| | | // lineColor:"#2196f3",//设置条和文本的颜色。 |
| | | margin:15//设置条形码周围的空白边距 |
| | | }); |
| | | }) |
| | | margin:15//设置条形码周围的空白边距 |
| | | }); |
| | | } |
| | | |
| | | onMounted(() => { |
| | | nextTick(() => generateBarcode()) |
| | | }) |
| | | |
| | | watch(() => props.value, generateBarcode); |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="患者编号" prop="patId"> |
| | | <el-input v-model="formData.patId" placeholder="请输入患者编号" @input="getRentInfoByPatId" /> |
| | | <Barcode v-if="getDisplayBarcode()" :value="getDisplayBarcode()" :width=100 /> |
| | | <Barcode v-if="displayBarCode" :value="displayBarCode" :width=100 /> |
| | | <el-button @click="copyBarcode()">复制</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="患者名称" prop="patName"> |
| | |
| | | purchaseDate: 0, |
| | | state: 0, |
| | | }) |
| | | |
| | | const displayBarCode = ref<string> () |
| | | |
| | | const getRentInfoByPatId = () => { |
| | | const tempPatId = formData.value.patId; |
| | |
| | | return "" |
| | | |
| | | if (1 === formData.value.patSrc || 2 === formData.value.patSrc) |
| | | return formData.value.applyNo |
| | | return formData.value.applyNo??"" |
| | | else if (3 === formData.value.patSrc || 4 === formData.value.patSrc) |
| | | return formData.value.episodeId |
| | | return formData.value.episodeId??"" |
| | | |
| | | return "" |
| | | } |
| | | |
| | | const copyBarcode = async () => { |
| | | displayBarCode.value = getDisplayBarcode() |
| | | await navigator.clipboard.writeText( getBarcode() ); |
| | | console.info(displayBarCode.value) |
| | | } |
| | | |
| | | /** 初始化 **/ |