From 61955574b77ffa740802bb8b45836ab91cb5be55 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 06 一月 2026 20:34:53 +0800
Subject: [PATCH] fix: 完成设备远程监控,车辆信息采集审批页面编写,接口联调
---
src/views/environmentAccess/vehicleInfoAudit/index.vue | 499 +++++++++++++++++++++++++++++++++++++++++
src/api/environmentAccess/vehicleInfo.js | 48 ++++
src/views/equipmentManagement/ledger/index.vue | 93 ++++--
src/views/equipmentManagement/ledger/Form.vue | 43 +--
4 files changed, 623 insertions(+), 60 deletions(-)
diff --git a/src/api/environmentAccess/vehicleInfo.js b/src/api/environmentAccess/vehicleInfo.js
new file mode 100644
index 0000000..5b25f18
--- /dev/null
+++ b/src/api/environmentAccess/vehicleInfo.js
@@ -0,0 +1,48 @@
+import request from "@/utils/request";
+
+// 鏌ヨ杞﹁締淇℃伅鍒嗛〉鍒楄〃
+export function listVehicleInfo(query) {
+ return request({
+ // 涓ょ骇璺緞锛氭ā鍧� + 鍏蜂綋鍔熻兘鍚�
+ url: "/environmentAccess/vehicleInfoPage",
+ method: "get",
+ params: query,
+ });
+}
+
+// 鏂板杞﹁締淇℃伅
+export function addVehicleInfo(data) {
+ return request({
+ url: "/environmentAccess/vehicleInfoAdd",
+ method: "post",
+ data,
+ });
+}
+
+// 淇敼杞﹁締淇℃伅
+export function updateVehicleInfo(data) {
+ return request({
+ url: "/environmentAccess/vehicleInfoUpdate",
+ method: "put",
+ data,
+ });
+}
+
+// 鍒犻櫎杞﹁締淇℃伅锛堟敮鎸佹壒閲忥級
+export function delVehicleInfo(ids) {
+ return request({
+ url: "/environmentAccess/vehicleInfoDelete",
+ method: "delete",
+ data: ids,
+ });
+}
+
+// 瀹℃牳杞﹁締淇℃伅
+export function reviewVehicleInfo(data) {
+ return request({
+ // 瀹℃牳鍗曠嫭璧勬簮锛歷ehicleInfoReview
+ url: "/environmentAccess/vehicleInfoReview",
+ method: "post",
+ data,
+ });
+}
diff --git a/src/views/environmentAccess/vehicleInfoAudit/index.vue b/src/views/environmentAccess/vehicleInfoAudit/index.vue
new file mode 100644
index 0000000..924ca55
--- /dev/null
+++ b/src/views/environmentAccess/vehicleInfoAudit/index.vue
@@ -0,0 +1,499 @@
+<template>
+ <div class="app-container">
+ <div class="search_form">
+ <div>
+ <span class="search_title">杞︾墝鍙风爜锛�</span>
+ <el-input
+ v-model="searchForm.plateNo"
+ style="width: 240px"
+ placeholder="璇疯緭鍏ヨ溅鐗屽彿鐮�"
+ clearable
+ :prefix-icon="Search"
+ @change="handleQuery"
+ />
+ <el-button type="primary" @click="handleQuery" style="margin-left: 10px">
+ 鎼滅储
+ </el-button>
+ </div>
+ <div>
+ <el-button type="primary" @click="openForm('add')">鏂板</el-button>
+ <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
+ </div>
+ </div>
+
+ <div class="table_list">
+ <PIMTable
+ rowKey="id"
+ :column="tableColumn"
+ :tableData="tableData"
+ :page="page"
+ :isSelection="true"
+ :tableLoading="tableLoading"
+ @selection-change="handleSelectionChange"
+ @pagination="pagination"
+ />
+ </div>
+
+ <!-- 鏂板/缂栬緫杞﹁締淇℃伅寮圭獥 -->
+ <el-dialog
+ v-model="dialogVisible"
+ :title="operationType === 'add' ? '鏂板杞﹁締淇℃伅' : '缂栬緫杞﹁締淇℃伅'"
+ width="70%"
+ @close="closeFormDialog"
+ >
+ <el-form
+ ref="formRef"
+ :model="form"
+ :rules="rules"
+ label-width="140px"
+ label-position="top"
+ >
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="杞︾墝鍙风爜" prop="plateNo">
+ <el-input v-model="form.plateNo" placeholder="璇疯緭鍏ヨ溅鐗屽彿鐮�" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍙风墝棰滆壊" prop="plateColor">
+ <el-input v-model="form.plateColor" placeholder="璇疯緭鍏ュ彿鐗岄鑹�" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="杞﹁締绫诲瀷" prop="carType">
+ <el-input v-model="form.carType" placeholder="璇疯緭鍏ヨ溅杈嗙被鍨�" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="杞﹁締璇嗗埆浠g爜(VIN)" prop="carVin">
+ <el-input v-model="form.carVin" placeholder="璇疯緭鍏� VIN 鐮�" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="杞﹁締鍨嬪彿" prop="carModel">
+ <el-input v-model="form.carModel" placeholder="璇疯緭鍏ヨ溅杈嗗瀷鍙�" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍙戝姩鏈哄瀷鍙�" prop="engineModel">
+ <el-input v-model="form.engineModel" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍨嬪彿" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="鍙戝姩鏈虹敓浜у巶" prop="engineProductFactory">
+ <el-input v-model="form.engineProductFactory" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鐢熶骇鍘�" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍙戝姩鏈虹紪鍙�" prop="engineNo">
+ <el-input v-model="form.engineNo" placeholder="璇疯緭鍏ュ彂鍔ㄦ満缂栧彿" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="鎺掓斁鏍囧噯" prop="emissionStandard">
+ <el-input v-model="form.emissionStandard" placeholder="璇疯緭鍏ユ帓鏀炬爣鍑�" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="娉ㄥ唽鐧昏鏃ユ湡" prop="registeDate">
+ <el-date-picker
+ v-model="form.registeDate"
+ type="date"
+ style="width: 100%"
+ value-format="YYYY-MM-DD"
+ placeholder="璇烽�夋嫨娉ㄥ唽鐧昏鏃ユ湡"
+ clearable
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="浣跨敤鎬ц川" prop="natureOfUse">
+ <el-input v-model="form.natureOfUse" placeholder="璇疯緭鍏ヤ娇鐢ㄦ�ц川" clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鐕冩枡绫诲瀷" prop="fuelType">
+ <el-input v-model="form.fuelType" placeholder="璇疯緭鍏ョ噧鏂欑被鍨�" clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" @click="submitForm">纭</el-button>
+ <el-button @click="closeFormDialog">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+ <!-- 瀹℃牳寮圭獥 -->
+ <el-dialog
+ v-model="auditDialogVisible"
+ title="杞﹁締淇℃伅瀹℃牳"
+ width="500px"
+ @close="closeAuditDialog"
+ >
+ <el-form :model="auditForm" label-width="100px">
+ <el-form-item label="瀹℃牳缁撴灉" prop="status">
+ <el-radio-group v-model="auditForm.status">
+ <el-radio label="approved">閫氳繃</el-radio>
+ <el-radio label="rejected">涓嶉�氳繃</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="瀹℃牳鎰忚" prop="comment">
+ <el-input
+ v-model="auditForm.comment"
+ type="textarea"
+ :rows="3"
+ placeholder="璇疯緭鍏ュ鏍告剰瑙侊紙閫夊~锛�"
+ />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" @click="submitAudit">纭</el-button>
+ <el-button @click="closeAuditDialog">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script setup>
+import { ref, reactive } from "vue";
+import { Search } from "@element-plus/icons-vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+import PIMTable from "@/components/PIMTable/PIMTable.vue";
+import {
+ listVehicleInfo,
+ addVehicleInfo,
+ updateVehicleInfo,
+ delVehicleInfo,
+ reviewVehicleInfo,
+} from "@/api/environmentAccess/vehicleInfo";
+
+// 鏌ヨ鏉′欢
+const searchForm = reactive({
+ plateNo: "",
+});
+
+// 琛ㄦ牸鍒楅厤缃�
+const tableColumn = ref([
+ {
+ label: "杞︾墝鍙风爜",
+ prop: "plateNo",
+ align: "center",
+ width: 140,
+ },
+ {
+ label: "鍙风墝棰滆壊",
+ prop: "plateColor",
+ align: "center",
+ width: 100,
+ },
+ {
+ label: "杞﹁締绫诲瀷",
+ prop: "carType",
+ align: "center",
+ width: 120,
+ },
+ {
+ label: "杞﹁締璇嗗埆浠g爜(VIN)",
+ prop: "carVin",
+ align: "center",
+ minWidth: 200,
+ showOverflowTooltip: true,
+ },
+ {
+ label: "杞﹁締鍨嬪彿",
+ prop: "carModel",
+ align: "center",
+ width: 140,
+ },
+ {
+ label: "鍙戝姩鏈哄瀷鍙�",
+ prop: "engineModel",
+ align: "center",
+ width: 140,
+ },
+ {
+ label: "鍙戝姩鏈虹敓浜у巶",
+ prop: "engineProductFactory",
+ align: "center",
+ width: 160,
+ },
+ {
+ label: "鍙戝姩鏈虹紪鍙�",
+ prop: "engineNo",
+ align: "center",
+ width: 140,
+ },
+ {
+ label: "鎺掓斁鏍囧噯",
+ prop: "emissionStandard",
+ align: "center",
+ width: 120,
+ },
+ {
+ label: "娉ㄥ唽鐧昏鏃ユ湡",
+ prop: "registeDate",
+ align: "center",
+ width: 140,
+ },
+ {
+ label: "浣跨敤鎬ц川",
+ prop: "natureOfUse",
+ align: "center",
+ width: 120,
+ },
+ {
+ label: "鐕冩枡绫诲瀷",
+ prop: "fuelType",
+ align: "center",
+ width: 120,
+ },
+ {
+ label: "瀹℃牳鐘舵��",
+ prop: "reviewStatus",
+ align: "center",
+ dataType: "tag",
+ width: 120,
+ formatData: (value) => {
+ if (value === "approved") return "宸查�氳繃";
+ if (value === "rejected") return "鏈�氳繃";
+ if (value === "pending") return "寰呭鏍�";
+ return "鏈彁浜�";
+ },
+ formatType: (value) => {
+ if (value === "approved") return "success";
+ if (value === "rejected") return "danger";
+ if (value === "pending") return "warning";
+ return "";
+ },
+ },
+ {
+ dataType: "action",
+ label: "鎿嶄綔",
+ align: "center",
+ fixed: "right",
+ width: 220,
+ operation: [
+ {
+ name: "缂栬緫",
+ type: "text",
+ clickFun: (row) => openForm("edit", row),
+ },
+ {
+ name: "瀹℃牳",
+ type: "text",
+ clickFun: (row) => openAuditDialog(row),
+ },
+ {
+ name: "鍒犻櫎",
+ type: "text",
+ clickFun: (row) => deleteRow(row),
+ },
+ ],
+ },
+]);
+
+// 琛ㄦ牸鏁版嵁
+const tableData = ref([]);
+const tableLoading = ref(false);
+const selectedRows = ref([]);
+
+// 鍒嗛〉
+const page = reactive({
+ current: 1,
+ size: 10,
+ total: 0,
+});
+
+// 琛ㄥ崟鐩稿叧
+const dialogVisible = ref(false);
+const operationType = ref("add");
+const formRef = ref(null);
+const form = reactive(createEmptyForm());
+
+function createEmptyForm() {
+ return {
+ id: undefined,
+ plateNo: "",
+ plateColor: "",
+ carType: "",
+ carVin: "",
+ carModel: "",
+ engineModel: "",
+ engineProductFactory: "",
+ engineNo: "",
+ emissionStandard: "",
+ registeDate: "",
+ natureOfUse: "",
+ fuelType: "",
+ reviewStatus: "pending",
+ };
+}
+
+const rules = {
+ plateNo: [{ required: true, message: "璇疯緭鍏ヨ溅鐗屽彿鐮�", trigger: "blur" }],
+ carVin: [{ required: true, message: "璇疯緭鍏� VIN 鐮�", trigger: "blur" }],
+};
+
+// 瀹℃牳鐩稿叧
+const auditDialogVisible = ref(false);
+const currentAuditRow = ref(null);
+const auditForm = reactive({
+ status: "approved",
+ comment: "",
+});
+
+// 鏌ヨ
+function handleQuery() {
+ page.current = 1;
+ loadTableData();
+}
+
+// 鍔犺浇鏁版嵁
+function loadTableData() {
+ tableLoading.value = true;
+ listVehicleInfo({
+ pageNum: page.current,
+ pageSize: page.size,
+ ...searchForm,
+ })
+ .then((res) => {
+ const { records, total } = res.data;
+ tableData.value = records || [];
+ page.total = total || 0;
+ })
+ .finally(() => {
+ tableLoading.value = false;
+ });
+}
+
+// 鍒嗛〉鍙樺寲
+function pagination({ page: current, limit }) {
+ page.current = current;
+ page.size = limit;
+ loadTableData();
+}
+
+// 閫夋嫨琛�
+function handleSelectionChange(selection) {
+ selectedRows.value = selection;
+}
+
+// 鎵撳紑琛ㄥ崟
+function openForm(type, row) {
+ operationType.value = type;
+ if (type === "edit" && row) {
+ Object.assign(form, row);
+ } else {
+ Object.assign(form, createEmptyForm());
+ }
+ dialogVisible.value = true;
+}
+
+function closeFormDialog() {
+ dialogVisible.value = false;
+ formRef.value?.resetFields();
+}
+
+// 鎻愪氦琛ㄥ崟
+function submitForm() {
+ formRef.value?.validate((valid) => {
+ if (!valid) return;
+
+ const api = operationType.value === "add" ? addVehicleInfo : updateVehicleInfo;
+ api({ ...form })
+ .then(() => {
+ ElMessage.success(operationType.value === "add" ? "鏂板鎴愬姛" : "缂栬緫鎴愬姛");
+ dialogVisible.value = false;
+ loadTableData();
+ })
+ .catch(() => {});
+ });
+}
+
+// 鍒犻櫎鍗曟潯
+function deleteRow(row) {
+ ElMessageBox.confirm("纭鍒犻櫎璇ヨ溅杈嗕俊鎭悧锛�", "鎻愮ず", {
+ type: "warning",
+ })
+ .then(() => {
+ delVehicleInfo([row.id]).then(() => {
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ loadTableData();
+ });
+ })
+ .catch(() => {});
+}
+
+// 鎵归噺鍒犻櫎
+function handleDelete() {
+ if (!selectedRows.value.length) {
+ ElMessage.warning("璇峰厛閫夋嫨瑕佸垹闄ょ殑璁板綍");
+ return;
+ }
+ ElMessageBox.confirm("纭鍒犻櫎閫変腑鐨勮溅杈嗕俊鎭悧锛�", "鎻愮ず", {
+ type: "warning",
+ })
+ .then(() => {
+ const ids = selectedRows.value.map((item) => item.id);
+ delVehicleInfo(ids).then(() => {
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ loadTableData();
+ });
+ })
+ .catch(() => {});
+}
+
+// 鎵撳紑瀹℃牳寮圭獥
+function openAuditDialog(row) {
+ currentAuditRow.value = row;
+ auditForm.status = row.reviewStatus || "pending";
+ auditForm.comment = row.auditComment || "";
+ auditDialogVisible.value = true;
+}
+
+function closeAuditDialog() {
+ auditDialogVisible.value = false;
+}
+
+// 鎻愪氦瀹℃牳
+function submitAudit() {
+ if (!currentAuditRow.value) return;
+
+ reviewVehicleInfo({
+ id: currentAuditRow.value.id,
+ reviewStatus: auditForm.status,
+ auditComment: auditForm.comment,
+ })
+ .then(() => {
+ ElMessage.success("瀹℃牳瀹屾垚");
+ auditDialogVisible.value = false;
+ loadTableData();
+ })
+ .catch(() => {});
+}
+
+// 鍒濆鍖�
+loadTableData();
+</script>
+
+<style scoped lang="scss">
+.table_list {
+ margin-top: 20px;
+}
+</style>
+
diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue
index 0951fd8..4ec7c1a 100644
--- a/src/views/equipmentManagement/ledger/Form.vue
+++ b/src/views/equipmentManagement/ledger/Form.vue
@@ -1,24 +1,24 @@
<template>
- <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef">
+ <el-form :model="form" label-width="120px" :rules="formRules" ref="formRef">
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="璁惧鍚嶇О" prop="deviceName">
- <el-input v-model="form.deviceName" placeholder="璇疯緭鍏ヨ澶囧悕绉�" />
+ <el-form-item label="鐩戞帶璁惧鍚嶇О" prop="deviceName">
+ <el-input v-model="form.deviceName" placeholder="璇疯緭鍏ョ洃鎺ц澶囧悕绉�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="瑙勬牸鍨嬪彿" prop="deviceModel">
- <el-input v-model="form.deviceModel" :disabled="(form.deviceModel != null && operationType === 'edit')" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" />
+ <el-form-item label="娓╁害鐩戞祴鍙傛暟" prop="deviceModel">
+ <el-input v-model="form.deviceModel" :disabled="(form.deviceModel != null && operationType === 'edit')" placeholder="璇疯緭鍏ユ俯搴︾洃娴嬪弬鏁�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="渚涘簲鍟�" prop="supplierName">
- <el-input v-model="form.supplierName" placeholder="璇疯緭鍏ヤ緵搴斿晢" />
+ <el-form-item label="鍘嬪姏鐩戞祴鍙傛暟" prop="supplierName">
+ <el-input v-model="form.supplierName" placeholder="璇疯緭鍏ュ帇鍔涚洃娴嬪弬鏁�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍗曚綅" prop="unit">
- <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" />
+ <el-form-item label="鑳借�楃洃娴嬪弬鏁�" prop="unit">
+ <el-input v-model="form.unit" placeholder="璇疯緭鍏ヨ兘鑰楃洃娴嬪弬鏁�" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -31,17 +31,17 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍚◣鍗曚环" prop="taxIncludingPriceUnit">
+ <el-form-item label="鐩戞帶闃堝�间笂闄�" prop="taxIncludingPriceUnit">
<el-input-number :step="0.01" :min="0" style="width: 100%"
v-model="form.taxIncludingPriceUnit"
- placeholder="璇疯緭鍏ュ惈绋庡崟浠�"
+ placeholder="璇疯緭鍏ョ洃鎺ч槇鍊间笂闄�"
maxlength="10"
@change="mathNum"
/>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍚◣鎬讳环" prop="taxIncludingPriceTotal">
+ <el-form-item label="鐩戞帶闃堝�间笅闄�" prop="taxIncludingPriceTotal">
<el-input
v-model="form.taxIncludingPriceTotal"
placeholder="鑷姩鐢熸垚"
@@ -51,17 +51,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="绋庣巼(%)" prop="taxRate">
- <!-- <el-input
- v-model="form.taxRate"
- placeholder="璇疯緭鍏ョ◣鐜�"
- type="number"
- >
- <template #append> % </template>
- </el-input> -->
+ <el-form-item label="瀹炴椂鐩戞祴鍊�" prop="taxRate">
<el-select
v-model="form.taxRate"
- placeholder="璇烽�夋嫨"
+ placeholder="璇烽�夋嫨瀹炴椂鐩戞祴鍊�"
clearable
@change="mathNum"
>
@@ -72,7 +65,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="涓嶅惈绋庢�讳环" prop="unTaxIncludingPriceTotal">
+ <el-form-item label="绱鑳借��" prop="unTaxIncludingPriceTotal">
<el-input
v-model="form.unTaxIncludingPriceTotal"
placeholder="鑷姩鐢熸垚"
@@ -87,14 +80,14 @@
</el-form-item>
</el-col> -->
<el-col :span="12">
- <el-form-item label="褰曞叆鏃ユ湡" prop="createTime">
+ <el-form-item label="鐩戞帶鏃ユ湡" prop="createTime">
<el-date-picker
style="width: 100%"
v-model="form.createTime"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD HH:mm:ss"
type="date"
- placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
+ placeholder="璇烽�夋嫨鐩戞帶鏃ユ湡"
clearable
/>
</el-form-item>
@@ -165,7 +158,7 @@
const mathNum = () => {
if (!form.taxIncludingPriceUnit) {
- ElMessage.error("璇疯緭鍏ュ崟浠�");
+ ElMessage.error("璇疯緭鍏ョ洃鎺ч槇鍊间笂闄�");
return;
}
if (!form.number) {
diff --git a/src/views/equipmentManagement/ledger/index.vue b/src/views/equipmentManagement/ledger/index.vue
index decd235..6136760 100644
--- a/src/views/equipmentManagement/ledger/index.vue
+++ b/src/views/equipmentManagement/ledger/index.vue
@@ -1,47 +1,52 @@
<template>
<div class="app-container">
+ <!-- 椤甸潰鍔熻兘璇存槑锛屼粎浣滀负鎻忚堪锛屼笉浣滀负鍏蜂綋瀛楁 -->
<el-form :model="filters" :inline="true">
- <el-form-item label="璁惧鍚嶇О">
+ <!-- 鐩戞帶璁惧鍩虹淇℃伅绛涢�� -->
+ <el-form-item label="鐩戞帶璁惧鍚嶇О">
<el-input
v-model="filters.deviceName"
style="width: 240px"
- placeholder="璇疯緭鍏ヨ澶囧悕绉�"
+ placeholder="璇疯緭鍏ョ洃鎺ц澶囧悕绉�"
clearable
:prefix-icon="Search"
@change="getTableData"
/>
</el-form-item>
- <el-form-item label="瑙勬牸鍨嬪彿">
+ <!-- 娓╁害鐩戞祴瀛楁锛堣嫳鏂囧瓧娈� deviceModel 涓嶅彉锛� -->
+ <el-form-item label="娓╁害鐩戞祴鍙傛暟">
<el-input
v-model="filters.deviceModel"
style="width: 240px"
- placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+ placeholder="璇疯緭鍏ユ俯搴︾浉鍏崇洃娴嬪弬鏁�"
clearable
:prefix-icon="Search"
@change="getTableData"
/>
</el-form-item>
- <el-form-item label="渚涘簲鍟�">
+ <!-- 鍘嬪姏鐩戞祴瀛楁锛堣嫳鏂囧瓧娈� supplierName 涓嶅彉锛� -->
+ <el-form-item label="鍘嬪姏鐩戞祴鍙傛暟">
<el-input
v-model="filters.supplierName"
style="width: 240px"
- placeholder="璇疯緭鍏ヤ緵搴斿晢"
+ placeholder="璇疯緭鍏ュ帇鍔涚浉鍏崇洃娴嬪弬鏁�"
clearable
:prefix-icon="Search"
@change="getTableData"
/>
</el-form-item>
- <el-form-item label="鍗曚綅">
+ <!-- 鑳借�楃洃娴嬪瓧娈碉紙鑻辨枃瀛楁 unit 涓嶅彉锛� -->
+ <el-form-item label="鑳借�楃洃娴嬪弬鏁�">
<el-input
v-model="filters.unit"
style="width: 240px"
- placeholder="璇疯緭鍏ュ崟浣�"
+ placeholder="璇疯緭鍏ヨ兘鑰楃浉鍏崇洃娴嬪弬鏁�"
clearable
:prefix-icon="Search"
@change="getTableData"
/>
</el-form-item>
- <el-form-item label="褰曞叆鏃ユ湡:">
+ <el-form-item label="鐩戞帶鏃ユ湡:">
<el-date-picker v-model="filters.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
</el-form-item>
@@ -55,7 +60,7 @@
<div></div>
<div>
<el-button type="primary" @click="add" icon="Plus"> 鏂板 </el-button>
- <el-button @click="handleOut" icon="download">瀵煎嚭</el-button>
+ <!-- <el-button @click="handleOut" icon="download">瀵煎嚭</el-button> -->
<el-button
type="danger"
icon="Delete"
@@ -109,7 +114,8 @@
import {Search} from "@element-plus/icons-vue";
defineOptions({
- name: "璁惧鍙拌处",
+ // 椤甸潰鍔熻兘锛氳澶囪繙绋嬬洃鎺�
+ name: "璁惧杩滅▼鐩戞帶",
});
// 琛ㄦ牸澶氶�夋閫変腑椤�
@@ -140,22 +146,25 @@
},
[
{
- label: "璁惧鍚嶇О",
+ label: "鐩戞帶璁惧鍚嶇О",
align: "center",
prop: "deviceName",
},
{
- label: "瑙勬牸鍨嬪彿",
+ // 浣跨敤 deviceModel 瀛楁鎵胯浇娓╁害鐩戞祴鐩稿叧鍙傛暟
+ label: "娓╁害鐩戞祴鍙傛暟",
align: "center",
prop: "deviceModel",
},
{
- label: "渚涘簲鍟�",
+ // 浣跨敤 supplierName 瀛楁鎵胯浇鍘嬪姏鐩戞祴鐩稿叧鍙傛暟
+ label: "鍘嬪姏鐩戞祴鍙傛暟",
align: "center",
prop: "supplierName",
},
{
- label: "鍗曚綅",
+ // 浣跨敤 unit 瀛楁鎵胯浇鑳借�楃洃娴嬬浉鍏冲弬鏁�
+ label: "鑳借�楃洃娴嬪弬鏁�",
align: "center",
prop: "unit",
},
@@ -165,32 +174,36 @@
prop: "number",
},
{
- label: "鍚◣鍗曚环",
+ // 浣跨敤 taxIncludingPriceUnit 瀛楁鎵胯浇鐩戞帶闃堝�间笂闄�
+ label: "鐩戞帶闃堝�间笂闄�",
align: "center",
prop: "taxIncludingPriceUnit",
},
{
- label: "鍚◣鎬讳环",
+ // 浣跨敤 taxIncludingPriceTotal 瀛楁鎵胯浇鐩戞帶闃堝�间笅闄�
+ label: "鐩戞帶闃堝�间笅闄�",
align: "center",
prop: "taxIncludingPriceTotal",
},
{
- label: "绋庣巼",
+ // 浣跨敤 taxRate 瀛楁鍛堢幇瀹炴椂鐩戞祴鍊�/褰撳墠璇绘暟
+ label: "瀹炴椂鐩戞祴鍊�",
align: "center",
prop: "taxRate",
},
{
- label: "涓嶅惈绋庢�讳环",
+ // 浣跨敤 unTaxIncludingPriceTotal 瀛楁鎵胯浇绱鑳借��/鐩戞帶缁熻鍊�
+ label: "绱鑳借��",
align: "center",
prop: "unTaxIncludingPriceTotal",
},
{
- label: "褰曞叆浜�",
+ label: "鐩戞帶浜�",
align: "center",
prop: "createUser",
},
{
- label: "褰曞叆鏃ユ湡",
+ label: "鐩戞帶鏃ユ湡",
align: "center",
prop: "createTime",
},
@@ -208,13 +221,13 @@
edit(row.id)
},
},
- {
- name: "鐢熸垚浜岀淮鐮�",
- type: "text",
- clickFun: (row) => {
- showQRCode(row)
- },
- },
+ // {
+ // name: "鐢熸垚浜岀淮鐮�",
+ // type: "text",
+ // clickFun: (row) => {
+ // showQRCode(row)
+ // },
+ // },
],
},
]
@@ -285,7 +298,8 @@
type: "warning",
})
.then(() => {
- proxy.download(`/device/ledger/export`, {}, "璁惧鍙拌处妗f.xlsx");
+ // 瀵煎嚭鏂囦欢鍚嶆敼涓鸿澶囪繙绋嬬洃鎺�
+ proxy.download(`/device/ledger/export`, {}, "璁惧杩滅▼鐩戞帶.xlsx");
})
.catch(() => {
proxy.$modal.msg("宸插彇娑�");
@@ -308,12 +322,12 @@
};
onMounted(() => {
- filters.entryDate = [
- dayjs().format("YYYY-MM-DD"),
- dayjs().add(1, "day").format("YYYY-MM-DD"),
- ]
- filters.entryDateStart = dayjs().format("YYYY-MM-DD")
- filters.entryDateEnd = dayjs().add(1, "day").format("YYYY-MM-DD")
+ // filters.entryDate = [
+ // dayjs().format("YYYY-MM-DD"),
+ // dayjs().add(1, "day").format("YYYY-MM-DD"),
+ // ]
+ // filters.entryDateStart = dayjs().format("YYYY-MM-DD")
+ // filters.entryDateEnd = dayjs().add(1, "day").format("YYYY-MM-DD")
getTableData();
});
</script>
@@ -327,4 +341,13 @@
justify-content: space-between;
margin-bottom: 10px;
}
+
+.feature-desc {
+ margin-bottom: 16px;
+ padding: 10px 12px;
+ background: #f5f7fa;
+ border-radius: 4px;
+ color: #606266;
+ font-size: 13px;
+}
</style>
--
Gitblit v1.9.3