From 7951495e980a9e7db31e7dd127c1c4c9266bde34 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 07 三月 2025 14:23:15 +0800 Subject: [PATCH] 添加费用统计页面 --- src/views/business/costStatistics/index.vue | 118 +++++++++++++++++++++++++++++++++++++++ src/api/business/insOrderRates.js | 19 ++++++ 2 files changed, 137 insertions(+), 0 deletions(-) diff --git a/src/api/business/insOrderRates.js b/src/api/business/insOrderRates.js new file mode 100644 index 0000000..abe50f5 --- /dev/null +++ b/src/api/business/insOrderRates.js @@ -0,0 +1,19 @@ +// 璐圭敤缁熻椤甸潰鐩稿叧鎺ュ彛 +import request from '@/utils/request' + +// 鏌ヨ璁㈠崟鍒楄〃 +export function selectRatesPage(query) { + return request({ + url: '/insOrderRates/selectRatesPage', + method: 'get', + params: query + }) +} +// 鏌ヨ璁㈠崟璐圭敤璇︽儏 +export function selectRatesDetail(query) { + return request({ + url: '/insOrderRates/selectRatesDetail', + method: 'get', + params: query + }) +} diff --git a/src/views/business/costStatistics/index.vue b/src/views/business/costStatistics/index.vue new file mode 100644 index 0000000..6243ee8 --- /dev/null +++ b/src/views/business/costStatistics/index.vue @@ -0,0 +1,118 @@ +<template> + <div class="capacity-scope"> + <div class="search"> + <div> + <el-form :model="entity" ref="entity" size="small" :inline="true"> + <el-form-item label="鏍峰搧鍚嶇О" prop="sample"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="entity.sample" + @keyup.enter.native="refreshTable()"></el-input> + </el-form-item> + <el-form-item label="濮旀墭鍗曚綅" prop="company"> + <el-select @focus="getCompanyOptions" @change="refreshTable()" clearable + size="small" v-model="entity.company" style="width: 100%"> + <el-option v-for="item in companyOptions" :key="item.value" + :label="item.label" :value="item.label"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button> + </el-form-item> + </el-form> + </div> + </div> + <div> + <lims-table :tableData="tableData" :column="column" + :height="'calc(100vh - 250px)'" @pagination="pagination" + :page="page" :tableLoading="tableLoading"></lims-table> + </div> + </div> +</template> + +<script> +import limsTable from "@/components/Table/lims-table.vue"; +import {selectRatesPage} from "@/api/business/insOrderRates"; +import {selectCustomPageList} from "@/api/system/customer"; + +export default { + components: {limsTable}, + data() { + return { + entity: { + sample: null, + company: null, + }, + tableData: [], + tableLoading: false, + column: [ + { label: '涓嬪崟鏃堕棿', prop: 'createTime', width: 150 }, + { label: '濮旀墭缂栧彿', prop: 'entrustCode', width: 160 }, + { label: '鏍峰搧鍚嶇О', prop: 'sample', width: 160 }, + { label: '鏍峰搧鏁伴噺', prop: 'sampleNum' }, + { label: '濮旀墭鍗曚綅', prop: 'company' }, + { label: '濮旀墭浜�', prop: 'prepareUser' }, + { label: '鐢熶骇鍗曚綅', prop: 'production' }, + { label: '宸ョ▼鍚嶇О', prop: 'engineering' }, + { label: '宸ユ椂', prop: 'cost' } + ], + page: { + total: 0, + size: 10, + current: 1 + }, + companyOptions: [] + } + }, + mounted() { + this.refreshTable() + this.getCompanyOptions() + }, + methods :{ + refreshTable() { + this.tableLoading = true + selectRatesPage({ ...this.page, ...this.entity }).then(res => { + this.tableLoading = false + this.tableData = res.data.records + this.page.total = res.data.total + }).catch(err => { + this.tableLoading = false + }) + }, + // 閲嶇疆 + refresh() { + this.resetForm('entity') + this.refreshTable() + }, + // 鏌ヨ濮旀墭鍗曚綅涓嬫媺妗嗘暟鎹� + getCompanyOptions () { + selectCustomPageList({ + current: -1, + size: -1 + }).then(res => { + const list = res.data.records + this.companyOptions = [] + list.map((item) => { + const obj = Object.assign({ + value: item.id, + label: item.company, + }) + this.companyOptions.push(obj) + }) + }).catch(err => { }); + }, + // 鍒嗛〉鍒囨崲 + pagination(page) { + this.page.size = page.limit + this.refreshTable() + }, + } +} +</script> +<style scoped> +.search { + height: 46px; + display: flex; + justify-content: space-between; +} +</style> -- Gitblit v1.9.3