From d773f9777df29f5e17e45148326cbd784c328dac Mon Sep 17 00:00:00 2001
From: 幻雨堂 <13281837894@163.com>
Date: 星期五, 01 三月 2024 09:16:27 +0800
Subject: [PATCH] 交通指数
---
src/api/pcr/pcrData/types.ts | 221 ++++++++
src/views/ti/trafficIndex/index.vue | 307 ++++++-----
src/views/pcr/pcrData/index.vue | 356 +++++++++++++
src/api/scenery/sceneryOperationData/index.ts | 63 ++
src/api/scenery/sceneryOperationData/types.ts | 191 +++++++
src/api/pcr/pcrData/index.ts | 63 ++
src/views/scenery/sceneryOperationData/index.vue | 332 ++++++++++++
7 files changed, 1,393 insertions(+), 140 deletions(-)
diff --git a/src/api/pcr/pcrData/index.ts b/src/api/pcr/pcrData/index.ts
new file mode 100644
index 0000000..2cc1c7c
--- /dev/null
+++ b/src/api/pcr/pcrData/index.ts
@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { PcrDataVO, PcrDataForm, PcrDataQuery } from '@/api/pcr/pcrData/types';
+
+/**
+ * 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃
+ * @param query
+ * @returns {*}
+ */
+
+export const listPcrData = (query?: PcrDataQuery): AxiosPromise<PcrDataVO[]> => {
+ return request({
+ url: '/rs/pcrData/list',
+ method: 'get',
+ params: query
+ });
+};
+
+/**
+ * 鏌ヨ浜鸿溅璺熀纭�淇℃伅璇︾粏
+ * @param id
+ */
+export const getPcrData = (id: string | number): AxiosPromise<PcrDataVO> => {
+ return request({
+ url: '/rs/pcrData/' + id,
+ method: 'get'
+ });
+};
+
+/**
+ * 鏂板浜鸿溅璺熀纭�淇℃伅
+ * @param data
+ */
+export const addPcrData = (data: PcrDataForm) => {
+ return request({
+ url: '/rs/pcrData',
+ method: 'post',
+ data: data
+ });
+};
+
+/**
+ * 淇敼浜鸿溅璺熀纭�淇℃伅
+ * @param data
+ */
+export const updatePcrData = (data: PcrDataForm) => {
+ return request({
+ url: '/rs/pcrData',
+ method: 'put',
+ data: data
+ });
+};
+
+/**
+ * 鍒犻櫎浜鸿溅璺熀纭�淇℃伅
+ * @param id
+ */
+export const delPcrData = (id: string | number | Array<string | number>) => {
+ return request({
+ url: '/rs/pcrData/' + id,
+ method: 'delete'
+ });
+};
diff --git a/src/api/pcr/pcrData/types.ts b/src/api/pcr/pcrData/types.ts
new file mode 100644
index 0000000..e410e7c
--- /dev/null
+++ b/src/api/pcr/pcrData/types.ts
@@ -0,0 +1,221 @@
+export interface PcrDataVO {
+ /**
+ *
+ */
+ id: string | number;
+
+ /**
+ * 妯″潡鍚嶇О
+ */
+ modeName: string;
+
+ /**
+ * 鍛ㄦ湡
+ */
+ periodName: string;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ periodYear: string;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ periodMonth: number;
+
+ /**
+ * 鎸囨爣1鍚嶇О
+ */
+ indexOneName: string;
+
+ /**
+ * 鎸囨爣1鍊�
+ */
+ indexOneValue: number;
+
+ /**
+ * 鎸囨爣2鍚嶇О
+ */
+ indexTwoName: string;
+
+ /**
+ * 鎸囨爣2鍊�
+ */
+ indexTwoValue: number;
+
+ /**
+ * 鎸囨爣3鍚嶇О
+ */
+ indexThreeName: string;
+
+ /**
+ * 鎸囨爣3鍊�
+ */
+ indexThreeValue: number;
+
+ /**
+ * 鎸囨爣4鍚嶇О
+ */
+ indexFourName: string;
+
+ /**
+ * 鎸囨爣4鍊�
+ */
+ indexFourValue: number;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ status: number;
+
+}
+
+export interface PcrDataForm extends BaseEntity {
+ /**
+ *
+ */
+ id?: string | number;
+
+ /**
+ * 妯″潡鍚嶇О
+ */
+ modeName?: string;
+
+ /**
+ * 鍛ㄦ湡
+ */
+ periodName?: string;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ periodYear?: string;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ periodMonth?: number;
+
+ /**
+ * 鎸囨爣1鍚嶇О
+ */
+ indexOneName?: string;
+
+ /**
+ * 鎸囨爣1鍊�
+ */
+ indexOneValue?: number;
+
+ /**
+ * 鎸囨爣2鍚嶇О
+ */
+ indexTwoName?: string;
+
+ /**
+ * 鎸囨爣2鍊�
+ */
+ indexTwoValue?: number;
+
+ /**
+ * 鎸囨爣3鍚嶇О
+ */
+ indexThreeName?: string;
+
+ /**
+ * 鎸囨爣3鍊�
+ */
+ indexThreeValue?: number;
+
+ /**
+ * 鎸囨爣4鍚嶇О
+ */
+ indexFourName?: string;
+
+ /**
+ * 鎸囨爣4鍊�
+ */
+ indexFourValue?: number;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ status?: number;
+
+}
+
+export interface PcrDataQuery extends PageQuery {
+
+ /**
+ * 妯″潡鍚嶇О
+ */
+ modeName?: string;
+
+ /**
+ * 鍛ㄦ湡
+ */
+ periodName?: string;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ periodYear?: string;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ periodMonth?: number;
+
+ /**
+ * 鎸囨爣1鍚嶇О
+ */
+ indexOneName?: string;
+
+ /**
+ * 鎸囨爣1鍊�
+ */
+ indexOneValue?: number;
+
+ /**
+ * 鎸囨爣2鍚嶇О
+ */
+ indexTwoName?: string;
+
+ /**
+ * 鎸囨爣2鍊�
+ */
+ indexTwoValue?: number;
+
+ /**
+ * 鎸囨爣3鍚嶇О
+ */
+ indexThreeName?: string;
+
+ /**
+ * 鎸囨爣3鍊�
+ */
+ indexThreeValue?: number;
+
+ /**
+ * 鎸囨爣4鍚嶇О
+ */
+ indexFourName?: string;
+
+ /**
+ * 鎸囨爣4鍊�
+ */
+ indexFourValue?: number;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ status?: number;
+
+ /**
+ * 鏃ユ湡鑼冨洿鍙傛暟
+ */
+ params?: any;
+}
+
+
+
diff --git a/src/api/scenery/sceneryOperationData/index.ts b/src/api/scenery/sceneryOperationData/index.ts
new file mode 100644
index 0000000..144700e
--- /dev/null
+++ b/src/api/scenery/sceneryOperationData/index.ts
@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { SceneryOperationDataVO, SceneryOperationDataForm, SceneryOperationDataQuery } from '@/api/scenery/sceneryOperationData/types';
+
+/**
+ * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
+ * @param query
+ * @returns {*}
+ */
+
+export const listSceneryOperationData = (query?: SceneryOperationDataQuery): AxiosPromise<SceneryOperationDataVO[]> => {
+ return request({
+ url: '/sc/sceneryOperationData/list',
+ method: 'get',
+ params: query
+ });
+};
+
+/**
+ * 鏌ヨ鏅尯杩愯鏁版嵁璇︾粏
+ * @param id
+ */
+export const getSceneryOperationData = (id: string | number): AxiosPromise<SceneryOperationDataVO> => {
+ return request({
+ url: '/sc/sceneryOperationData/' + id,
+ method: 'get'
+ });
+};
+
+/**
+ * 鏂板鏅尯杩愯鏁版嵁
+ * @param data
+ */
+export const addSceneryOperationData = (data: SceneryOperationDataForm) => {
+ return request({
+ url: '/sc/sceneryOperationData',
+ method: 'post',
+ data: data
+ });
+};
+
+/**
+ * 淇敼鏅尯杩愯鏁版嵁
+ * @param data
+ */
+export const updateSceneryOperationData = (data: SceneryOperationDataForm) => {
+ return request({
+ url: '/sc/sceneryOperationData',
+ method: 'put',
+ data: data
+ });
+};
+
+/**
+ * 鍒犻櫎鏅尯杩愯鏁版嵁
+ * @param id
+ */
+export const delSceneryOperationData = (id: string | number | Array<string | number>) => {
+ return request({
+ url: '/sc/sceneryOperationData/' + id,
+ method: 'delete'
+ });
+};
diff --git a/src/api/scenery/sceneryOperationData/types.ts b/src/api/scenery/sceneryOperationData/types.ts
new file mode 100644
index 0000000..2473496
--- /dev/null
+++ b/src/api/scenery/sceneryOperationData/types.ts
@@ -0,0 +1,191 @@
+export interface SceneryOperationDataVO {
+ /**
+ * id
+ */
+ id: string | number;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ periodYear: number;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ periodMonth: number;
+
+ /**
+ * 杞︽祦閲�
+ */
+ carFlowNum: number;
+
+ /**
+ * 浜烘祦閲�
+ */
+ personFlowNum: number;
+
+ /**
+ * 娓稿棰勭害
+ */
+ visitorSubNum: number;
+
+ /**
+ * 鍏ュ洯浜烘暟
+ */
+ enterGardenNum: number;
+
+ /**
+ * 鍦ㄥ矖璀﹀姏
+ */
+ onPolice: number;
+
+ /**
+ * 鍦ㄥ矖璀﹁溅
+ */
+ onPaddyWagon: number;
+
+ /**
+ * 澶囧嫟璀﹀姏
+ */
+ standbyPolice: number;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ status: number;
+
+ /**
+ * 鏅尯id
+ */
+ scId: string | number;
+
+}
+
+export interface SceneryOperationDataForm extends BaseEntity {
+ /**
+ * id
+ */
+ id?: string | number;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ periodYear?: number;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ periodMonth?: number;
+
+ /**
+ * 杞︽祦閲�
+ */
+ carFlowNum?: number;
+
+ /**
+ * 浜烘祦閲�
+ */
+ personFlowNum?: number;
+
+ /**
+ * 娓稿棰勭害
+ */
+ visitorSubNum?: number;
+
+ /**
+ * 鍏ュ洯浜烘暟
+ */
+ enterGardenNum?: number;
+
+ /**
+ * 鍦ㄥ矖璀﹀姏
+ */
+ onPolice?: number;
+
+ /**
+ * 鍦ㄥ矖璀﹁溅
+ */
+ onPaddyWagon?: number;
+
+ /**
+ * 澶囧嫟璀﹀姏
+ */
+ standbyPolice?: number;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ status?: number;
+
+ /**
+ * 鏅尯id
+ */
+ scId?: string | number;
+
+}
+
+export interface SceneryOperationDataQuery extends PageQuery {
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ periodYear?: number;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ periodMonth?: number;
+
+ /**
+ * 杞︽祦閲�
+ */
+ carFlowNum?: number;
+
+ /**
+ * 浜烘祦閲�
+ */
+ personFlowNum?: number;
+
+ /**
+ * 娓稿棰勭害
+ */
+ visitorSubNum?: number;
+
+ /**
+ * 鍏ュ洯浜烘暟
+ */
+ enterGardenNum?: number;
+
+ /**
+ * 鍦ㄥ矖璀﹀姏
+ */
+ onPolice?: number;
+
+ /**
+ * 鍦ㄥ矖璀﹁溅
+ */
+ onPaddyWagon?: number;
+
+ /**
+ * 澶囧嫟璀﹀姏
+ */
+ standbyPolice?: number;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ status?: number;
+
+ /**
+ * 鏅尯id
+ */
+ scId?: string | number;
+
+ /**
+ * 鏃ユ湡鑼冨洿鍙傛暟
+ */
+ params?: any;
+}
+
+
+
diff --git a/src/views/pcr/pcrData/index.vue b/src/views/pcr/pcrData/index.vue
new file mode 100644
index 0000000..6df7cf1
--- /dev/null
+++ b/src/views/pcr/pcrData/index.vue
@@ -0,0 +1,356 @@
+<template>
+ <div class="p-2">
+ <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+ <div class="search" v-show="showSearch">
+ <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
+ <el-form-item label="妯″潡鍚嶇О" prop="modeName">
+ <el-input v-model="queryParams.modeName" placeholder="璇疯緭鍏ユā鍧楀悕绉�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡" prop="periodName">
+ <el-input v-model="queryParams.periodName" placeholder="璇疯緭鍏ュ懆鏈�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡骞�" prop="periodYear">
+ <el-input v-model="queryParams.periodYear" placeholder="璇疯緭鍏ュ懆鏈熷勾" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡鏈�" prop="periodMonth">
+ <el-input v-model="queryParams.periodMonth" placeholder="璇疯緭鍏ュ懆鏈熸湀" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣1鍚嶇О" prop="indexOneName">
+ <el-input v-model="queryParams.indexOneName" placeholder="璇疯緭鍏ユ寚鏍�1鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣1鍊�" prop="indexOneValue">
+ <el-input v-model="queryParams.indexOneValue" placeholder="璇疯緭鍏ユ寚鏍�1鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣2鍚嶇О" prop="indexTwoName">
+ <el-input v-model="queryParams.indexTwoName" placeholder="璇疯緭鍏ユ寚鏍�2鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣2鍊�" prop="indexTwoValue">
+ <el-input v-model="queryParams.indexTwoValue" placeholder="璇疯緭鍏ユ寚鏍�2鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣3鍚嶇О" prop="indexThreeName">
+ <el-input v-model="queryParams.indexThreeName" placeholder="璇疯緭鍏ユ寚鏍�3鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣3鍊�" prop="indexThreeValue">
+ <el-input v-model="queryParams.indexThreeValue" placeholder="璇疯緭鍏ユ寚鏍�3鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣4鍚嶇О" prop="indexFourName">
+ <el-input v-model="queryParams.indexFourName" placeholder="璇疯緭鍏ユ寚鏍�4鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣4鍊�" prop="indexFourValue">
+ <el-input v-model="queryParams.indexFourValue" placeholder="璇疯緭鍏ユ寚鏍�4鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ </transition>
+
+ <el-card shadow="never">
+ <template #header>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['rs:pcrData:add']">鏂板</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['rs:pcrData:edit']">淇敼</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['rs:pcrData:remove']">鍒犻櫎</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['rs:pcrData:export']">瀵煎嚭</el-button>
+ </el-col>
+ <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ </el-row>
+ </template>
+
+ <el-table v-loading="loading" :data="pcrDataList" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55" align="center" />
+ <el-table-column label="" align="center" prop="id" v-if="true" />
+ <el-table-column label="妯″潡鍚嶇О" align="center" prop="modeName" />
+ <el-table-column label="鍛ㄦ湡" align="center" prop="periodName" />
+ <el-table-column label="鍛ㄦ湡骞�" align="center" prop="periodYear" />
+ <el-table-column label="鍛ㄦ湡鏈�" align="center" prop="periodMonth" />
+ <el-table-column label="鎸囨爣1鍚嶇О" align="center" prop="indexOneName" />
+ <el-table-column label="鎸囨爣1鍊�" align="center" prop="indexOneValue" />
+ <el-table-column label="鎸囨爣2鍚嶇О" align="center" prop="indexTwoName" />
+ <el-table-column label="鎸囨爣2鍊�" align="center" prop="indexTwoValue" />
+ <el-table-column label="鎸囨爣3鍚嶇О" align="center" prop="indexThreeName" />
+ <el-table-column label="鎸囨爣3鍊�" align="center" prop="indexThreeValue" />
+ <el-table-column label="鎸囨爣4鍚嶇О" align="center" prop="indexFourName" />
+ <el-table-column label="鎸囨爣4鍊�" align="center" prop="indexFourValue" />
+ <el-table-column label="鐘舵�� 1鍚敤 0鏈惎鐢�" align="center" prop="status" />
+ <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-tooltip content="淇敼" placement="top">
+ <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['rs:pcrData:edit']"></el-button>
+ </el-tooltip>
+ <el-tooltip content="鍒犻櫎" placement="top">
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['rs:pcrData:remove']"></el-button>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total>0"
+ :total="total"
+ v-model:page="queryParams.pageNum"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-card>
+ <!-- 娣诲姞鎴栦慨鏀逛汉杞﹁矾鍩虹淇℃伅瀵硅瘽妗� -->
+ <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
+ <el-form ref="pcrDataFormRef" :model="form" :rules="rules" label-width="80px">
+ <el-form-item label="妯″潡鍚嶇О" prop="modeName">
+ <el-input v-model="form.modeName" placeholder="璇疯緭鍏ユā鍧楀悕绉�" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡" prop="periodName">
+ <el-input v-model="form.periodName" placeholder="璇疯緭鍏ュ懆鏈�" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡骞�" prop="periodYear">
+ <el-input v-model="form.periodYear" placeholder="璇疯緭鍏ュ懆鏈熷勾" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡鏈�" prop="periodMonth">
+ <el-input v-model="form.periodMonth" placeholder="璇疯緭鍏ュ懆鏈熸湀" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣1鍚嶇О" prop="indexOneName">
+ <el-input v-model="form.indexOneName" placeholder="璇疯緭鍏ユ寚鏍�1鍚嶇О" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣1鍊�" prop="indexOneValue">
+ <el-input v-model="form.indexOneValue" placeholder="璇疯緭鍏ユ寚鏍�1鍊�" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣2鍚嶇О" prop="indexTwoName">
+ <el-input v-model="form.indexTwoName" placeholder="璇疯緭鍏ユ寚鏍�2鍚嶇О" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣2鍊�" prop="indexTwoValue">
+ <el-input v-model="form.indexTwoValue" placeholder="璇疯緭鍏ユ寚鏍�2鍊�" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣3鍚嶇О" prop="indexThreeName">
+ <el-input v-model="form.indexThreeName" placeholder="璇疯緭鍏ユ寚鏍�3鍚嶇О" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣3鍊�" prop="indexThreeValue">
+ <el-input v-model="form.indexThreeValue" placeholder="璇疯緭鍏ユ寚鏍�3鍊�" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣4鍚嶇О" prop="indexFourName">
+ <el-input v-model="form.indexFourName" placeholder="璇疯緭鍏ユ寚鏍�4鍚嶇О" />
+ </el-form-item>
+ <el-form-item label="鎸囨爣4鍊�" prop="indexFourValue">
+ <el-input v-model="form.indexFourValue" placeholder="璇疯緭鍏ユ寚鏍�4鍊�" />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script setup name="PcrData" lang="ts">
+import { listPcrData, getPcrData, delPcrData, addPcrData, updatePcrData } from '@/api/pcr/pcrData';
+import { PcrDataVO, PcrDataQuery, PcrDataForm } from '@/api/pcr/pcrData/types';
+
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+
+const pcrDataList = ref<PcrDataVO[]>([]);
+const buttonLoading = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref<Array<string | number>>([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+
+const queryFormRef = ref<ElFormInstance>();
+const pcrDataFormRef = ref<ElFormInstance>();
+
+const dialog = reactive<DialogOption>({
+ visible: false,
+ title: ''
+});
+
+const initFormData: PcrDataForm = {
+ id: undefined,
+ modeName: undefined,
+ periodName: undefined,
+ periodYear: undefined,
+ periodMonth: undefined,
+ indexOneName: undefined,
+ indexOneValue: undefined,
+ indexTwoName: undefined,
+ indexTwoValue: undefined,
+ indexThreeName: undefined,
+ indexThreeValue: undefined,
+ indexFourName: undefined,
+ indexFourValue: undefined,
+ status: undefined,
+}
+const data = reactive<PageData<PcrDataForm, PcrDataQuery>>({
+ form: {...initFormData},
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ modeName: undefined,
+ periodName: undefined,
+ periodYear: undefined,
+ periodMonth: undefined,
+ indexOneName: undefined,
+ indexOneValue: undefined,
+ indexTwoName: undefined,
+ indexTwoValue: undefined,
+ indexThreeName: undefined,
+ indexThreeValue: undefined,
+ indexFourName: undefined,
+ indexFourValue: undefined,
+ status: undefined,
+ params: {
+ }
+ },
+ rules: {
+ id: [
+ { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ modeName: [
+ { required: true, message: "妯″潡鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ periodName: [
+ { required: true, message: "鍛ㄦ湡涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ periodYear: [
+ { required: true, message: "鍛ㄦ湡骞翠笉鑳戒负绌�", trigger: "blur" }
+ ],
+ periodMonth: [
+ { required: true, message: "鍛ㄦ湡鏈堜笉鑳戒负绌�", trigger: "blur" }
+ ],
+ indexOneName: [
+ { required: true, message: "鎸囨爣1鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ indexOneValue: [
+ { required: true, message: "鎸囨爣1鍊间笉鑳戒负绌�", trigger: "blur" }
+ ],
+ indexTwoName: [
+ { required: true, message: "鎸囨爣2鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ indexTwoValue: [
+ { required: true, message: "鎸囨爣2鍊间笉鑳戒负绌�", trigger: "blur" }
+ ],
+ indexThreeName: [
+ { required: true, message: "鎸囨爣3鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ indexThreeValue: [
+ { required: true, message: "鎸囨爣3鍊间笉鑳戒负绌�", trigger: "blur" }
+ ],
+ indexFourName: [
+ { required: true, message: "鎸囨爣4鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ indexFourValue: [
+ { required: true, message: "鎸囨爣4鍊间笉鑳戒负绌�", trigger: "blur" }
+ ],
+ status: [
+ { required: true, message: "鐘舵�� 1鍚敤 0鏈惎鐢ㄤ笉鑳戒负绌�", trigger: "change" }
+ ],
+ }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃 */
+const getList = async () => {
+ loading.value = true;
+ const res = await listPcrData(queryParams.value);
+ pcrDataList.value = res.rows;
+ total.value = res.total;
+ loading.value = false;
+}
+
+/** 鍙栨秷鎸夐挳 */
+const cancel = () => {
+ reset();
+ dialog.visible = false;
+}
+
+/** 琛ㄥ崟閲嶇疆 */
+const reset = () => {
+ form.value = {...initFormData};
+ pcrDataFormRef.value?.resetFields();
+}
+
+/** 鎼滅储鎸夐挳鎿嶄綔 */
+const handleQuery = () => {
+ queryParams.value.pageNum = 1;
+ getList();
+}
+
+/** 閲嶇疆鎸夐挳鎿嶄綔 */
+const resetQuery = () => {
+ queryFormRef.value?.resetFields();
+ handleQuery();
+}
+
+/** 澶氶�夋閫変腑鏁版嵁 */
+const handleSelectionChange = (selection: PcrDataVO[]) => {
+ ids.value = selection.map(item => item.id);
+ single.value = selection.length != 1;
+ multiple.value = !selection.length;
+}
+
+/** 鏂板鎸夐挳鎿嶄綔 */
+const handleAdd = () => {
+ reset();
+ dialog.visible = true;
+ dialog.title = "娣诲姞浜鸿溅璺熀纭�淇℃伅";
+}
+
+/** 淇敼鎸夐挳鎿嶄綔 */
+const handleUpdate = async (row?: PcrDataVO) => {
+ reset();
+ const _id = row?.id || ids.value[0]
+ const res = await getPcrData(_id);
+ Object.assign(form.value, res.data);
+ dialog.visible = true;
+ dialog.title = "淇敼浜鸿溅璺熀纭�淇℃伅";
+}
+
+/** 鎻愪氦鎸夐挳 */
+const submitForm = () => {
+ pcrDataFormRef.value?.validate(async (valid: boolean) => {
+ if (valid) {
+ buttonLoading.value = true;
+ if (form.value.id) {
+ await updatePcrData(form.value).finally(() => buttonLoading.value = false);
+ } else {
+ await addPcrData(form.value).finally(() => buttonLoading.value = false);
+ }
+ proxy?.$modal.msgSuccess("淇敼鎴愬姛");
+ dialog.visible = false;
+ await getList();
+ }
+ });
+}
+
+/** 鍒犻櫎鎸夐挳鎿嶄綔 */
+const handleDelete = async (row?: PcrDataVO) => {
+ const _ids = row?.id || ids.value;
+ await proxy?.$modal.confirm('鏄惁纭鍒犻櫎浜鸿溅璺熀纭�淇℃伅缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').finally(() => loading.value = false);
+ await delPcrData(_ids);
+ proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ await getList();
+}
+
+/** 瀵煎嚭鎸夐挳鎿嶄綔 */
+const handleExport = () => {
+ proxy?.download('rs/pcrData/export', {
+ ...queryParams.value
+ }, `pcrData_${new Date().getTime()}.xlsx`)
+}
+
+onMounted(() => {
+ getList();
+});
+</script>
diff --git a/src/views/scenery/sceneryOperationData/index.vue b/src/views/scenery/sceneryOperationData/index.vue
new file mode 100644
index 0000000..805829f
--- /dev/null
+++ b/src/views/scenery/sceneryOperationData/index.vue
@@ -0,0 +1,332 @@
+<template>
+ <div class="p-2">
+ <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+ <div class="search" v-show="showSearch">
+ <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
+ <el-form-item label="鍛ㄦ湡骞�" prop="periodYear">
+ <el-input v-model="queryParams.periodYear" placeholder="璇疯緭鍏ュ懆鏈熷勾" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡鏈�" prop="periodMonth">
+ <el-input v-model="queryParams.periodMonth" placeholder="璇疯緭鍏ュ懆鏈熸湀" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="杞︽祦閲�" prop="carFlowNum">
+ <el-input v-model="queryParams.carFlowNum" placeholder="璇疯緭鍏ヨ溅娴侀噺" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="浜烘祦閲�" prop="personFlowNum">
+ <el-input v-model="queryParams.personFlowNum" placeholder="璇疯緭鍏ヤ汉娴侀噺" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="娓稿棰勭害" prop="visitorSubNum">
+ <el-input v-model="queryParams.visitorSubNum" placeholder="璇疯緭鍏ユ父瀹㈤绾�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍏ュ洯浜烘暟" prop="enterGardenNum">
+ <el-input v-model="queryParams.enterGardenNum" placeholder="璇疯緭鍏ュ叆鍥汉鏁�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍦ㄥ矖璀﹀姏" prop="onPolice">
+ <el-input v-model="queryParams.onPolice" placeholder="璇疯緭鍏ュ湪宀楄鍔�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鍦ㄥ矖璀﹁溅" prop="onPaddyWagon">
+ <el-input v-model="queryParams.onPaddyWagon" placeholder="璇疯緭鍏ュ湪宀楄杞�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="澶囧嫟璀﹀姏" prop="standbyPolice">
+ <el-input v-model="queryParams.standbyPolice" placeholder="璇疯緭鍏ュ鍕よ鍔�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item label="鏅尯id" prop="scId">
+ <el-input v-model="queryParams.scId" placeholder="璇疯緭鍏ユ櫙鍖篿d" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ </transition>
+
+ <el-card shadow="never">
+ <template #header>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['rs:sceneryOperationData:add']">鏂板</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['rs:sceneryOperationData:edit']">淇敼</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['rs:sceneryOperationData:remove']">鍒犻櫎</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['rs:sceneryOperationData:export']">瀵煎嚭</el-button>
+ </el-col>
+ <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ </el-row>
+ </template>
+
+ <el-table v-loading="loading" :data="sceneryOperationDataList" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55" align="center" />
+ <el-table-column label="id" align="center" prop="id" v-if="true" />
+ <el-table-column label="鍛ㄦ湡骞�" align="center" prop="periodYear" />
+ <el-table-column label="鍛ㄦ湡鏈�" align="center" prop="periodMonth" />
+ <el-table-column label="杞︽祦閲�" align="center" prop="carFlowNum" />
+ <el-table-column label="浜烘祦閲�" align="center" prop="personFlowNum" />
+ <el-table-column label="娓稿棰勭害" align="center" prop="visitorSubNum" />
+ <el-table-column label="鍏ュ洯浜烘暟" align="center" prop="enterGardenNum" />
+ <el-table-column label="鍦ㄥ矖璀﹀姏" align="center" prop="onPolice" />
+ <el-table-column label="鍦ㄥ矖璀﹁溅" align="center" prop="onPaddyWagon" />
+ <el-table-column label="澶囧嫟璀﹀姏" align="center" prop="standbyPolice" />
+ <el-table-column label="鐘舵�� 1鍚敤 0鏈惎鐢�" align="center" prop="status" />
+ <el-table-column label="鏅尯id" align="center" prop="scId" />
+ <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-tooltip content="淇敼" placement="top">
+ <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['rs:sceneryOperationData:edit']"></el-button>
+ </el-tooltip>
+ <el-tooltip content="鍒犻櫎" placement="top">
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['rs:sceneryOperationData:remove']"></el-button>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total>0"
+ :total="total"
+ v-model:page="queryParams.pageNum"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-card>
+ <!-- 娣诲姞鎴栦慨鏀规櫙鍖鸿繍琛屾暟鎹璇濇 -->
+ <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
+ <el-form ref="sceneryOperationDataFormRef" :model="form" :rules="rules" label-width="80px">
+ <el-form-item label="鍛ㄦ湡骞�" prop="periodYear">
+ <el-input v-model="form.periodYear" placeholder="璇疯緭鍏ュ懆鏈熷勾" />
+ </el-form-item>
+ <el-form-item label="鍛ㄦ湡鏈�" prop="periodMonth">
+ <el-input v-model="form.periodMonth" placeholder="璇疯緭鍏ュ懆鏈熸湀" />
+ </el-form-item>
+ <el-form-item label="杞︽祦閲�" prop="carFlowNum">
+ <el-input v-model="form.carFlowNum" placeholder="璇疯緭鍏ヨ溅娴侀噺" />
+ </el-form-item>
+ <el-form-item label="浜烘祦閲�" prop="personFlowNum">
+ <el-input v-model="form.personFlowNum" placeholder="璇疯緭鍏ヤ汉娴侀噺" />
+ </el-form-item>
+ <el-form-item label="娓稿棰勭害" prop="visitorSubNum">
+ <el-input v-model="form.visitorSubNum" placeholder="璇疯緭鍏ユ父瀹㈤绾�" />
+ </el-form-item>
+ <el-form-item label="鍏ュ洯浜烘暟" prop="enterGardenNum">
+ <el-input v-model="form.enterGardenNum" placeholder="璇疯緭鍏ュ叆鍥汉鏁�" />
+ </el-form-item>
+ <el-form-item label="鍦ㄥ矖璀﹀姏" prop="onPolice">
+ <el-input v-model="form.onPolice" placeholder="璇疯緭鍏ュ湪宀楄鍔�" />
+ </el-form-item>
+ <el-form-item label="鍦ㄥ矖璀﹁溅" prop="onPaddyWagon">
+ <el-input v-model="form.onPaddyWagon" placeholder="璇疯緭鍏ュ湪宀楄杞�" />
+ </el-form-item>
+ <el-form-item label="澶囧嫟璀﹀姏" prop="standbyPolice">
+ <el-input v-model="form.standbyPolice" placeholder="璇疯緭鍏ュ鍕よ鍔�" />
+ </el-form-item>
+ <el-form-item label="鏅尯id" prop="scId">
+ <el-input v-model="form.scId" placeholder="璇疯緭鍏ユ櫙鍖篿d" />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script setup name="SceneryOperationData" lang="ts">
+import { listSceneryOperationData, getSceneryOperationData, delSceneryOperationData, addSceneryOperationData, updateSceneryOperationData } from '@/api/scenery/sceneryOperationData';
+import { SceneryOperationDataVO, SceneryOperationDataQuery, SceneryOperationDataForm } from '@/api/scenery/sceneryOperationData/types';
+
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+
+const sceneryOperationDataList = ref<SceneryOperationDataVO[]>([]);
+const buttonLoading = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref<Array<string | number>>([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+
+const queryFormRef = ref<ElFormInstance>();
+const sceneryOperationDataFormRef = ref<ElFormInstance>();
+
+const dialog = reactive<DialogOption>({
+ visible: false,
+ title: ''
+});
+
+const initFormData: SceneryOperationDataForm = {
+ id: undefined,
+ periodYear: undefined,
+ periodMonth: undefined,
+ carFlowNum: undefined,
+ personFlowNum: undefined,
+ visitorSubNum: undefined,
+ enterGardenNum: undefined,
+ onPolice: undefined,
+ onPaddyWagon: undefined,
+ standbyPolice: undefined,
+ status: undefined,
+ scId: undefined
+}
+const data = reactive<PageData<SceneryOperationDataForm, SceneryOperationDataQuery>>({
+ form: {...initFormData},
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ periodYear: undefined,
+ periodMonth: undefined,
+ carFlowNum: undefined,
+ personFlowNum: undefined,
+ visitorSubNum: undefined,
+ enterGardenNum: undefined,
+ onPolice: undefined,
+ onPaddyWagon: undefined,
+ standbyPolice: undefined,
+ status: undefined,
+ scId: undefined,
+ params: {
+ }
+ },
+ rules: {
+ id: [
+ { required: true, message: "id涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ periodYear: [
+ { required: true, message: "鍛ㄦ湡骞翠笉鑳戒负绌�", trigger: "blur" }
+ ],
+ periodMonth: [
+ { required: true, message: "鍛ㄦ湡鏈堜笉鑳戒负绌�", trigger: "blur" }
+ ],
+ carFlowNum: [
+ { required: true, message: "杞︽祦閲忎笉鑳戒负绌�", trigger: "blur" }
+ ],
+ personFlowNum: [
+ { required: true, message: "浜烘祦閲忎笉鑳戒负绌�", trigger: "blur" }
+ ],
+ visitorSubNum: [
+ { required: true, message: "娓稿棰勭害涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ enterGardenNum: [
+ { required: true, message: "鍏ュ洯浜烘暟涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ onPolice: [
+ { required: true, message: "鍦ㄥ矖璀﹀姏涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ onPaddyWagon: [
+ { required: true, message: "鍦ㄥ矖璀﹁溅涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ standbyPolice: [
+ { required: true, message: "澶囧嫟璀﹀姏涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ status: [
+ { required: true, message: "鐘舵�� 1鍚敤 0鏈惎鐢ㄤ笉鑳戒负绌�", trigger: "change" }
+ ],
+ scId: [
+ { required: true, message: "鏅尯id涓嶈兘涓虹┖", trigger: "blur" }
+ ]
+ }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃 */
+const getList = async () => {
+ loading.value = true;
+ const res = await listSceneryOperationData(queryParams.value);
+ sceneryOperationDataList.value = res.rows;
+ total.value = res.total;
+ loading.value = false;
+}
+
+/** 鍙栨秷鎸夐挳 */
+const cancel = () => {
+ reset();
+ dialog.visible = false;
+}
+
+/** 琛ㄥ崟閲嶇疆 */
+const reset = () => {
+ form.value = {...initFormData};
+ sceneryOperationDataFormRef.value?.resetFields();
+}
+
+/** 鎼滅储鎸夐挳鎿嶄綔 */
+const handleQuery = () => {
+ queryParams.value.pageNum = 1;
+ getList();
+}
+
+/** 閲嶇疆鎸夐挳鎿嶄綔 */
+const resetQuery = () => {
+ queryFormRef.value?.resetFields();
+ handleQuery();
+}
+
+/** 澶氶�夋閫変腑鏁版嵁 */
+const handleSelectionChange = (selection: SceneryOperationDataVO[]) => {
+ ids.value = selection.map(item => item.id);
+ single.value = selection.length != 1;
+ multiple.value = !selection.length;
+}
+
+/** 鏂板鎸夐挳鎿嶄綔 */
+const handleAdd = () => {
+ reset();
+ dialog.visible = true;
+ dialog.title = "娣诲姞鏅尯杩愯鏁版嵁";
+}
+
+/** 淇敼鎸夐挳鎿嶄綔 */
+const handleUpdate = async (row?: SceneryOperationDataVO) => {
+ reset();
+ const _id = row?.id || ids.value[0]
+ const res = await getSceneryOperationData(_id);
+ Object.assign(form.value, res.data);
+ dialog.visible = true;
+ dialog.title = "淇敼鏅尯杩愯鏁版嵁";
+}
+
+/** 鎻愪氦鎸夐挳 */
+const submitForm = () => {
+ sceneryOperationDataFormRef.value?.validate(async (valid: boolean) => {
+ if (valid) {
+ buttonLoading.value = true;
+ if (form.value.id) {
+ await updateSceneryOperationData(form.value).finally(() => buttonLoading.value = false);
+ } else {
+ await addSceneryOperationData(form.value).finally(() => buttonLoading.value = false);
+ }
+ proxy?.$modal.msgSuccess("淇敼鎴愬姛");
+ dialog.visible = false;
+ await getList();
+ }
+ });
+}
+
+/** 鍒犻櫎鎸夐挳鎿嶄綔 */
+const handleDelete = async (row?: SceneryOperationDataVO) => {
+ const _ids = row?.id || ids.value;
+ await proxy?.$modal.confirm('鏄惁纭鍒犻櫎鏅尯杩愯鏁版嵁缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').finally(() => loading.value = false);
+ await delSceneryOperationData(_ids);
+ proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ await getList();
+}
+
+/** 瀵煎嚭鎸夐挳鎿嶄綔 */
+const handleExport = () => {
+ proxy?.download('sc/sceneryOperationData/export', {
+ ...queryParams.value
+ }, `sceneryOperationData_${new Date().getTime()}.xlsx`)
+}
+
+onMounted(() => {
+ getList();
+});
+</script>
diff --git a/src/views/ti/trafficIndex/index.vue b/src/views/ti/trafficIndex/index.vue
index 8ffc918..b58e411 100644
--- a/src/views/ti/trafficIndex/index.vue
+++ b/src/views/ti/trafficIndex/index.vue
@@ -1,143 +1,149 @@
<template>
<div class="p-2">
- <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
- <div class="search" v-show="showSearch">
- <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
- <el-form-item label="妯″潡鍚嶇О" prop="modeName">
- <el-input v-model="queryParams.modeName" placeholder="璇疯緭鍏ユā鍧楀悕绉�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣1鍚嶇О" prop="targetOneName">
- <el-input v-model="queryParams.targetOneName" placeholder="璇疯緭鍏ユ寚鏍�1鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣1鍊�" prop="targetOneValue">
- <el-input v-model="queryParams.targetOneValue" placeholder="璇疯緭鍏ユ寚鏍�1鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣1鍗曚綅" prop="targetOneUnit">
- <el-input v-model="queryParams.targetOneUnit" placeholder="璇疯緭鍏ユ寚鏍�1鍗曚綅" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣1涓婃诞鎴栦笅闄嶅��" prop="targetOneCompareValue">
- <el-input v-model="queryParams.targetOneCompareValue" placeholder="璇疯緭鍏ユ寚鏍�1涓婃诞鎴栦笅闄嶅��" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣2鍚嶇О" prop="targetTwoName">
- <el-input v-model="queryParams.targetTwoName" placeholder="璇疯緭鍏ユ寚鏍�2鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣2鍊�" prop="targetTwoValue">
- <el-input v-model="queryParams.targetTwoValue" placeholder="璇疯緭鍏ユ寚鏍�2鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣2鍗曚綅" prop="targetTwoUnit">
- <el-input v-model="queryParams.targetTwoUnit" placeholder="璇疯緭鍏ユ寚鏍�2鍗曚綅" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣2涓婃诞鎴栦笅闄嶅��" prop="targetTwoCompareValue">
- <el-input v-model="queryParams.targetTwoCompareValue" placeholder="璇疯緭鍏ユ寚鏍�2涓婃诞鎴栦笅闄嶅��" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣3鍚嶇О" prop="targetThreeName">
- <el-input v-model="queryParams.targetThreeName" placeholder="璇疯緭鍏ユ寚鏍�3鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣3鍊�" prop="targetThreeValue">
- <el-input v-model="queryParams.targetThreeValue" placeholder="璇疯緭鍏ユ寚鏍�3鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣3鍗曚綅" prop="targetThreeUnit">
- <el-input v-model="queryParams.targetThreeUnit" placeholder="璇疯緭鍏ユ寚鏍�3鍗曚綅" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣3涓婃诞鎴栦笅闄嶅��" prop="targetThreeCompareValue">
- <el-input v-model="queryParams.targetThreeCompareValue" placeholder="璇疯緭鍏ユ寚鏍�3涓婃诞鎴栦笅闄嶅��" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣4鍚嶇О" prop="targetFourName">
- <el-input v-model="queryParams.targetFourName" placeholder="璇疯緭鍏ユ寚鏍�4鍚嶇О" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣4鍊�" prop="targetFourValue">
- <el-input v-model="queryParams.targetFourValue" placeholder="璇疯緭鍏ユ寚鏍�4鍊�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣4鍗曚綅" prop="targetFourUnit">
- <el-input v-model="queryParams.targetFourUnit" placeholder="璇疯緭鍏ユ寚鏍�4鍗曚綅" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎸囨爣4涓婃诞鎴栦笅闄嶅��" prop="targetFourCompareValue">
- <el-input v-model="queryParams.targetFourCompareValue" placeholder="璇疯緭鍏ユ寚鏍�4涓婃诞鎴栦笅闄嶅��" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鍛ㄦ湡 1 鏈� 2骞�" prop="periodName">
- <el-input v-model="queryParams.periodName" placeholder="璇疯緭鍏ュ懆鏈� 1 鏈� 2骞�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鍛ㄦ湡鍊�" prop="periodValue">
- <el-input v-model="queryParams.periodValue" placeholder="璇疯緭鍏ュ懆鏈熷��" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="0鏈垹闄� 1宸插垹闄�" prop="del">
- <el-input v-model="queryParams.del" placeholder="璇疯緭鍏�0鏈垹闄� 1宸插垹闄�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- </div>
- </transition>
+ <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+ <el-tab-pane label="浜ら�氭寚鏁�" name="first"></el-tab-pane>
+ <el-tab-pane label="閰嶇疆" name="second"></el-tab-pane>
+ </el-tabs>
+ <div v-show="activeName=='first'">
+ <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+ <el-form ref="form" :model="form" label-width="80px">
+ 缁熻鍛ㄦ湡
+ <el-select v-model="form.year" placeholder="璇烽�夋嫨骞翠唤">
+ <el-option label="2024骞�" value="2024" />
+ <el-option label="2023骞�" value="2023" />
+ <el-option label="2022骞�" value="2022" />
+ </el-select>
+ <el-select v-model="form.month" placeholder="璇烽�夋嫨鏈堜唤">
+ <el-option label="12鏈�" value="12" />
+ <el-option label="11鏈�" value="11" />
+ <el-option label="10鏈�" value="10" />
+ </el-select>
+ 鐘舵��
+ <el-select v-model="form.status" placeholder="璇烽�夋嫨鐘舵��">
+ <el-option label="鍏ㄩ儴" value="0" />
+ <el-option label="宸插惎鐢�" value="1" />
+ <el-option label="宸茬鐢�" value="2" />
+ </el-select>
+
+ <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+
+ </el-form>
+ </transition>
- <el-card shadow="never">
- <template #header>
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
- <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['rs:trafficIndex:add']">鏂板</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['rs:trafficIndex:edit']">淇敼</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['rs:trafficIndex:remove']">鍒犻櫎</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['rs:trafficIndex:export']">瀵煎嚭</el-button>
- </el-col>
- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
- </el-row>
- </template>
-
- <el-table v-loading="loading" :data="trafficIndexList" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" align="center" />
- <el-table-column label="涓婚敭id" align="center" prop="id" v-if="true" />
- <el-table-column label="妯″潡鍚嶇О" align="center" prop="modeName" />
- <el-table-column label="鎸囨爣1鍚嶇О" align="center" prop="targetOneName" />
- <el-table-column label="鎸囨爣1鍊�" align="center" prop="targetOneValue" />
- <el-table-column label="鎸囨爣1鍗曚綅" align="center" prop="targetOneUnit" />
- <el-table-column label="鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetOneStatus" />
- <el-table-column label="鎸囨爣1涓婃诞鎴栦笅闄嶅��" align="center" prop="targetOneCompareValue" />
- <el-table-column label="鎸囨爣2鍚嶇О" align="center" prop="targetTwoName" />
- <el-table-column label="鎸囨爣2鍊�" align="center" prop="targetTwoValue" />
- <el-table-column label="鎸囨爣2鍗曚綅" align="center" prop="targetTwoUnit" />
- <el-table-column label="鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetTwoStatus" />
- <el-table-column label="鎸囨爣2涓婃诞鎴栦笅闄嶅��" align="center" prop="targetTwoCompareValue" />
- <el-table-column label="鎸囨爣3鍚嶇О" align="center" prop="targetThreeName" />
- <el-table-column label="鎸囨爣3鍊�" align="center" prop="targetThreeValue" />
- <el-table-column label="鎸囨爣3鍗曚綅" align="center" prop="targetThreeUnit" />
- <el-table-column label="鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetThreeStatus" />
- <el-table-column label="鎸囨爣3涓婃诞鎴栦笅闄嶅��" align="center" prop="targetThreeCompareValue" />
- <el-table-column label="鎸囨爣4鍚嶇О" align="center" prop="targetFourName" />
- <el-table-column label="鎸囨爣4鍊�" align="center" prop="targetFourValue" />
- <el-table-column label="鎸囨爣4鍗曚綅" align="center" prop="targetFourUnit" />
- <el-table-column label="鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetFourStatus" />
- <el-table-column label="鎸囨爣4涓婃诞鎴栦笅闄嶅��" align="center" prop="targetFourCompareValue" />
- <el-table-column label="鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�" align="center" prop="status" />
- <el-table-column label="鍛ㄦ湡 1 鏈� 2骞�" align="center" prop="periodName" />
- <el-table-column label="鍛ㄦ湡鍊�" align="center" prop="periodValue" />
- <el-table-column label="0鏈垹闄� 1宸插垹闄�" align="center" prop="del" />
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
- <template #default="scope">
- <el-tooltip content="淇敼" placement="top">
- <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['rs:trafficIndex:edit']"></el-button>
- </el-tooltip>
- <el-tooltip content="鍒犻櫎" placement="top">
- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['rs:trafficIndex:remove']"></el-button>
- </el-tooltip>
+ <el-card shadow="never">
+ <template #header>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['rs:trafficIndex:add']">鏂板</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['rs:trafficIndex:edit']">淇敼</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['rs:trafficIndex:remove']">鍒犻櫎</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['rs:trafficIndex:export']">瀵煎嚭</el-button>
+ </el-col>
+ <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ </el-row>
</template>
- </el-table-column>
- </el-table>
- <pagination
- v-show="total>0"
- :total="total"
- v-model:page="queryParams.pageNum"
- v-model:limit="queryParams.pageSize"
- @pagination="getList"
- />
- </el-card>
+ <el-table v-loading="loading" :data="trafficIndexList" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55" align="center" />
+ <el-table-column label="搴忓彿" type="index" width="50"/>
+ <el-table-column label="妯″潡鍚嶇О" align="center" prop="modeName" />
+ <el-table-column label="鎸囨爣1鍚嶇О" align="center" prop="targetOneName" />
+ <el-table-column label="鎸囨爣1鍊�" align="center" prop="targetOneValue" />
+ <el-table-column label="鎸囨爣1鍗曚綅" align="center" prop="targetOneUnit" />
+ <el-table-column label="鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetOneStatus" />
+ <el-table-column label="鎸囨爣1涓婃诞鎴栦笅闄嶅��" align="center" prop="targetOneCompareValue" />
+ <el-table-column label="鎸囨爣2鍚嶇О" align="center" prop="targetTwoName" />
+ <el-table-column label="鎸囨爣2鍊�" align="center" prop="targetTwoValue" />
+ <el-table-column label="鎸囨爣2鍗曚綅" align="center" prop="targetTwoUnit" />
+ <el-table-column label="鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetTwoStatus" />
+ <el-table-column label="鎸囨爣2涓婃诞鎴栦笅闄嶅��" align="center" prop="targetTwoCompareValue" />
+ <el-table-column label="鎸囨爣3鍚嶇О" align="center" prop="targetThreeName" />
+ <el-table-column label="鎸囨爣3鍊�" align="center" prop="targetThreeValue" />
+ <el-table-column label="鎸囨爣3鍗曚綅" align="center" prop="targetThreeUnit" />
+ <el-table-column label="鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetThreeStatus" />
+ <el-table-column label="鎸囨爣3涓婃诞鎴栦笅闄嶅��" align="center" prop="targetThreeCompareValue" />
+ <el-table-column label="鎸囨爣4鍚嶇О" align="center" prop="targetFourName" />
+ <el-table-column label="鎸囨爣4鍊�" align="center" prop="targetFourValue" />
+ <el-table-column label="鎸囨爣4鍗曚綅" align="center" prop="targetFourUnit" />
+ <el-table-column label="鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷" align="center" prop="targetFourStatus" />
+ <el-table-column label="鎸囨爣4涓婃诞鎴栦笅闄嶅��" align="center" prop="targetFourCompareValue" />
+ <el-table-column label="鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�" align="center" prop="status" />
+ <el-table-column label="鍛ㄦ湡 1 鏈� 2骞�" align="center" prop="periodName" />
+ <el-table-column label="鍛ㄦ湡鍊�" align="center" prop="periodValue" />
+ <el-table-column label="0鏈垹闄� 1宸插垹闄�" align="center" prop="del" />
+ <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-tooltip content="淇敼" placement="top">
+ <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['rs:trafficIndex:edit']"></el-button>
+ </el-tooltip>
+ <el-tooltip content="鍒犻櫎" placement="top">
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['rs:trafficIndex:remove']"></el-button>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total>0"
+ :total="total"
+ v-model:page="queryParams.pageNum"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-card>
+ </div>
+ <div v-show="activeName=='second'">
+ <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+ <div class="search" v-show="showSearch">
+ <el-upload
+ action="#"
+ list-type="picture-card"
+ :auto-upload="false">
+ <i slot="default" class="el-icon-plus"></i>
+ <div slot="file" slot-scope="{file}">
+ <img
+ class="el-upload-list__item-thumbnail"
+ :src="file.url" alt=""
+ >
+ <span class="el-upload-list__item-actions">
+ <span
+ class="el-upload-list__item-preview"
+ @click="handlePictureCardPreview(file)"
+ >
+ <i class="el-icon-zoom-in"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleDownload(file)"
+ >
+ <i class="el-icon-download"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleRemove(file)"
+ >
+ <i class="el-icon-delete"></i>
+ </span>
+ </span>
+ </div>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="dialogImageUrl" alt="">
+ </el-dialog>
+ </div>
+ </transition>
+
+
+ </div>
<!-- 娣诲姞鎴栦慨鏀逛氦閫氭寚鏁板璇濇 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="trafficIndexFormRef" :model="form" :rules="rules" label-width="80px">
@@ -215,9 +221,9 @@
<script setup name="TrafficIndex" lang="ts">
import { listTrafficIndex, getTrafficIndex, delTrafficIndex, addTrafficIndex, updateTrafficIndex } from '@/api/ti/trafficIndex';
import { TrafficIndexVO, TrafficIndexQuery, TrafficIndexForm } from '@/api/ti/trafficIndex/types';
+import type { TabsPaneContext, UploadProps, UploadUserFile } from "element-plus";
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-
const trafficIndexList = ref<TrafficIndexVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
@@ -226,15 +232,20 @@
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
-
+const activeName = ref('first');
const queryFormRef = ref<ElFormInstance>();
const trafficIndexFormRef = ref<ElFormInstance>();
-
+const dialogImageUrl =ref('');
+const dialogVisible= ref(false);
+const disabled= ref(false);
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
-
+const options = {
+ label: false,
+ value: ''
+};
const initFormData: TrafficIndexForm = {
id: undefined,
modeName: undefined,
@@ -426,7 +437,9 @@
dialog.visible = true;
dialog.title = "娣诲姞浜ら�氭寚鏁�";
}
-
+const handleClick = (tab: TabsPaneContext, event: Event) => {
+ console.log(tab.props.label, activeName)
+}
/** 淇敼鎸夐挳鎿嶄綔 */
const handleUpdate = async (row?: TrafficIndexVO) => {
reset();
@@ -473,4 +486,18 @@
onMounted(() => {
getList();
});
+function handleRemove(file:string) {
+ console.log(file);
+ };
+type files = { //鑷畾涔夌被鍨�
+ url: string;
+ };
+function handlePictureCardPreview(file:files) {
+ dialogImageUrl.value = file.url;
+ dialogVisible.value = true;
+ };
+function handleDownload(file:string) {
+ console.log(file);
+ };
+
</script>
--
Gitblit v1.8.0