index.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <template>
  2. <div class="layout_display_flex_y">
  3. <div class="obviousBox" style="margin-bottom: 6px;">
  4. <searchArea :searchData="searchData" @submit="searchByForm"></searchArea>
  5. </div>
  6. <div class="layout_display_flex_y" style="height: 85%">
  7. <div style="background-color: #fff;padding: 8px">
  8. <el-button type="primary" icon="Plus" @click="onAddItem" style="margin-left: 5px">新增</el-button>
  9. </div>
  10. <el-table :data="tableData" border style="width: 100%" height="100%" stripe highlight-current-row
  11. class="ypClassTable normal-size">
  12. <el-table-column prop="warehousingSterileCode" label="入库单号">
  13. </el-table-column>
  14. <el-table-column prop="createTime" label="制单时间">
  15. </el-table-column>
  16. <el-table-column prop="userName" label="制单人员">
  17. </el-table-column>
  18. <el-table-column prop="approvalName" label="审核人">
  19. </el-table-column>
  20. <el-table-column prop="status" label="状态">
  21. <template v-slot="scope">
  22. <span>{{ scope.row.status == '-1' ? '草稿' : (scope.row.status == '0' ? "未审核" : "已审核") }}</span>
  23. </template>
  24. </el-table-column>
  25. <el-table-column fixed="right" label="操作" min-width="180" width="180" align="center">
  26. <template #default="scope">
  27. <el-button type="primary" size="small" @click="onEditItem(scope.row)">编辑</el-button>
  28. <el-button :type="'success'" size="small"
  29. @click.prevent="approval(scope.row)">
  30. 审核通过
  31. </el-button>
  32. </template>
  33. </el-table-column>
  34. </el-table>
  35. </div>
  36. <div>
  37. <el-pagination :current-page="pageNumber" :page-size="pageSize" :page-sizes="[10, 15, 20, 25]"
  38. :total="total" layout="total, sizes, prev, pager, next, jumper" style="margin-top: 5px"
  39. @size-change="handleSizeChange" @current-change="handleCurrentChange">
  40. </el-pagination>
  41. </div>
  42. </div>
  43. <el-dialog v-model="showDialog" :close-on-click-modal="false" :close-on-press-escape="false"
  44. :title="(currentEditId ? '编辑' : '新增') + '项目'" width="100%" destroy-on-close fullscreen
  45. @close="handleDialogClose">
  46. <!-- <YpPrintName :ypPrintNameDetail="ypPrintNameDetail" @closeYpPrintNameEditFor="closeYpPrintName" /> -->
  47. <info :currentEditId="currentEditId" @handleDialogClose="handleDialogClose" @init="init"></info>
  48. </el-dialog>
  49. </template>
  50. <script setup name="warehousing">
  51. import { ref, onMounted, nextTick } from 'vue'
  52. import { ElMessage, ElMessageBox } from 'element-plus'
  53. import { insertWarehousingSterile, getWarehousingSterileList } from '@/api/lc/sterile.js';
  54. import searchArea from '@/components/searchArea/index.vue';
  55. import info from '@/views/sterile/warehousing/info.vue';
  56. const searchData = ref([
  57. {
  58. label: '入库单号',
  59. key: 'warehousingSterileCode',
  60. type: 'input',
  61. value: '',
  62. }
  63. ])
  64. const pageSize = ref(10)
  65. const pageNumber = ref(1)
  66. const total = ref(0)
  67. const currentEditId = ref('')
  68. const tableData = ref([])
  69. const handleSizeChange = (val) => {
  70. pageSize.value = val
  71. init()
  72. }
  73. const handleCurrentChange = (val) => {
  74. pageNumber.value = val
  75. init()
  76. }
  77. let showDialog = ref(false)
  78. const init = (params) => {
  79. params = {
  80. ...params,
  81. ...searchForm.value,
  82. pageSize: pageSize.value,
  83. pageNumber: pageNumber.value
  84. }
  85. getWarehousingSterileList(params).then((res) => {
  86. total.value = res.total
  87. tableData.value = res.records
  88. }).catch((err) => {
  89. ElMessage.error(err)
  90. })
  91. }
  92. onMounted(() => {
  93. nextTick(() => {
  94. init()
  95. })
  96. })
  97. const searchForm = ref({})
  98. //搜索表单方法
  99. const searchByForm = (form) => {
  100. console.log("search", form)
  101. searchForm.value = form
  102. init()
  103. }
  104. const onEditItem = (row) => {
  105. currentEditId.value = row.id
  106. showDialog.value = true
  107. }
  108. const handleDialogClose = () => {
  109. currentEditId.value = ""
  110. showDialog.value = false
  111. }
  112. const approval = (row) => {
  113. ElMessageBox.confirm("是否确认审核通过", {
  114. cancelButtonText: '取消',
  115. confirmButtonText: '确定',
  116. type: 'warning',
  117. distinguishCancelAndClose: true,
  118. dangerouslyUseHTMLString: true
  119. }).then(() => {
  120. let params = { id: row.id, status: '1' }
  121. insertWarehousingSterile(params).then(res => {
  122. ElMessage.success('审核成功')
  123. init()
  124. }).catch(err => {
  125. // ElMessage.error(err.message)
  126. })
  127. }).catch((action) => {
  128. if (action === 'cancel') {
  129. }
  130. })
  131. }
  132. </script>
  133. <style lang="scss" deep>
  134. .el-dialog__body {
  135. // padding: 0 16px;
  136. // height: calc(100% - 25px);
  137. }
  138. .el-tabs {
  139. height: calc(100% - 27px);
  140. .el-tabs__content {
  141. padding: 5px;
  142. height: calc(100% - 27px);
  143. }
  144. .el-tab-pane {
  145. height: calc(100% - 27px);
  146. overflow: auto;
  147. }
  148. .el-table__inner-wrapper {
  149. height: calc(100% - 10px) !important;
  150. }
  151. }
  152. .el-table .warning-row {
  153. --el-table-tr-bg-color: #dd7694;
  154. }
  155. .search-select-pre {
  156. padding: 0 12px;
  157. color: var(--el-text-color-regular);
  158. background: var(--el-fill-color-light);
  159. border-right: 1px solid var(--el-border-color);
  160. --el-select-input-padding-left: '0'
  161. }
  162. </style>