Drugs.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div class="box">
  3. <BasicDialog :isOpen="data.dataDialogOpen" @close="data.dataDialogOpen = false">
  4. <!-- 自定义标题和内容 -->
  5. <template v-slot:header>{{data.dialogHeader}}</template>
  6. <template v-slot>
  7. <table >
  8. <tbody>
  9. <tr><td class="prop_header">ID</td><td class="prop_value">{{data.dialogContent['id']}}</td></tr>
  10. <tr><td class="prop_header">药品代码</td><td class="prop_value">{{data.dialogContent['drug_code']}}</td></tr>
  11. <tr><td class="prop_header">注册名</td><td class="prop_value">{{data.dialogContent['reg_name']}}</td></tr>
  12. <tr><td class="prop_header">商品名</td><td class="prop_value">{{data.dialogContent['prod_name']}}</td></tr>
  13. <tr><td class="prop_header">注册剂型</td><td class="prop_value">{{data.dialogContent['reg_dosage_form']}}</td></tr>
  14. <tr><td class="prop_header">商品剂型</td><td class="prop_value">{{data.dialogContent['act_dosage_form']}}</td></tr>
  15. <tr><td class="prop_header">注册规格</td><td class="prop_value">{{data.dialogContent['reg_spec']}}</td></tr>
  16. <tr><td class="prop_header">商品规格</td><td class="prop_value">{{data.dialogContent['act_spec']}}</td></tr>
  17. <tr><td class="prop_header">包装材料</td><td class="prop_value">{{data.dialogContent['pkg_mat']}}</td></tr>
  18. <tr><td class="prop_header">最小包装</td><td class="prop_value">{{data.dialogContent['min_pack_size']}}</td></tr>
  19. <tr><td class="prop_header">最小包装单位</td><td class="prop_value">{{data.dialogContent['min_pack_unit']}}</td></tr>
  20. <tr><td class="prop_header">最小用量单位</td><td class="prop_value">{{data.dialogContent['min_dosage_unit']}}</td></tr>
  21. <tr><td class="prop_header">生产厂商</td><td class="prop_value">{{data.dialogContent['prod_factory']}}</td></tr>
  22. <tr><td class="prop_header">准字</td><td class="prop_value">{{data.dialogContent['license_no']}}</td></tr>
  23. <tr><td class="prop_header">药品标准码</td><td class="prop_value">{{data.dialogContent['drug_std_code']}}</td></tr>
  24. <tr><td class="prop_header">分销厂商</td><td class="prop_value">{{data.dialogContent['subpkg_factory']}}</td></tr>
  25. <tr><td class="prop_header">销售状态</td><td class="prop_value">{{data.dialogContent['sales_status']}}</td></tr>
  26. <tr><td class="prop_header">社保名称</td><td class="prop_value">{{data.dialogContent['social_insurance_name']}}</td></tr>
  27. <tr><td class="prop_header">甲乙类</td><td class="prop_value">{{data.dialogContent['jiayi_category']}}</td></tr>
  28. <tr><td class="prop_header">社保剂型</td><td class="prop_value">{{data.dialogContent['social_dosage_form']}}</td></tr>
  29. <tr><td class="prop_header">序列号</td><td class="prop_value">{{data.dialogContent['serial_no']}}</td></tr>
  30. <tr><td class="prop_header">注释</td><td class="prop_value">{{data.dialogContent['comments']}}</td></tr>
  31. </tbody>
  32. </table>
  33. </template>
  34. </BasicDialog>
  35. <ActionBar @reset="resetParams" @refresh="refreshTable">
  36. <template #left>
  37. <h2>药品字典</h2>
  38. </template>
  39. <template #right>
  40. <el-input v-model="searchParams.name" placeholder="请输入ID" clearable />
  41. </template>
  42. </ActionBar>
  43. <el-table :data="tableData" style="width: 100%" max-height="calc(100vh - 270px)">
  44. <el-table-column prop="drug_code" label="Code"/>
  45. <el-table-column prop="reg_name" label="Name"/>
  46. <el-table-column prop="reg_dosage_form" label="Dosage Form"/>
  47. <el-table-column prop="reg_spec" label="Spec."/>
  48. <el-table-column prop="prod_factory" label="Prod. Factory"/>
  49. <el-table-column fixed="right" width="170">
  50. <template #header>
  51. <div style="display: flex;justify-content: center;align-items: center">
  52. <div style="margin-right: 10px">操作</div>
  53. </div>
  54. </template>
  55. <template #default="scope">
  56. <el-button type="primary" @click="handleEdit(scope.row)">
  57. 详细资料
  58. </el-button>
  59. </template>
  60. </el-table-column>
  61. </el-table>
  62. <Pagination ref="paginationRef" :params="searchParams" :reqFunc="paginationList" @pageData="setTableData" />
  63. </div>
  64. </template>
  65. <script setup lang="ts">
  66. import { reactive } from "vue";
  67. import BasicDialog from "@/components/BasicDialog.vue"
  68. import ActionBar from "@/components/ActionBar.vue";
  69. import Pagination from "@/components/Pagination.vue"
  70. import { paginationList,save } from "@/api/drugs/index.ts"
  71. import usePagination from "@/compositionApi/pagination.ts"
  72. const {searchParams, tableData, paginationRef, setTableData, refreshTable,resetParams} = usePagination();
  73. // const {tableFields} = useTableField()
  74. // const { openForm,rules,formDesc,submitForm ,editRef} = useFromEdit(refreshTable)
  75. const data = reactive({
  76. dataDialogOpen: false,
  77. dialogHeader: null,
  78. dialogContent: {},
  79. search: "",
  80. id: 0,
  81. });
  82. function handleEdit(row: any){
  83. data.id = row.id
  84. data.dialogHeader = row.reg_name;
  85. data.dialogContent = row;
  86. data.dataDialogOpen = true;
  87. }
  88. </script>
  89. <style lang="scss" scoped>
  90. .box {
  91. width: 100%;
  92. height: 100%;
  93. }
  94. .prop_header{
  95. background-color: #CDCDCD;
  96. font-weight: bold;
  97. }
  98. .prop_value{
  99. background-color: #adcddb;
  100. padding-left: 10px;
  101. }
  102. </style>