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