index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. <template>
  2. <ContentWrap >
  3. <!-- 搜索工作栏 -->
  4. <el-form
  5. class="-mb-15px"
  6. :model="queryParams"
  7. ref="queryFormRef"
  8. :inline="true"
  9. label-width="68px"
  10. style="margin-left: 20px"
  11. >
  12. <el-form-item label="标本编号" prop="specimenNumber">
  13. <el-input
  14. v-model="queryParams.specimenNumber"
  15. placeholder="请输入标本编号"
  16. clearable
  17. @keyup.enter="handleQuery"
  18. class="!w-240px"
  19. />
  20. </el-form-item>
  21. <el-form-item label="中文名称" prop="chineseName">
  22. <el-input
  23. v-model="queryParams.chineseName"
  24. placeholder="请输入中文名称"
  25. clearable
  26. @keyup.enter="handleQuery"
  27. class="!w-240px"
  28. />
  29. </el-form-item>
  30. <!-- <el-form-item label="标本类型" prop="specimenType">-->
  31. <!-- <el-select-->
  32. <!-- v-model="queryParams.specimenType"-->
  33. <!-- placeholder="请选择标本类型(矿物、岩石矿石、化石、陨石)"-->
  34. <!-- clearable-->
  35. <!-- class="!w-240px"-->
  36. <!-- >-->
  37. <!-- <el-option-->
  38. <!-- v-for="dict in getIntDictOptions(DICT_TYPE.MUSEUMS_SPECIMEN_TYPE)"-->
  39. <!-- :key="dict.value"-->
  40. <!-- :label="dict.label"-->
  41. <!-- :value="dict.value"-->
  42. <!-- />-->
  43. <!-- </el-select>-->
  44. <!-- </el-form-item>-->
  45. <!-- <el-form-item label="资产号" prop="assetNumber">-->
  46. <!-- <el-input-->
  47. <!-- v-model="queryParams.assetNumber"-->
  48. <!-- placeholder="请输入资产号"-->
  49. <!-- clearable-->
  50. <!-- @keyup.enter="handleQuery"-->
  51. <!-- class="!w-240px"-->
  52. <!-- />-->
  53. <!-- </el-form-item>-->
  54. <!-- <el-form-item label="存放位置" prop="storageLocation">-->
  55. <!-- <el-input-->
  56. <!-- v-model="queryParams.storageLocation"-->
  57. <!-- placeholder="请输入存放位置"-->
  58. <!-- clearable-->
  59. <!-- @keyup.enter="handleQuery"-->
  60. <!-- class="!w-240px"-->
  61. <!-- />-->
  62. <!-- </el-form-item>-->
  63. <!-- <el-form-item label="英文名称" prop="englishName">-->
  64. <!-- <el-input-->
  65. <!-- v-model="queryParams.englishName"-->
  66. <!-- placeholder="请输入英文名称"-->
  67. <!-- clearable-->
  68. <!-- @keyup.enter="handleQuery"-->
  69. <!-- class="!w-240px"-->
  70. <!-- />-->
  71. <!-- </el-form-item>-->
  72. <el-form-item label="成分" prop="composition">
  73. <el-input
  74. v-model="queryParams.composition"
  75. placeholder="请输入成分"
  76. clearable
  77. @keyup.enter="handleQuery"
  78. class="!w-240px"
  79. />
  80. </el-form-item>
  81. <!-- <el-form-item label="产地" prop="origin">-->
  82. <!-- <el-input-->
  83. <!-- v-model="queryParams.origin"-->
  84. <!-- placeholder="请输入产地"-->
  85. <!-- clearable-->
  86. <!-- @keyup.enter="handleQuery"-->
  87. <!-- class="!w-240px"-->
  88. <!-- />-->
  89. <!-- </el-form-item>-->
  90. <el-form-item label="时代" prop="era">
  91. <el-input
  92. v-model="queryParams.era"
  93. placeholder="请输入时代"
  94. clearable
  95. @keyup.enter="handleQuery"
  96. class="!w-240px"
  97. />
  98. </el-form-item>
  99. <!-- <el-form-item label="保存地层" prop="preservedLayer">-->
  100. <!-- <el-input-->
  101. <!-- v-model="queryParams.preservedLayer"-->
  102. <!-- placeholder="请输入保存地层"-->
  103. <!-- clearable-->
  104. <!-- @keyup.enter="handleQuery"-->
  105. <!-- class="!w-240px"-->
  106. <!-- />-->
  107. <!-- </el-form-item>-->
  108. <!-- <el-form-item label="陨石类型" prop="meteoriteType">-->
  109. <!-- <el-input-->
  110. <!-- v-model="queryParams.meteoriteType"-->
  111. <!-- placeholder="请输入陨石类型"-->
  112. <!-- clearable-->
  113. <!-- @keyup.enter="handleQuery"-->
  114. <!-- class="!w-240px"-->
  115. <!-- />-->
  116. <!-- </el-form-item>-->
  117. <el-form-item label="国际命名" prop="internationalName">
  118. <el-input
  119. v-model="queryParams.internationalName"
  120. placeholder="请输入国际命名"
  121. clearable
  122. @keyup.enter="handleQuery"
  123. class="!w-240px"
  124. />
  125. </el-form-item>
  126. <!-- <el-form-item label="发现时间" prop="discoveryTime">-->
  127. <!-- <el-date-picker-->
  128. <!-- v-model="queryParams.discoveryTime"-->
  129. <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
  130. <!-- type="daterange"-->
  131. <!-- start-placeholder="开始日期"-->
  132. <!-- end-placeholder="结束日期"-->
  133. <!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
  134. <!-- class="!w-220px"-->
  135. <!-- />-->
  136. <!-- </el-form-item>-->
  137. <!-- <el-form-item label="降落时间" prop="fallTime">-->
  138. <!-- <el-date-picker-->
  139. <!-- v-model="queryParams.fallTime"-->
  140. <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
  141. <!-- type="daterange"-->
  142. <!-- start-placeholder="开始日期"-->
  143. <!-- end-placeholder="结束日期"-->
  144. <!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
  145. <!-- class="!w-220px"-->
  146. <!-- />-->
  147. <!-- </el-form-item>-->
  148. <el-form-item label="保存类型" prop="preservationType">
  149. <el-select
  150. v-model="queryParams.preservationType"
  151. placeholder="请选择保存类型(标本、光片、薄片模型及其他)"
  152. clearable
  153. class="!w-240px"
  154. >
  155. <el-option
  156. v-for="dict in getIntDictOptions(DICT_TYPE.MUSEUMS_SPECIMEN_INFO)"
  157. :key="dict.value"
  158. :label="dict.label"
  159. :value="dict.value"
  160. />
  161. </el-select>
  162. </el-form-item>
  163. <!-- <el-form-item label="尺寸" prop="size">-->
  164. <!-- <el-input-->
  165. <!-- v-model="queryParams.size"-->
  166. <!-- placeholder="请输入尺寸"-->
  167. <!-- clearable-->
  168. <!-- @keyup.enter="handleQuery"-->
  169. <!-- class="!w-240px"-->
  170. <!-- />-->
  171. <!-- </el-form-item>-->
  172. <!-- <el-form-item label="重量" prop="weight">-->
  173. <!-- <el-input-->
  174. <!-- v-model="queryParams.weight"-->
  175. <!-- placeholder="请输入重量"-->
  176. <!-- clearable-->
  177. <!-- @keyup.enter="handleQuery"-->
  178. <!-- class="!w-240px"-->
  179. <!-- />-->
  180. <!-- </el-form-item>-->
  181. <el-form-item label="来源" prop="source">
  182. <el-select
  183. v-model="queryParams.source"
  184. placeholder="请选择来源(采购、捐赠、采集)"
  185. clearable
  186. class="!w-240px"
  187. >
  188. <el-option
  189. v-for="dict in getIntDictOptions(DICT_TYPE. MUSEUMS_SOURCE)"
  190. :key="dict.value"
  191. :label="dict.label"
  192. :value="dict.value"
  193. />
  194. </el-select>
  195. </el-form-item>
  196. <!-- <el-form-item label="标本提供者" prop="provider">-->
  197. <!-- <el-input-->
  198. <!-- v-model="queryParams.provider"-->
  199. <!-- placeholder="请输入标本提供者(供应商、捐赠人、采集人)"-->
  200. <!-- clearable-->
  201. <!-- @keyup.enter="handleQuery"-->
  202. <!-- class="!w-240px"-->
  203. <!-- />-->
  204. <!-- </el-form-item>-->
  205. <el-form-item label="入藏时间" prop="acquisitionTime">
  206. <el-date-picker
  207. v-model="queryParams.acquisitionTime"
  208. value-format="YYYY-MM-DD HH:mm:ss"
  209. type="daterange"
  210. start-placeholder="开始日期"
  211. end-placeholder="结束日期"
  212. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  213. class="!w-220px"
  214. />
  215. </el-form-item>
  216. <el-form-item label="用途" prop="purpose">
  217. <el-input
  218. v-model="queryParams.purpose"
  219. placeholder="请输入用途"
  220. clearable
  221. @keyup.enter="handleQuery"
  222. class="!w-240px"
  223. />
  224. </el-form-item>
  225. <!-- <el-form-item label="馆藏状态" prop="collectionStatus">-->
  226. <!-- <el-select-->
  227. <!-- v-model="queryParams.collectionStatus"-->
  228. <!-- placeholder="请选择馆藏状态(在馆、借出)"-->
  229. <!-- clearable-->
  230. <!-- class="!w-240px"-->
  231. <!-- >-->
  232. <!-- <el-option-->
  233. <!-- v-for="dict in getIntDictOptions(DICT_TYPE.MUSEUMS_SPECIMEN_INFO)"-->
  234. <!-- :key="dict.value"-->
  235. <!-- :label="dict.label"-->
  236. <!-- :value="dict.value"-->
  237. <!-- />-->
  238. <!-- </el-select>-->
  239. <!-- </el-form-item>-->
  240. <!-- <el-form-item label="备注" prop="notes">-->
  241. <!-- <el-input-->
  242. <!-- v-model="queryParams.notes"-->
  243. <!-- placeholder="请输入备注"-->
  244. <!-- clearable-->
  245. <!-- @keyup.enter="handleQuery"-->
  246. <!-- class="!w-240px"-->
  247. <!-- />-->
  248. <!-- </el-form-item>-->
  249. <!-- <el-form-item label="图片名称" prop="imageName">-->
  250. <!-- <el-input-->
  251. <!-- v-model="queryParams.imageName"-->
  252. <!-- placeholder="请输入图片名称"-->
  253. <!-- clearable-->
  254. <!-- @keyup.enter="handleQuery"-->
  255. <!-- class="!w-240px"-->
  256. <!-- />-->
  257. <!-- </el-form-item>-->
  258. <!-- <el-form-item label="图片路径" prop="imagePath">-->
  259. <!-- <el-input-->
  260. <!-- v-model="queryParams.imagePath"-->
  261. <!-- placeholder="请输入图片路径"-->
  262. <!-- clearable-->
  263. <!-- @keyup.enter="handleQuery"-->
  264. <!-- class="!w-240px"-->
  265. <!-- />-->
  266. <!-- </el-form-item>-->
  267. <!-- <el-form-item label="创建时间" prop="createTime">-->
  268. <!-- <el-date-picker-->
  269. <!-- v-model="queryParams.createTime"-->
  270. <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
  271. <!-- type="daterange"-->
  272. <!-- start-placeholder="开始日期"-->
  273. <!-- end-placeholder="结束日期"-->
  274. <!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
  275. <!-- class="!w-220px"-->
  276. <!-- />-->
  277. <!-- </el-form-item>-->
  278. <!-- <el-form-item label="注销原因" prop="deletedReason">-->
  279. <!-- <el-input-->
  280. <!-- v-model="queryParams.deletedReason"-->
  281. <!-- placeholder="请输入注销原因"-->
  282. <!-- clearable-->
  283. <!-- @keyup.enter="handleQuery"-->
  284. <!-- class="!w-240px"-->
  285. <!-- />-->
  286. <!--&lt;!&ndash; </el-form-item>&ndash;&gt;-->
  287. <!-- <el-form-item label="入库操作员" prop="operator">-->
  288. <!-- <el-input-->
  289. <!-- v-model="queryParams.operator"-->
  290. <!-- placeholder="请输入入库操作员"-->
  291. <!-- clearable-->
  292. <!-- @keyup.enter="handleQuery"-->
  293. <!-- class="!w-240px"-->
  294. <!-- />-->
  295. <!-- </el-form-item>-->
  296. <!-- <el-form-item label="入库时间" prop="entryDate">-->
  297. <!-- <el-date-picker-->
  298. <!-- v-model="queryParams.entryDate"-->
  299. <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
  300. <!-- type="daterange"-->
  301. <!-- start-placeholder="开始日期"-->
  302. <!-- end-placeholder="结束日期"-->
  303. <!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
  304. <!-- class="!w-220px"-->
  305. <!-- />-->
  306. <!-- </el-form-item>-->
  307. <el-form-item>
  308. <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
  309. <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
  310. <el-button
  311. type="primary"
  312. plain
  313. @click="openForm('create')"
  314. v-hasPermi="['museums:specimen-info:create']"
  315. >
  316. <Icon icon="ep:plus" class="mr-5px" /> 新增
  317. </el-button>
  318. <el-button
  319. type="warning"
  320. plain
  321. @click="handleImport"
  322. v-hasPermi="['museums:specimen-info:import']"
  323. >
  324. <Icon icon="ep:upload" /> 导入信息
  325. </el-button>
  326. <el-button
  327. type="success"
  328. plain
  329. @click="handleExport"
  330. :loading="exportLoading"
  331. >
  332. <Icon icon="ep:download" class="mr-5px" /> 导出
  333. </el-button>
  334. </el-form-item>
  335. </el-form>
  336. </ContentWrap>
  337. <!-- 列表 -->
  338. <ContentWrap>
  339. <el-segmented block v-model="queryParams.specimenType" :options="options" size="large" @update:modelValue="handleSegmentedChange"/>
  340. <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
  341. <!-- <el-table-column label="序号" align="center" prop="id" />-->
  342. <el-table-column label="标本编号" align="center" prop="specimenNumber" />
  343. <el-table-column label="中文名称" align="center" prop="chineseName" />
  344. <el-table-column label="标本类型" align="center" prop="specimenType">
  345. <template #default="scope">
  346. <dict-tag :type="DICT_TYPE.MUSEUMS_SPECIMEN_TYPE" :value="scope.row.specimenType" />
  347. </template>
  348. </el-table-column>
  349. <!-- <el-table-column label="资产号" align="center" prop="assetNumber" />-->
  350. <el-table-column label="存放位置" align="center" prop="storageLocation" />
  351. <!-- <el-table-column label="英文名称" align="center" prop="englishName" />-->
  352. <!-- <el-table-column label="成分" align="center" prop="composition" />-->
  353. <!-- <el-table-column label="产地" align="center" prop="origin" />-->
  354. <!-- <el-table-column label="时代" align="center" prop="era" />-->
  355. <!-- <el-table-column label="保存地层" align="center" prop="preservedLayer" />-->
  356. <!-- <el-table-column label="陨石类型" align="center" prop="meteoriteType" />-->
  357. <!-- <el-table-column label="国际命名" align="center" prop="internationalName" />-->
  358. <!-- <el-table-column label="发现时间" align="center" prop="discoveryTime" />-->
  359. <!-- <el-table-column label="降落时间" align="center" prop="fallTime" />-->
  360. <el-table-column label="保存类型" align="center" prop="preservationType">
  361. <template #default="scope">
  362. <dict-tag :type="DICT_TYPE.MUSEUMS_SPECIMEN_INFO" :value="scope.row.preservationType" />
  363. </template>
  364. </el-table-column>
  365. <!-- <el-table-column label="尺寸" align="center" prop="size" />-->
  366. <!-- <el-table-column label="重量(g)" align="center" prop="weight" />-->
  367. <!-- <el-table-column label="来源" align="center" prop="source">-->
  368. <!-- <template #default="scope">-->
  369. <!-- <dict-tag :type="DICT_TYPE.MUSEUMS_SOURCE" :value="scope.row.source" />-->
  370. <!-- </template>-->
  371. <!-- </el-table-column>-->
  372. <!-- <el-table-column label="标本提供者(供应商、捐赠人、采集人)" align="center" prop="provider" />-->
  373. <!-- <el-table-column label="入藏时间" align="center" prop="acquisitionTime" />-->
  374. <!-- <el-table-column label="用途" align="center" prop="purpose" />-->
  375. <!-- <el-table-column label="描述" align="center" prop="description" />-->
  376. <el-table-column label="馆藏状态" align="center" prop="collectionStatus">
  377. <template #default="scope">
  378. <dict-tag :type="DICT_TYPE.MUSEUMS_COLLECTION_STATUS" :value="scope.row.collectionStatus" />
  379. </template>
  380. </el-table-column>
  381. <!-- <el-table-column label="备注" align="center" prop="notes" />-->
  382. <!-- <el-table-column label="图片名称" align="center" prop="imageName" />-->
  383. <el-table-column label="图片" align="center" prop="url" >
  384. <template #default="{ row }">
  385. <div class="demo-image__preview" v-if="queryParams" >
  386. <block v-for="(image, index) in row.imagePath" :key="index">
  387. <el-image
  388. style="width: 40px; height:40px;margin-right: 5px"
  389. class="h-80px w-80px"
  390. lazy
  391. :src="image"
  392. :preview-src-list="row.imagePath"
  393. preview-teleported
  394. fit="cover"
  395. />
  396. </block>
  397. </div>
  398. </template>
  399. </el-table-column>
  400. <!-- <el-table-column label="创建时间" align="center" prop="createTime" />-->
  401. <!-- <el-table-column label="注销原因" align="center" prop="deletedReason" />-->
  402. <!-- <el-table-column label="入库操作员" align="center" prop="operator" />-->
  403. <!-- <el-table-column-->
  404. <!-- label="入库时间"-->
  405. <!-- align="center"-->
  406. <!-- prop="entryDate"-->
  407. <!-- :formatter="dateFormatter"-->
  408. <!-- width="180px"-->
  409. <!-- />-->
  410. <el-table-column label="操作" align="center" min-width="150px" fixed="right">
  411. <template #default="scope">
  412. <el-button
  413. link
  414. @click="viewDetails(scope.row.id)"
  415. type="success"
  416. >查看</el-button>
  417. <el-button
  418. link
  419. type="primary"
  420. @click="openForm('update', scope.row.id)"
  421. v-hasPermi="['museums:specimen-info:update']"
  422. >
  423. 编辑
  424. </el-button>
  425. <el-button
  426. link
  427. type="danger"
  428. @click="handleDelete(scope.row.id)"
  429. v-hasPermi="['museums:specimen-info:delete']"
  430. >
  431. 删除
  432. </el-button>
  433. </template>
  434. </el-table-column>
  435. </el-table>
  436. <!-- 分页 -->
  437. <Pagination
  438. :total="total"
  439. v-model:page="queryParams.pageNo"
  440. v-model:limit="queryParams.pageSize"
  441. @pagination="getList"
  442. />
  443. </ContentWrap>
  444. <!-- 表单弹窗:添加/修改 -->
  445. <SpecimenInfoForm ref="formRef" @success="getList" />
  446. <SpecimenImportForm ref="importFormRef" @success="getList" />
  447. </template>
  448. <script setup lang="ts">
  449. import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
  450. import {dateFormatter, formatDate} from '@/utils/formatTime'
  451. import download from '@/utils/download'
  452. import { SpecimenInfoApi, SpecimenInfoVO } from '@/api/museums/specimeninfo'
  453. import SpecimenInfoForm from './SpecimenInfoForm.vue'
  454. import SpecimenImportForm from './SpecimenImportForm.vue'
  455. import ImageImportForm from './imageImportForm.vue'
  456. /** 标本管理 列表 */
  457. defineOptions({ name: 'SpecimenInfo' })
  458. const message = useMessage() // 消息弹窗
  459. const { t } = useI18n() // 国际化
  460. const options = [
  461. { label: '总表', value: '' },
  462. { label: '矿物', value: '0' },
  463. { label: '岩石', value: '1' },
  464. { label: '矿石', value: '2' },
  465. { label: '化石', value: '3' },
  466. { label: '陨石', value: '4' }
  467. ]
  468. const loading = ref(true) // 列表的加载中
  469. const list = ref<SpecimenInfoVO[]>([]) // 列表的数据
  470. const total = ref(0) // 列表的总页数
  471. const queryParams = reactive({
  472. pageNo: 1,
  473. pageSize: 10,
  474. specimenType:'',
  475. specimenNumber: undefined,
  476. assetNumber: undefined,
  477. storageLocation: undefined,
  478. chineseName: undefined,
  479. englishName: undefined,
  480. composition: undefined,
  481. origin: undefined,
  482. era: undefined,
  483. preservedLayer: undefined,
  484. meteoriteType: undefined,
  485. internationalName: undefined,
  486. discoveryTime: [],
  487. fallTime: [],
  488. preservationType: undefined,
  489. size: undefined,
  490. weight: undefined,
  491. source: undefined,
  492. provider: undefined,
  493. acquisitionTime: [],
  494. purpose: undefined,
  495. description: undefined,
  496. collectionStatus: undefined,
  497. notes: undefined,
  498. imageName: undefined,
  499. imagePath: undefined,
  500. createTime: [],
  501. deletedReason: undefined,
  502. operator: undefined,
  503. entryDate: []
  504. })
  505. const queryFormRef = ref() // 搜索的表单
  506. const exportLoading = ref(false) // 导出的加载中
  507. /** 查询列表 */
  508. const getList = async () => {
  509. loading.value = true
  510. try {
  511. const data = await SpecimenInfoApi.getSpecimenInfoPage(queryParams)
  512. list.value = data.list
  513. total.value = data.total
  514. console.log(data )
  515. } finally {
  516. loading.value = false
  517. }
  518. }
  519. /** 搜索按钮操作 */
  520. const handleQuery = () => {
  521. queryParams.pageNo = 1
  522. getList()
  523. }
  524. /** 重置按钮操作 */
  525. const resetQuery = () => {
  526. queryFormRef.value.resetFields()
  527. handleQuery()
  528. }
  529. /** 添加/修改操作 */
  530. const formRef = ref()
  531. const openForm = (type: string, id?: number) => {
  532. formRef.value.open(type, id)
  533. }
  534. /** 删除按钮操作 */
  535. const handleDelete = async (id: number) => {
  536. try {
  537. // 删除的二次确认
  538. await message.delConfirm()
  539. // 发起删除
  540. await SpecimenInfoApi.deleteSpecimenInfo(id)
  541. message.success(t('common.delSuccess'))
  542. // 刷新列表
  543. await getList()
  544. } catch {}
  545. }
  546. /** 批量导入 */
  547. const importFormRef = ref()
  548. const handleImport = () => {
  549. importFormRef.value.open()
  550. }
  551. /** 导出按钮操作 */
  552. const handleExport = async () => {
  553. try {
  554. // 导出的二次确认
  555. await message.exportConfirm()
  556. // 发起导出
  557. exportLoading.value = true
  558. const data = await SpecimenInfoApi.exportSpecimenInfo(queryParams)
  559. download.excel(data, '标本管理.xls')
  560. } catch {
  561. } finally {
  562. exportLoading.value = false
  563. }
  564. }
  565. /** 初始化 **/
  566. onMounted(() => {
  567. getList()
  568. })
  569. /** 查看页面 **/
  570. import { useRouter } from 'vue-router';
  571. import UserImportForm from "@/views/system/user/UserImportForm.vue";
  572. const router = useRouter();
  573. const viewDetails=(dataId: number) => {
  574. router.push({
  575. name: 'specimenDetails',
  576. query: {
  577. dataId: dataId,
  578. }
  579. })
  580. }
  581. /** 处理 el-segmented 变化事件 */
  582. const handleSegmentedChange = (value: string) => {
  583. queryParams.specimenType = value
  584. handleQuery()
  585. }
  586. </script>