This commit is contained in:
jiangs 2025-10-24 15:37:24 +08:00
parent 9d486af975
commit 132b87b4c3
12 changed files with 207 additions and 109 deletions

View File

@ -17,7 +17,7 @@ export default defineConfig([
},
{
rules: {
'auto-import/export': 'error',
//'auto-import/export': 'error',
},
},
{

View File

@ -18,6 +18,7 @@
"@vueuse/core": "10.6.1",
"axios": "0.27.2",
"clipboard": "^2.0.11",
"dayjs": "^1.11.18",
"echarts": "5.4.3",
"element-plus": "^2.11.2",
"file-saver": "2.0.5",
@ -45,6 +46,7 @@
},
"devDependencies": {
"@eslint/js": "^9.27.0",
"@types/vue": "^2.0.0",
"@vitejs/plugin-vue": "5.0.1",
"@vue/compiler-sfc": "3.4.0",
"eslint": "^9.27.0",
@ -52,6 +54,7 @@
"eslint-plugin-vue": "^10.1.0",
"globals": "^16.1.0",
"sass": "1.69.5",
"typescript": "^5.9.3",
"unplugin-auto-import": "0.17.1",
"unplugin-vue-setup-extend-plus": "1.0.0",
"vite": "5.0.4",

146
pnpm-lock.yaml generated
View File

@ -10,28 +10,31 @@ importers:
dependencies:
'@element-plus/icons-vue':
specifier: 2.3.1
version: 2.3.1(vue@3.4.0)
version: 2.3.1(vue@3.4.0(typescript@5.9.3))
'@fingerprintjs/fingerprintjs':
specifier: ^4.6.2
version: 4.6.2
'@vueup/vue-quill':
specifier: 1.2.0
version: 1.2.0(vue@3.4.0)
version: 1.2.0(vue@3.4.0(typescript@5.9.3))
'@vueuse/core':
specifier: 10.6.1
version: 10.6.1(vue@3.4.0)
version: 10.6.1(vue@3.4.0(typescript@5.9.3))
axios:
specifier: 0.27.2
version: 0.27.2
clipboard:
specifier: ^2.0.11
version: 2.0.11
dayjs:
specifier: ^1.11.18
version: 1.11.18
echarts:
specifier: 5.4.3
version: 5.4.3
element-plus:
specifier: ^2.11.2
version: 2.11.5(vue@3.4.0)
version: 2.11.5(vue@3.4.0(typescript@5.9.3))
file-saver:
specifier: 2.0.5
version: 2.0.5
@ -58,7 +61,7 @@ importers:
version: 0.2.0
pinia:
specifier: 2.1.7
version: 2.1.7(vue@3.4.0)
version: 2.1.7(typescript@5.9.3)(vue@3.4.0(typescript@5.9.3))
pinyin-pro:
specifier: ^3.26.0
version: 3.27.0
@ -73,7 +76,7 @@ importers:
version: 1.14.0
vue:
specifier: 3.4.0
version: 3.4.0
version: 3.4.0(typescript@5.9.3)
vue-cropper:
specifier: 1.1.1
version: 1.1.1
@ -82,29 +85,32 @@ importers:
version: 0.0.60
vue-router:
specifier: 4.2.5
version: 4.2.5(vue@3.4.0)
version: 4.2.5(vue@3.4.0(typescript@5.9.3))
vue3-print-nb:
specifier: ^0.1.4
version: 0.1.4
version: 0.1.4(typescript@5.9.3)
vue3-select2-component:
specifier: ^0.1.7
version: 0.1.7
vuedraggable:
specifier: ^4.1.0
version: 4.1.0(vue@3.4.0)
version: 4.1.0(vue@3.4.0(typescript@5.9.3))
vxe-pc-ui:
specifier: ^4.3.2
version: 4.10.3(vue@3.4.0)
version: 4.10.3(vue@3.4.0(typescript@5.9.3))
vxe-table:
specifier: ^4.9.4
version: 4.17.0(vue@3.4.0)
version: 4.17.0(vue@3.4.0(typescript@5.9.3))
devDependencies:
'@eslint/js':
specifier: ^9.27.0
version: 9.27.0
'@types/vue':
specifier: ^2.0.0
version: 2.0.0(typescript@5.9.3)
'@vitejs/plugin-vue':
specifier: 5.0.1
version: 5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.4.0)
version: 5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.4.0(typescript@5.9.3))
'@vue/compiler-sfc':
specifier: 3.4.0
version: 3.4.0
@ -123,9 +129,12 @@ importers:
sass:
specifier: 1.69.5
version: 1.69.5
typescript:
specifier: ^5.9.3
version: 5.9.3
unplugin-auto-import:
specifier: 0.17.1
version: 0.17.1(@vueuse/core@10.6.1(vue@3.4.0))(rollup@4.34.9)
version: 0.17.1(@vueuse/core@10.6.1(vue@3.4.0(typescript@5.9.3)))(rollup@4.34.9)
unplugin-vue-setup-extend-plus:
specifier: 1.0.0
version: 1.0.0
@ -573,6 +582,10 @@ packages:
'@types/svgo@2.6.4':
resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
'@types/vue@2.0.0':
resolution: {integrity: sha512-WDElkBv/o4lVwu6wYHB06AXs4Xo2fwDjJUpvPRc1QQdzkUSiGFjrYuSCy8raxLE5FObgKq8ND7R5gSZTFLK60w==}
deprecated: This is a stub types definition for vuejs (https://github.com/vuejs/vue). vuejs provides its own type definitions, so you don't need @types/vue installed!
'@types/web-bluetooth@0.0.16':
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
@ -2419,6 +2432,11 @@ packages:
engines: {node: '>=4.2.0'}
hasBin: true
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
ufo@1.5.4:
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
@ -2676,13 +2694,13 @@ snapshots:
is-absolute: 1.0.0
is-negated-glob: 1.0.0
'@element-plus/icons-vue@2.3.1(vue@3.4.0)':
'@element-plus/icons-vue@2.3.1(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
'@element-plus/icons-vue@2.3.2(vue@3.4.0)':
'@element-plus/icons-vue@2.3.2(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
'@esbuild/aix-ppc64@0.19.12':
optional: true
@ -2955,14 +2973,20 @@ snapshots:
dependencies:
'@types/node': 22.13.9
'@types/vue@2.0.0(typescript@5.9.3)':
dependencies:
vue: 3.4.0(typescript@5.9.3)
transitivePeerDependencies:
- typescript
'@types/web-bluetooth@0.0.16': {}
'@types/web-bluetooth@0.0.20': {}
'@vitejs/plugin-vue@5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.4.0)':
'@vitejs/plugin-vue@5.0.1(vite@5.0.4(@types/node@22.13.9)(sass@1.69.5))(vue@3.4.0(typescript@5.9.3))':
dependencies:
vite: 5.0.4(@types/node@22.13.9)(sass@1.69.5)
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
'@vue/compiler-core@3.4.0':
dependencies:
@ -3011,36 +3035,36 @@ snapshots:
'@vue/shared': 3.4.0
csstype: 3.1.3
'@vue/server-renderer@3.4.0(vue@3.4.0)':
'@vue/server-renderer@3.4.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
'@vue/compiler-ssr': 3.4.0
'@vue/shared': 3.4.0
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
'@vue/shared@3.4.0': {}
'@vueup/vue-quill@1.2.0(vue@3.4.0)':
'@vueup/vue-quill@1.2.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
quill: 1.3.7
quill-delta: 4.2.2
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
'@vueuse/core@10.6.1(vue@3.4.0)':
'@vueuse/core@10.6.1(vue@3.4.0(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.6.1
'@vueuse/shared': 10.6.1(vue@3.4.0)
vue-demi: 0.14.10(vue@3.4.0)
'@vueuse/shared': 10.6.1(vue@3.4.0(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/core@9.13.0(vue@3.4.0)':
'@vueuse/core@9.13.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
'@vueuse/shared': 9.13.0(vue@3.4.0)
vue-demi: 0.14.10(vue@3.4.0)
'@vueuse/shared': 9.13.0(vue@3.4.0(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@ -3049,24 +3073,24 @@ snapshots:
'@vueuse/metadata@9.13.0': {}
'@vueuse/shared@10.6.1(vue@3.4.0)':
'@vueuse/shared@10.6.1(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue-demi: 0.14.10(vue@3.4.0)
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/shared@9.13.0(vue@3.4.0)':
'@vueuse/shared@9.13.0(vue@3.4.0(typescript@5.9.3))':
dependencies:
vue-demi: 0.14.10(vue@3.4.0)
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vxe-ui/core@4.2.12(vue@3.4.0)':
'@vxe-ui/core@4.2.12(vue@3.4.0(typescript@5.9.3))':
dependencies:
dom-zindex: 1.0.6
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
xe-utils: 3.7.9
'@wtto00/html2canvas@1.4.3':
@ -3505,15 +3529,15 @@ snapshots:
minimatch: 9.0.1
semver: 7.7.1
element-plus@2.11.5(vue@3.4.0):
element-plus@2.11.5(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@ctrl/tinycolor': 3.6.1
'@element-plus/icons-vue': 2.3.2(vue@3.4.0)
'@element-plus/icons-vue': 2.3.2(vue@3.4.0(typescript@5.9.3))
'@floating-ui/dom': 1.6.13
'@popperjs/core': '@sxzz/popperjs-es@2.11.7'
'@types/lodash': 4.17.20
'@types/lodash-es': 4.17.12
'@vueuse/core': 9.13.0(vue@3.4.0)
'@vueuse/core': 9.13.0(vue@3.4.0(typescript@5.9.3))
async-validator: 4.2.5
dayjs: 1.11.18
lodash: 4.17.21
@ -3521,7 +3545,7 @@ snapshots:
lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21)
memoize-one: 6.0.0
normalize-wheel-es: 1.2.0
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
transitivePeerDependencies:
- '@vue/composition-api'
@ -4553,11 +4577,13 @@ snapshots:
picomatch@4.0.2: {}
pinia@2.1.7(vue@3.4.0):
pinia@2.1.7(typescript@5.9.3)(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.4.0
vue-demi: 0.14.10(vue@3.4.0)
vue: 3.4.0(typescript@5.9.3)
vue-demi: 0.14.10(vue@3.4.0(typescript@5.9.3))
optionalDependencies:
typescript: 5.9.3
pinyin-pro@3.27.0: {}
@ -5115,6 +5141,8 @@ snapshots:
typescript@4.1.6: {}
typescript@5.9.3: {}
ufo@1.5.4: {}
unbox-primitive@1.1.0:
@ -5156,7 +5184,7 @@ snapshots:
universalify@2.0.1: {}
unplugin-auto-import@0.17.1(@vueuse/core@10.6.1(vue@3.4.0))(rollup@4.34.9):
unplugin-auto-import@0.17.1(@vueuse/core@10.6.1(vue@3.4.0(typescript@5.9.3)))(rollup@4.34.9):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.4(rollup@4.34.9)
@ -5167,7 +5195,7 @@ snapshots:
unimport: 3.14.6(rollup@4.34.9)
unplugin: 1.16.1
optionalDependencies:
'@vueuse/core': 10.6.1(vue@3.4.0)
'@vueuse/core': 10.6.1(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- rollup
@ -5238,9 +5266,9 @@ snapshots:
vue-cropper@1.1.1: {}
vue-demi@0.14.10(vue@3.4.0):
vue-demi@0.14.10(vue@3.4.0(typescript@5.9.3)):
dependencies:
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
vue-eslint-parser@10.1.3(eslint@9.27.0):
dependencies:
@ -5272,14 +5300,14 @@ snapshots:
- supports-color
- utf-8-validate
vue-router@4.2.5(vue@3.4.0):
vue-router@4.2.5(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
vue3-print-nb@0.1.4:
vue3-print-nb@0.1.4(typescript@5.9.3):
dependencies:
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
transitivePeerDependencies:
- typescript
@ -5288,28 +5316,30 @@ snapshots:
jquery: 3.7.1
select2: 4.0.13
vue@3.4.0:
vue@3.4.0(typescript@5.9.3):
dependencies:
'@vue/compiler-dom': 3.4.0
'@vue/compiler-sfc': 3.4.0
'@vue/runtime-dom': 3.4.0
'@vue/server-renderer': 3.4.0(vue@3.4.0)
'@vue/server-renderer': 3.4.0(vue@3.4.0(typescript@5.9.3))
'@vue/shared': 3.4.0
optionalDependencies:
typescript: 5.9.3
vuedraggable@4.1.0(vue@3.4.0):
vuedraggable@4.1.0(vue@3.4.0(typescript@5.9.3)):
dependencies:
sortablejs: 1.14.0
vue: 3.4.0
vue: 3.4.0(typescript@5.9.3)
vxe-pc-ui@4.10.3(vue@3.4.0):
vxe-pc-ui@4.10.3(vue@3.4.0(typescript@5.9.3)):
dependencies:
'@vxe-ui/core': 4.2.12(vue@3.4.0)
'@vxe-ui/core': 4.2.12(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- vue
vxe-table@4.17.0(vue@3.4.0):
vxe-table@4.17.0(vue@3.4.0(typescript@5.9.3)):
dependencies:
vxe-pc-ui: 4.10.3(vue@3.4.0)
vxe-pc-ui: 4.10.3(vue@3.4.0(typescript@5.9.3))
transitivePeerDependencies:
- vue

View File

@ -0,0 +1,11 @@
// @ts-ignore
import request from '@/utils/request'
//检验项目,获取数据
export function queryXmInfoNewService(query: any){
return request({
url: '/xminfo/query',
method: 'get',
params: query
})
}

View File

@ -24,14 +24,14 @@
</el-form-item>
<el-form-item>
<el-radio-group v-model="status" fill="primary" size="large">
<el-radio label="1" >在用</el-radio>
<el-radio label="2">停用</el-radio>
<el-radio label="3">所有</el-radio>
<el-radio value="1">在用</el-radio>
<el-radio value="2">停用</el-radio>
<el-radio value="3">所有</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-checkbox v-model="isMIC" label="隐藏微生物项目" size="large" />
</el-form-item>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@ -42,25 +42,31 @@
</el-col>
</el-row>
<!-- 表格区域-->
<el-table :data="dataList" height="65vh">
<el-table-column label="项目类别" align="center"></el-table-column>
<el-table-column label="英文缩写" align="center"></el-table-column>
<el-table-column label="名称" align="center"></el-table-column>
<el-table-column label="参考值" align="center"></el-table-column>
<el-table-column label="单位" align="center"></el-table-column>
<el-table-column label="结果类型" align="center"></el-table-column>
<el-table-column label="计算项目" align="center"></el-table-column>
<el-table-column label="序号" align="center"></el-table-column>
<el-table-column label="小数位数" align="center"></el-table-column>
<el-table-column label="稀释倍数" align="center"></el-table-column>
<el-table-column label="停用" align="center"></el-table-column>
<el-table-column label="仪器大类" align="center"></el-table-column>
<el-table-column label="项目ID" align="center"></el-table-column>
<el-table-column label="项目编码" align="center"></el-table-column>
<el-table-column label="外部代码1" align="center"></el-table-column>
<el-table-column label="外部代码2" align="center"></el-table-column>
<el-table-column label="外部代码3" align="center"></el-table-column>
<el-table-column label="英文名称" align="center"></el-table-column>
<el-table :data="dataList" height="65vh" border >
<el-table-column label="项目类别" align="center" prop="xmgl">
<template #default="{ row }">
{{ formatDict(row.xmgl, 'XMGL') }}
</template>
</el-table-column>
<el-table-column label="英文缩写" align="center" prop="xmdh"></el-table-column>
<el-table-column label="名称" align="center" prop="xmmc" width="200"></el-table-column>
<el-table-column label="参考值" align="center" prop="dyckz"></el-table-column>
<el-table-column label="单位" align="center" prop="dw"></el-table-column>
<el-table-column label="结果类型" align="center" prop="xmlb"></el-table-column>
<el-table-column label="计算项目" align="center" prop="jsxm"></el-table-column>
<el-table-column label="序号" align="center" prop="dyxh"></el-table-column>
<el-table-column label="调整系数" align="center" prop="xs"></el-table-column>
<el-table-column label="小数位数" align="center" prop="xsws"></el-table-column>
<el-table-column label="稀释倍数" align="center" prop="xsbs"></el-table-column>
<el-table-column label="停用" align="center" prop="uflag"></el-table-column>
<el-table-column label="仪器大类" align="center" prop="yqdl"></el-table-column>
<el-table-column label="项目ID" align="center" prop="xmid"></el-table-column>
<el-table-column label="项目编码" align="center" prop="knowledge"></el-table-column>
<el-table-column label="外部代码1" align="center" prop="val1"></el-table-column>
<el-table-column label="外部代码2" align="center" prop="val2"></el-table-column>
<el-table-column label="外部代码3" align="center" prop="val3"></el-table-column>
<el-table-column label="英文名称" align="center" prop="yymc" width="200"></el-table-column>
<el-table-column label="允许CA(%)" align="center" prop="qccv"></el-table-column>
</el-table>
</el-col>
<!-- 右侧区域-->
@ -86,19 +92,66 @@
</div>
</template>
<script setup>
import { ref } from 'vue';
<script setup lang="ts">
import { onMounted, ref,toRaw } from 'vue';
import Basic from './tab/basic.vue'
import CommmonlyValues from './tab/commmonlyValues.vue'
import UseInstr from './tab/useInstr.vue'
import Knowledge from './tab/knowledge.vue'
import CommonDescriptions from './tab/commonDescriptions.vue'
import Sort from './tab/sort.vue'
import { queryXmInfoNewService } from '@/api/liswork/labItem/LabItem';
//@ts-ignore
import { comDict } from '@/utils/dict'
interface DictData {
XMGL?: Array<any>;
[key: string]: any[] | undefined; // 添加索引签名以支持动态访问
}
const status = ref(1);
const isMIC = ref(false);
const dataList = ref([])
const tabVisible = ref('1')
const queryParams = ref()
//字典数据
const dictData = ref<DictData>({});
onMounted(async () => {
// 初始化数据
const dictRefs = await comDict('XMGL');
// 从 ref 中获取实际数据
dictData.value = {
XMGL: toRaw(dictRefs.XMGL.value) || []
};
queryXmInfoNewService(queryParams.value).then((res: any) => {
dataList.value = res.rows;
})
})
// 引入公共组件的字典格式化方法
const formatDict = (v: string, dictType: string) => {
console.log('传入的值v:', v);
const dictArray = dictData.value[dictType];
console.log('对应的字典数组dictArray:', dictArray);
dictArray?.forEach(item => {
console.log('数组元素value:', item.value, '类型:', typeof item.value);
});
const matchedItem = dictArray?.find((item: any) => item.value == v);
console.log('匹配到的item:', matchedItem); // 关键:看是否为undefined
const abc = matchedItem?.label;
console.log('字典数据abc', abc);
return abc;
}
//新增
const handleAdd = () => {
@ -121,7 +174,7 @@ const handleSave = () => {
}
//标签切换
const handleTabClick = (tab) => {
const handleTabClick = (tab: string) => {
tabVisible.value = tab
}

View File

@ -6,15 +6,16 @@
</div>
</template>
<script setup>
import { ref } from 'vue';
<script setup lang="ts">
const props = defineProps({
// 定义一个名为 'exampleProp' 的字符串类型的 prop
visible: {
type: String,
type: Boolean,
required: true,
default: 'false'
default: false
}
});
</script>

View File

@ -3,15 +3,15 @@
<div v-show="visible">常用取值内容</div>
</template>
<script setup>
import { ref } from 'vue';
<script setup lang="ts">
const props = defineProps({
// 定义一个名为 'exampleProp' 的字符串类型的 prop
visible: {
type: String,
type: Boolean,
required: true,
default: 'false'
default: false
}
});
</script>

View File

@ -4,15 +4,15 @@
</template>
<script setup>
import { ref } from 'vue';
<script setup lang="ts">
const props = defineProps({
// 定义一个名为 'exampleProp' 的字符串类型的 prop
visible: {
type: String,
type: Boolean,
required: true,
default: 'false'
default: false
}
});
</script>

View File

@ -4,15 +4,15 @@
</template>
<script setup>
<script setup lang="ts">
import { ref } from 'vue';
const props = defineProps({
// 定义一个名为 'exampleProp' 的字符串类型的 prop
visible: {
type: String,
type: Boolean,
required: true,
default: 'false'
default: false
}
});
</script>

View File

@ -4,15 +4,15 @@
</template>
<script setup>
<script setup lang="ts">
import { ref } from 'vue';
const props = defineProps({
// 定义一个名为 'exampleProp' 的字符串类型的 prop
// 定义一个名为 'exampleProp' 的布尔类型的 prop
visible: {
type: String,
type: Boolean,
required: true,
default: 'false'
default: false
}
});
</script>

View File

@ -4,15 +4,15 @@
</template>
<script setup>
import { ref } from 'vue';
<script setup lang="ts">
const props = defineProps({
// 定义一个名为 'exampleProp' 的字符串类型的 prop
visible: {
type: String,
type: Boolean,
required: true,
default: 'false'
default: false
}
});
</script>

View File

@ -15,7 +15,7 @@
"paths": {
"@/*": ["src/*"]
} /* 一系列条目,这些条目将导入重新映射到相对于“baseUrl”的查找位置。*/,
"types": ["vite/client"] /* 要包含在编译中的类型声明文件。 */,
"types": ["vite/client","vue"] /* 要包含在编译中的类型声明文件。 */,
"allowSyntheticDefaultImports": true /*允许从没有默认导出的模块进行默认导入。这不会影响代码生成,只会影响类型检查。*/,
"esModuleInterop": true /* 通过为所有导入创建命名空间对象,实现CommonJS和ES模块之间的发射互操作性。这意味着“允许合成默认导入”。 */,
"experimentalDecorators": true /*启用对ES7装饰器的实验性支持。 */,