priceRepordCheck.vue 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div>
  3. <div class="pb-16 d-flex j-sb">
  4. <div>
  5. <div><searchTabs v-model="queryParams.auditStatus" @change="handleQuery" :list="tabs" key-label="name" key-value="type" key-count="num"></searchTabs></div>
  6. </div>
  7. <div>
  8. <el-button type="primary">全部通过</el-button>
  9. <el-button type="danger">全部不通过</el-button>
  10. </div>
  11. </div>
  12. <vxe-table :loading="loading" border :data="list">
  13. <!-- 序号 -->
  14. <vxe-column type="seq" width="60" title="序号" align="center" />
  15. <!-- 品名 -->
  16. <vxe-column title="品名" field="varietyName" min-width="100" :formatter="colNoData" />
  17. <!-- 规格 -->
  18. <vxe-column title="规格" field="specification" min-width="100" :formatter="colNoData" />
  19. <!-- 产地 -->
  20. <vxe-column title="产地价格(元/kg)" field="price" min-width="100" />
  21. <vxe-column title="对比近7天价格" min-width="100">
  22. <template #default="{ row }">{{ row.growthRate }}%</template>
  23. </vxe-column>
  24. <vxe-column title="积分" field="points" width="60" :formatter="colNoData" />
  25. <vxe-column title="上报人" field="createByName" width="100" :formatter="colNoData" />
  26. <vxe-column title="上报时间" field="createTime" min-width="100" :formatter="colNoData" />
  27. <vxe-column title="状态" fixed="right" width="110">
  28. <template #default="{ row }">
  29. <div :class="['c-res-' + row?.auditStatus]">{{ selectDictLabel(check_status, row?.auditStatus) }}</div>
  30. </template>
  31. </vxe-column>
  32. </vxe-table>
  33. </div>
  34. <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
  35. </template>
  36. <script setup name="priceRepordCheck" lang="ts">
  37. import { colNoData } from '@/utils/noData';
  38. import { listVipPayment } from '@/api/dgtmedicine/vipPayment/index';
  39. import { originPriceDetail, priceDetailCount } from '@/api/price/report';
  40. import { searchTabs } from '@/views/models';
  41. const { query }: any = useRoute()
  42. const router = useRouter();
  43. const { proxy } = getCurrentInstance() as ComponentInternalInstance;
  44. const { check_status } = toRefs<any>(proxy?.useDict('check_status'));
  45. // 字典
  46. const list = ref<any[]>([]);
  47. const loading = ref(true);
  48. const total = ref(0);
  49. const queryFormRef = ref<ElFormInstance>();
  50. const data = reactive<any>({
  51. queryParams: {
  52. pageNum: 1,
  53. pageSize: 10,
  54. auditStatus: '0'
  55. }
  56. });
  57. const { queryParams } = toRefs(data);
  58. /** 点击行上传发票 */
  59. /** 查询会员信息列表 */
  60. const getList = async () => {
  61. loading.value = true;
  62. const res = await originPriceDetail({ ...queryParams.value, originPriceId: query?.id, cpyid: query?.cpyid });
  63. list.value = res.rows;
  64. total.value = res.total;
  65. loading.value = false;
  66. };
  67. /** 搜索按钮操作 */
  68. const handleQuery = (level?: any) => {
  69. queryParams.value.pageNum = 1;
  70. getList();
  71. };
  72. /** 重置按钮操作 */
  73. const resetQuery = () => {
  74. queryFormRef.value?.resetFields();
  75. handleQuery();
  76. };
  77. // tabs count获取
  78. const tabs = ref<any>([]);
  79. const getTabs = async () => {
  80. const res = await priceDetailCount({ originPriceId: query?.id, cpyid: query?.cpyid });
  81. if (!res || res.code !== 200) return;
  82. tabs.value = res.data
  83. };
  84. onMounted(() => {
  85. getTabs();
  86. getList();
  87. });
  88. </script>