ContractNumber.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <script setup lang="ts">
  2. import { ref } from 'vue'
  3. import { Storehouse_Contract_Out_List } from '@/api/storehouse/index'
  4. import Drawer from '@/components/Drawer/index.vue'
  5. import { GlobalStore } from '@/stores/index'
  6. import TableBase from '@/components/TableBase/index.vue'
  7. import { ColumnProps } from '@/components/TableBase/interface/index'
  8. const search = ref('')
  9. const globalStore = GlobalStore()
  10. const drawer = ref<InstanceType<typeof Drawer> | null>(null)
  11. const tableRef = ref<InstanceType<typeof TableBase> | null>(null)
  12. const Dialogcolumns: ColumnProps[] = [
  13. { type: 'index', label: '序号', width: 80 },
  14. { prop: 'T_number', label: '合同编号' },
  15. { prop: 'T_customer', label: '客户名称' },
  16. { prop: 'T_out', label: '出库状态', name: 'T_out' }
  17. ]
  18. const InitParam = {
  19. User_tokey: globalStore.GET_User_tokey,
  20. T_name: '',
  21. T_dept_leader: 1
  22. }
  23. const searchHandle = () => {
  24. InitParam.T_name = search.value
  25. tableRef.value?.searchTable()
  26. }
  27. /**
  28. * 获取信息
  29. */
  30. const getApproverInfo = (row: any) => {
  31. emit('onContactInfo', row)
  32. drawer.value?.closeDrawer()
  33. }
  34. const emit = defineEmits<{ (event: 'onContactInfo', value: any): void }>()
  35. const openDrawer = () => drawer.value?.openDrawer()
  36. defineExpose({
  37. openDrawer
  38. })
  39. </script>
  40. <template>
  41. <Drawer ref="drawer" size="50%">
  42. <template #header="{ params }">
  43. <h3 :id="params.titleId" :class="params.titleClass">合同编号</h3>
  44. </template>
  45. <TableBase
  46. ref="tableRef"
  47. :columns="Dialogcolumns"
  48. :initParam="InitParam"
  49. :requestApi="Storehouse_Contract_Out_List"
  50. layout="total, prev, pager, next"
  51. :rowClick="getApproverInfo"
  52. >
  53. <template #table-header>
  54. <el-row :gutter="20">
  55. <el-col :span="24" class="d-flex">
  56. <span class="inline-flex">合同编号:</span>
  57. <el-input v-model="search" type="text" placeholder="按合同编号搜索" />
  58. <el-button type="primary" @click="searchHandle">搜索</el-button>
  59. </el-col>
  60. </el-row>
  61. </template>
  62. <template #T_out="{ row }">
  63. <el-tag v-if="row.T_out === 2 || row.T_out === 3" type="success" effect="dark">
  64. {{ row.T_out === 2 ? '已部分出库' : '已全部出库' }}
  65. </el-tag>
  66. <el-tag v-else-if="row.T_out === 1" type="warning" effect="dark"> 未出库 </el-tag>
  67. <el-tag v-else type="danger" effect="dark"> --- </el-tag>
  68. </template>
  69. </TableBase>
  70. </Drawer>
  71. </template>
  72. <style scoped>
  73. .inline-flex {
  74. white-space: nowrap;
  75. }
  76. .d-flex {
  77. display: flex;
  78. align-items: center;
  79. }
  80. </style>