From 1c391db321fae77ddcd297e14fbe1429960ead49 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 05 三月 2024 14:42:20 +0800
Subject: [PATCH] 景区运行数据基础功能

---
 src/api/sceneryInfo/index.ts                     |   63 ++
 src/api/pcr/pcrData/types.ts                     |   46 -
 src/api/indicatorInfo/types.ts                   |   66 ++
 src/api/scenery/sceneryOperationData/index.ts    |   21 
 src/api/scenery/sceneryOperationData/types.ts    |   93 +--
 src/api/ti/trafficIndex/types.ts                 |   60 +-
 src/views/scenery/sceneryOperationData/index.vue |  161 ++++--
 src/views/sceneryInfo/index.vue                  |  219 +++++++++
 src/api/sceneryInfo/types.ts                     |   81 +++
 src/views/ti/trafficIndex/index.vue              |  134 +++--
 src/views/dg/danger/total.vue                    |   25 
 src/views/pcr/pcrData/index.vue                  |  184 ++++---
 src/api/indicatorInfo/index.ts                   |   63 ++
 src/views/indicatorInfo/index.vue                |  106 ++++
 14 files changed, 980 insertions(+), 342 deletions(-)

diff --git a/src/api/indicatorInfo/index.ts b/src/api/indicatorInfo/index.ts
new file mode 100644
index 0000000..d024779
--- /dev/null
+++ b/src/api/indicatorInfo/index.ts
@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { IndicatorInfoVO, IndicatorInfoForm, IndicatorInfoQuery } from '@/api/indicatorInfo/types';
+
+/**
+ * 鏌ヨ鎸囨爣鍙栧�煎垪琛�
+ * @param query
+ * @returns {*}
+ */
+
+export const listIndicatorInfo = (query?: IndicatorInfoQuery): AxiosPromise<IndicatorInfoVO[]> => {
+  return request({
+    url: '/demo/indicatorInfo/list',
+    method: 'get',
+    params: query
+  });
+};
+
+/**
+ * 鏌ヨ鎸囨爣鍙栧�艰缁�
+ * @param id
+ */
+export const getIndicatorInfo = (id: string | number): AxiosPromise<IndicatorInfoVO> => {
+  return request({
+    url: '/demo/indicatorInfo/' + id,
+    method: 'get'
+  });
+};
+
+/**
+ * 鏂板鎸囨爣鍙栧��
+ * @param data
+ */
+export const addIndicatorInfo = (data: IndicatorInfoForm) => {
+  return request({
+    url: '/demo/indicatorInfo',
+    method: 'post',
+    data: data
+  });
+};
+
+/**
+ * 淇敼鎸囨爣鍙栧��
+ * @param data
+ */
+export const updateIndicatorInfo = (data: IndicatorInfoForm) => {
+  return request({
+    url: '/demo/indicatorInfo',
+    method: 'put',
+    data: data
+  });
+};
+
+/**
+ * 鍒犻櫎鎸囨爣鍙栧��
+ * @param id
+ */
+export const delIndicatorInfo = (id: string | number | Array<string | number>) => {
+  return request({
+    url: '/demo/indicatorInfo/' + id,
+    method: 'delete'
+  });
+};
diff --git a/src/api/indicatorInfo/types.ts b/src/api/indicatorInfo/types.ts
new file mode 100644
index 0000000..7d54dce
--- /dev/null
+++ b/src/api/indicatorInfo/types.ts
@@ -0,0 +1,66 @@
+export interface IndicatorInfoVO {
+  /**
+   * 缂栧彿
+   */
+  id: string | number;
+
+  /**
+   * 鎸囨爣鍚嶇О
+   */
+  indicatorName: string;
+
+  /**
+   * 鍒涘缓鏃堕棿
+   */
+  createTime: string;
+
+  /**
+   * 鐘舵�� 1鑷畾涔� 2鎸囨爣鍙栧��
+   */
+  status: number;
+
+}
+
+export interface IndicatorInfoForm extends BaseEntity {
+  /**
+   * 缂栧彿
+   */
+  id?: string | number;
+
+  /**
+   * 鎸囨爣鍚嶇О
+   */
+  indicatorName?: string;
+
+  /**
+   * 鐘舵�� 1鑷畾涔� 2鎸囨爣鍙栧��
+   */
+  status?: number;
+
+}
+
+export interface IndicatorInfoQuery extends PageQuery {
+
+  /**
+   * 鎸囨爣鍚嶇О
+   */
+  indicatorName?: string;
+
+  /**
+   * 鍒涘缓鏃堕棿
+   */
+  createTime?: string;
+
+  /**
+   * 鐘舵�� 1鑷畾涔� 2鎸囨爣鍙栧��
+   */
+  status?: number;
+
+    /**
+     * 鏃ユ湡鑼冨洿鍙傛暟
+     */
+    params?: any;
+}
+
+
+
diff --git a/src/api/pcr/pcrData/types.ts b/src/api/pcr/pcrData/types.ts
index e410e7c..cbc94f9 100644
--- a/src/api/pcr/pcrData/types.ts
+++ b/src/api/pcr/pcrData/types.ts
@@ -12,12 +12,12 @@
   /**
    * 鍛ㄦ湡
    */
-  periodName: string;
+  period: number;
 
   /**
    * 鍛ㄦ湡骞�
    */
-  periodYear: string;
+  periodDate: string;
 
   /**
    * 鍛ㄦ湡鏈�
@@ -32,7 +32,7 @@
   /**
    * 鎸囨爣1鍊�
    */
-  indexOneValue: number;
+  indexOneValue: string;
 
   /**
    * 鎸囨爣2鍚嶇О
@@ -42,7 +42,7 @@
   /**
    * 鎸囨爣2鍊�
    */
-  indexTwoValue: number;
+  indexTwoValue: string;
 
   /**
    * 鎸囨爣3鍚嶇О
@@ -52,7 +52,7 @@
   /**
    * 鎸囨爣3鍊�
    */
-  indexThreeValue: number;
+  indexThreeValue: string;
 
   /**
    * 鎸囨爣4鍚嶇О
@@ -62,7 +62,7 @@
   /**
    * 鎸囨爣4鍊�
    */
-  indexFourValue: number;
+  indexFourValue: string;
 
   /**
    * 鐘舵��  1鍚敤   0鏈惎鐢�
@@ -85,17 +85,12 @@
   /**
    * 鍛ㄦ湡
    */
-  periodName?: string;
+  period?: number;
 
   /**
    * 鍛ㄦ湡骞�
    */
-  periodYear?: string;
-
-  /**
-   * 鍛ㄦ湡鏈�
-   */
-  periodMonth?: number;
+  periodDate?: string;
 
   /**
    * 鎸囨爣1鍚嶇О
@@ -105,7 +100,7 @@
   /**
    * 鎸囨爣1鍊�
    */
-  indexOneValue?: number;
+  indexOneValue?: string;
 
   /**
    * 鎸囨爣2鍚嶇О
@@ -115,7 +110,7 @@
   /**
    * 鎸囨爣2鍊�
    */
-  indexTwoValue?: number;
+  indexTwoValue?: string;
 
   /**
    * 鎸囨爣3鍚嶇О
@@ -125,7 +120,7 @@
   /**
    * 鎸囨爣3鍊�
    */
-  indexThreeValue?: number;
+  indexThreeValue?: string;
 
   /**
    * 鎸囨爣4鍚嶇О
@@ -135,7 +130,7 @@
   /**
    * 鎸囨爣4鍊�
    */
-  indexFourValue?: number;
+  indexFourValue?: string;
 
   /**
    * 鐘舵��  1鍚敤   0鏈惎鐢�
@@ -154,17 +149,12 @@
   /**
    * 鍛ㄦ湡
    */
-  periodName?: string;
+  period?: number;
 
   /**
    * 鍛ㄦ湡骞�
    */
-  periodYear?: string;
-
-  /**
-   * 鍛ㄦ湡鏈�
-   */
-  periodMonth?: number;
+  periodDate?: string;
 
   /**
    * 鎸囨爣1鍚嶇О
@@ -174,7 +164,7 @@
   /**
    * 鎸囨爣1鍊�
    */
-  indexOneValue?: number;
+  indexOneValue?: string;
 
   /**
    * 鎸囨爣2鍚嶇О
@@ -184,7 +174,7 @@
   /**
    * 鎸囨爣2鍊�
    */
-  indexTwoValue?: number;
+  indexTwoValue?: string;
 
   /**
    * 鎸囨爣3鍚嶇О
@@ -194,7 +184,7 @@
   /**
    * 鎸囨爣3鍊�
    */
-  indexThreeValue?: number;
+  indexThreeValue?: string;
 
   /**
    * 鎸囨爣4鍚嶇О
@@ -204,7 +194,7 @@
   /**
    * 鎸囨爣4鍊�
    */
-  indexFourValue?: number;
+  indexFourValue?: string;
 
   /**
    * 鐘舵��  1鍚敤   0鏈惎鐢�
diff --git a/src/api/scenery/sceneryOperationData/index.ts b/src/api/scenery/sceneryOperationData/index.ts
index 144700e..3a0cca7 100644
--- a/src/api/scenery/sceneryOperationData/index.ts
+++ b/src/api/scenery/sceneryOperationData/index.ts
@@ -1,6 +1,7 @@
 import request from '@/utils/request';
 import { AxiosPromise } from 'axios';
 import { SceneryOperationDataVO, SceneryOperationDataForm, SceneryOperationDataQuery } from '@/api/scenery/sceneryOperationData/types';
+import { SceneryInfoVO } from '@/api/sceneryInfo/types';
 
 /**
  * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
@@ -10,7 +11,7 @@
 
 export const listSceneryOperationData = (query?: SceneryOperationDataQuery): AxiosPromise<SceneryOperationDataVO[]> => {
   return request({
-    url: '/sc/sceneryOperationData/list',
+    url: '/demo/sceneryOperationData/list',
     method: 'get',
     params: query
   });
@@ -22,7 +23,17 @@
  */
 export const getSceneryOperationData = (id: string | number): AxiosPromise<SceneryOperationDataVO> => {
   return request({
-    url: '/sc/sceneryOperationData/' + id,
+    url: '/demo/sceneryOperationData/' + id,
+    method: 'get'
+  });
+};
+
+/**
+ * 鏌ヨ鏅尯鍚嶇О
+ */
+export const getSceneryInfoNames = (): AxiosPromise<SceneryInfoVO[]> => {
+  return request({
+    url: '/demo/sceneryInfo/list',
     method: 'get'
   });
 };
@@ -33,7 +44,7 @@
  */
 export const addSceneryOperationData = (data: SceneryOperationDataForm) => {
   return request({
-    url: '/sc/sceneryOperationData',
+    url: '/demo/sceneryOperationData',
     method: 'post',
     data: data
   });
@@ -45,7 +56,7 @@
  */
 export const updateSceneryOperationData = (data: SceneryOperationDataForm) => {
   return request({
-    url: '/sc/sceneryOperationData',
+    url: '/demo/sceneryOperationData',
     method: 'put',
     data: data
   });
@@ -57,7 +68,7 @@
  */
 export const delSceneryOperationData = (id: string | number | Array<string | number>) => {
   return request({
-    url: '/sc/sceneryOperationData/' + id,
+    url: '/demo/sceneryOperationData/' + id,
     method: 'delete'
   });
 };
diff --git a/src/api/scenery/sceneryOperationData/types.ts b/src/api/scenery/sceneryOperationData/types.ts
index 2473496..8d14742 100644
--- a/src/api/scenery/sceneryOperationData/types.ts
+++ b/src/api/scenery/sceneryOperationData/types.ts
@@ -5,14 +5,24 @@
   id: string | number;
 
   /**
-   * 鍛ㄦ湡骞�
+   * 鏅尯id
    */
-  periodYear: number;
+  sceneryInfoId: string | number;
 
   /**
-   * 鍛ㄦ湡鏈�
+   * 鏅尯鍚嶇О
    */
-  periodMonth: number;
+  sceneryInfoName: string;
+
+  /**
+   * 骞村害/鏈堝害 1骞村害 2鏈堝害
+   */
+  period: number;
+
+  /**
+   * 鍛ㄦ湡
+   */
+  periodDate: string;
 
   /**
    * 杞︽祦閲�
@@ -55,9 +65,9 @@
   status: number;
 
   /**
-   * 鏅尯id
+   * 鍒涘缓鏃堕棿
    */
-  scId: string | number;
+  createTime: string;
 
 }
 
@@ -68,14 +78,24 @@
   id?: string | number;
 
   /**
-   * 鍛ㄦ湡骞�
+   * 鏅尯id
    */
-  periodYear?: number;
+  sceneryInfoId?: string | number;
 
   /**
-   * 鍛ㄦ湡鏈�
+   * 鏅尯鍚嶇О
    */
-  periodMonth?: number;
+  sceneryInfoName?: string;
+
+  /**
+   * 骞村害/鏈堝害 1骞村害 2鏈堝害
+   */
+  period?: number;
+
+  /**
+   * 鍛ㄦ湡
+   */
+  periodDate?: string;
 
   /**
    * 杞︽祦閲�
@@ -116,70 +136,25 @@
    * 鐘舵�� 1鍚敤 0鏈惎鐢�
    */
   status?: number;
-
-  /**
-   * 鏅尯id
-   */
-  scId?: string | number;
 
 }
 
 export interface SceneryOperationDataQuery extends PageQuery {
 
   /**
-   * 鍛ㄦ湡骞�
+   * 鏅尯鍚嶇О
    */
-  periodYear?: number;
+  sceneryInfoName?: string;
 
   /**
-   * 鍛ㄦ湡鏈�
+   * 鍛ㄦ湡
    */
-  periodMonth?: number;
-
-  /**
-   * 杞︽祦閲�
-   */
-  carFlowNum?: number;
-
-  /**
-   * 浜烘祦閲�
-   */
-  personFlowNum?: number;
-
-  /**
-   * 娓稿棰勭害
-   */
-  visitorSubNum?: number;
-
-  /**
-   * 鍏ュ洯浜烘暟
-   */
-  enterGardenNum?: number;
-
-  /**
-   * 鍦ㄥ矖璀﹀姏
-   */
-  onPolice?: number;
-
-  /**
-   * 鍦ㄥ矖璀﹁溅
-   */
-  onPaddyWagon?: number;
-
-  /**
-   * 澶囧嫟璀﹀姏
-   */
-  standbyPolice?: number;
+  periodDate?: string;
 
   /**
    * 鐘舵�� 1鍚敤 0鏈惎鐢�
    */
   status?: number;
-
-  /**
-   * 鏅尯id
-   */
-  scId?: string | number;
 
     /**
      * 鏃ユ湡鑼冨洿鍙傛暟
diff --git a/src/api/sceneryInfo/index.ts b/src/api/sceneryInfo/index.ts
new file mode 100644
index 0000000..6985608
--- /dev/null
+++ b/src/api/sceneryInfo/index.ts
@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { SceneryInfoVO, SceneryInfoForm, SceneryInfoQuery } from '@/api/sceneryInfo/types';
+
+/**
+ * 鏌ヨ鏅尯閰嶇疆淇℃伅鍒楄〃
+ * @param query
+ * @returns {*}
+ */
+
+export const listSceneryInfo = (query?: SceneryInfoQuery): AxiosPromise<SceneryInfoVO[]> => {
+  return request({
+    url: '/demo/sceneryInfo/list',
+    method: 'get',
+    params: query
+  });
+};
+
+/**
+ * 鏌ヨ鏅尯閰嶇疆淇℃伅璇︾粏
+ * @param id
+ */
+export const getSceneryInfo = (id: string | number): AxiosPromise<SceneryInfoVO> => {
+  return request({
+    url: '/demo/sceneryInfo/' + id,
+    method: 'get'
+  });
+};
+
+/**
+ * 鏂板鏅尯閰嶇疆淇℃伅
+ * @param data
+ */
+export const addSceneryInfo = (data: SceneryInfoForm) => {
+  return request({
+    url: '/demo/sceneryInfo',
+    method: 'post',
+    data: data
+  });
+};
+
+/**
+ * 淇敼鏅尯閰嶇疆淇℃伅
+ * @param data
+ */
+export const updateSceneryInfo = (data: SceneryInfoForm) => {
+  return request({
+    url: '/demo/sceneryInfo',
+    method: 'put',
+    data: data
+  });
+};
+
+/**
+ * 鍒犻櫎鏅尯閰嶇疆淇℃伅
+ * @param id
+ */
+export const delSceneryInfo = (id: string | number | Array<string | number>) => {
+  return request({
+    url: '/demo/sceneryInfo/' + id,
+    method: 'delete'
+  });
+};
diff --git a/src/api/sceneryInfo/types.ts b/src/api/sceneryInfo/types.ts
new file mode 100644
index 0000000..14d09d0
--- /dev/null
+++ b/src/api/sceneryInfo/types.ts
@@ -0,0 +1,81 @@
+export interface SceneryInfoVO {
+  /**
+   * 缂栧彿
+   */
+  id: string | number;
+
+  /**
+   * 鏅尯鍚嶇О
+   */
+  sceneryName: string;
+
+  /**
+   * 鎺掑簭
+   */
+  sequence: number;
+
+  /**
+   * 鍒涘缓鏃堕棿
+   */
+  createTime: string;
+
+  /**
+   * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+   */
+  status: number;
+
+}
+
+export interface SceneryInfoForm extends BaseEntity {
+  /**
+   * 缂栧彿
+   */
+  id?: string | number;
+
+  /**
+   * 鏅尯鍚嶇О
+   */
+  sceneryName?: string;
+
+  /**
+   * 鎺掑簭
+   */
+  sequence?: number;
+
+  /**
+   * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+   */
+  status?: number;
+
+}
+
+export interface SceneryInfoQuery extends PageQuery {
+
+  /**
+   * 鏅尯鍚嶇О
+   */
+  sceneryName?: string;
+
+  /**
+   * 鎺掑簭
+   */
+  sequence?: number;
+
+  /**
+   * 鍒涘缓鏃堕棿
+   */
+  createTime?: string;
+
+  /**
+   * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+   */
+  status?: number;
+
+    /**
+     * 鏃ユ湡鑼冨洿鍙傛暟
+     */
+    params?: any;
+}
+
+
+
diff --git a/src/api/ti/trafficIndex/types.ts b/src/api/ti/trafficIndex/types.ts
index 0ddb981..18c4d69 100644
--- a/src/api/ti/trafficIndex/types.ts
+++ b/src/api/ti/trafficIndex/types.ts
@@ -17,7 +17,7 @@
   /**
    * 鎸囨爣1鍊�
    */
-  targetOneValue: number;
+  targetOneValue: string;
 
   /**
    * 鎸囨爣1鍗曚綅
@@ -32,7 +32,7 @@
   /**
    * 鎸囨爣1涓婃诞鎴栦笅闄嶅��
    */
-  targetOneCompareValue: number;
+  targetOneCompareValue: string;
 
   /**
    * 鎸囨爣2鍚嶇О
@@ -42,7 +42,7 @@
   /**
    * 鎸囨爣2鍊�
    */
-  targetTwoValue: number;
+  targetTwoValue: string;
 
   /**
    * 鎸囨爣2鍗曚綅
@@ -57,7 +57,7 @@
   /**
    * 鎸囨爣2涓婃诞鎴栦笅闄嶅��
    */
-  targetTwoCompareValue: number;
+  targetTwoCompareValue: string;
 
   /**
    * 鎸囨爣3鍚嶇О
@@ -67,7 +67,7 @@
   /**
    * 鎸囨爣3鍊�
    */
-  targetThreeValue: number;
+  targetThreeValue: string;
 
   /**
    * 鎸囨爣3鍗曚綅
@@ -82,7 +82,7 @@
   /**
    * 鎸囨爣3涓婃诞鎴栦笅闄嶅��
    */
-  targetThreeCompareValue: number;
+  targetThreeCompareValue: string;
 
   /**
    * 鎸囨爣4鍚嶇О
@@ -92,7 +92,7 @@
   /**
    * 鎸囨爣4鍊�
    */
-  targetFourValue: number;
+  targetFourValue: string;
 
   /**
    * 鎸囨爣4鍗曚綅
@@ -107,7 +107,7 @@
   /**
    * 鎸囨爣4涓婃诞鎴栦笅闄嶅��
    */
-  targetFourCompareValue: number;
+  targetFourCompareValue: string;
 
   /**
    * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
@@ -117,12 +117,12 @@
   /**
    * 鍛ㄦ湡 1 鏈�  2骞�
    */
-  periodName: string;
+  period: number;
 
   /**
    * 鍛ㄦ湡鍊�
    */
-  periodValue: number;
+  periodDate: string;
 
   /**
    * 0鏈垹闄�   1宸插垹闄�
@@ -150,7 +150,7 @@
   /**
    * 鎸囨爣1鍊�
    */
-  targetOneValue?: number;
+  targetOneValue?: string;
 
   /**
    * 鎸囨爣1鍗曚綅
@@ -165,7 +165,7 @@
   /**
    * 鎸囨爣1涓婃诞鎴栦笅闄嶅��
    */
-  targetOneCompareValue?: number;
+  targetOneCompareValue?: string;
 
   /**
    * 鎸囨爣2鍚嶇О
@@ -175,7 +175,7 @@
   /**
    * 鎸囨爣2鍊�
    */
-  targetTwoValue?: number;
+  targetTwoValue?: string;
 
   /**
    * 鎸囨爣2鍗曚綅
@@ -190,7 +190,7 @@
   /**
    * 鎸囨爣2涓婃诞鎴栦笅闄嶅��
    */
-  targetTwoCompareValue?: number;
+  targetTwoCompareValue?: string;
 
   /**
    * 鎸囨爣3鍚嶇О
@@ -200,7 +200,7 @@
   /**
    * 鎸囨爣3鍊�
    */
-  targetThreeValue?: number;
+  targetThreeValue?: string;
 
   /**
    * 鎸囨爣3鍗曚綅
@@ -215,7 +215,7 @@
   /**
    * 鎸囨爣3涓婃诞鎴栦笅闄嶅��
    */
-  targetThreeCompareValue?: number;
+  targetThreeCompareValue?: string;
 
   /**
    * 鎸囨爣4鍚嶇О
@@ -225,7 +225,7 @@
   /**
    * 鎸囨爣4鍊�
    */
-  targetFourValue?: number;
+  targetFourValue?: string;
 
   /**
    * 鎸囨爣4鍗曚綅
@@ -240,7 +240,7 @@
   /**
    * 鎸囨爣4涓婃诞鎴栦笅闄嶅��
    */
-  targetFourCompareValue?: number;
+  targetFourCompareValue?: string;
 
   /**
    * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
@@ -250,12 +250,12 @@
   /**
    * 鍛ㄦ湡 1 鏈�  2骞�
    */
-  periodName?: string;
+  period?: number;
 
   /**
    * 鍛ㄦ湡鍊�
    */
-  periodValue?: number;
+  periodDate?: string;
 
   /**
    * 0鏈垹闄�   1宸插垹闄�
@@ -279,7 +279,7 @@
   /**
    * 鎸囨爣1鍊�
    */
-  targetOneValue?: number;
+  targetOneValue?: string;
 
   /**
    * 鎸囨爣1鍗曚綅
@@ -294,7 +294,7 @@
   /**
    * 鎸囨爣1涓婃诞鎴栦笅闄嶅��
    */
-  targetOneCompareValue?: number;
+  targetOneCompareValue?: string;
 
   /**
    * 鎸囨爣2鍚嶇О
@@ -304,7 +304,7 @@
   /**
    * 鎸囨爣2鍊�
    */
-  targetTwoValue?: number;
+  targetTwoValue?: string;
 
   /**
    * 鎸囨爣2鍗曚綅
@@ -319,7 +319,7 @@
   /**
    * 鎸囨爣2涓婃诞鎴栦笅闄嶅��
    */
-  targetTwoCompareValue?: number;
+  targetTwoCompareValue?: string;
 
   /**
    * 鎸囨爣3鍚嶇О
@@ -329,7 +329,7 @@
   /**
    * 鎸囨爣3鍊�
    */
-  targetThreeValue?: number;
+  targetThreeValue?: string;
 
   /**
    * 鎸囨爣3鍗曚綅
@@ -344,7 +344,7 @@
   /**
    * 鎸囨爣3涓婃诞鎴栦笅闄嶅��
    */
-  targetThreeCompareValue?: number;
+  targetThreeCompareValue?: string;
 
   /**
    * 鎸囨爣4鍚嶇О
@@ -354,7 +354,7 @@
   /**
    * 鎸囨爣4鍊�
    */
-  targetFourValue?: number;
+  targetFourValue?: string;
 
   /**
    * 鎸囨爣4鍗曚綅
@@ -369,7 +369,7 @@
   /**
    * 鎸囨爣4涓婃诞鎴栦笅闄嶅��
    */
-  targetFourCompareValue?: number;
+  targetFourCompareValue?: string;
 
   /**
    * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
@@ -379,12 +379,12 @@
   /**
    * 鍛ㄦ湡 1 鏈�  2骞�
    */
-  periodName?: string;
+  period?: number;
 
   /**
    * 鍛ㄦ湡鍊�
    */
-  periodValue?: number;
+  periodDate?: string;
 
   /**
    * 0鏈垹闄�   1宸插垹闄�
diff --git a/src/views/dg/danger/total.vue b/src/views/dg/danger/total.vue
index 8657463..34a9652 100644
--- a/src/views/dg/danger/total.vue
+++ b/src/views/dg/danger/total.vue
@@ -82,16 +82,16 @@
       <el-form ref="dangerTotalFormRef" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="闀囪鍚嶇О" prop="townStreetName" label-width="100">
           <!-- <el-input v-model="form.townStreetName" placeholder="璇疯緭鍏ラ晣琛楀悕绉�" /> -->
-          <el-select v-model="form.townStreetName" placeholder="璇烽�夋嫨" clearable style="width: 240px" @keyup.enter="handleQuery" >
+          <el-select v-model="form.townStreetName" placeholder="璇烽�夋嫨" clearable style="width: 240px" >
               <el-option v-for="item in townStreetNames" :key="item.townStreetName" :label="item.townStreetName" :value="item.townStreetName"/>
             </el-select>
         </el-form-item>
         <el-form-item label="缁熻鍛ㄦ湡" prop="periodDate" label-width="100">
-          <el-select v-model="form.period" placeholder="璇烽�夋嫨" style="width: 100px;">
+          <el-select v-model="form.period" placeholder="璇烽�夋嫨" style="width: 100px;" @change="clearPeriod">
             <el-option key="1" label="骞村害" :value="1" />
             <el-option key="2" label="鏈堝害" :value="2" />
           </el-select>
-          &nbsp;
+          &emsp;
           <el-date-picker v-model="form.periodDate" :type="pickerType" :value-format="pickerFormat" placeholder="璇烽�夋嫨缁熻鍛ㄦ湡" />
         </el-form-item>
         <el-form-item label="鍙戠幇闅愭偅" prop="findSecurityRisks" label-width="100">
@@ -144,12 +144,12 @@
 });
 
 const townStreetNames = [
-  {
-    townStreetName: '骞哥琛楅亾',
-  },
-  {
-    townStreetName: '閾舵潖琛楅亾'
-  }];
+{
+  townStreetName: '骞哥琛楅亾',
+},
+{
+  townStreetName: '閾舵潖琛楅亾'
+}];
 
 const initFormData: DangerTotalForm = {
   id: undefined,
@@ -159,7 +159,7 @@
   findSecurityRisks: undefined,
   issueNotice: undefined,
   dealWithSecurityRisks: undefined,
-  status: undefined
+  status: 1
 }
 const data = reactive<PageData<DangerTotalForm, DangerTotalQuery>>({
   form: {...initFormData},
@@ -309,4 +309,9 @@
 const pickerFormat = computed(() => {
   return form.value.period === 1 ? 'YYYY' : 'YYYY-MM';
 });
+
+/** 娓呯┖鍛ㄦ湡 */
+const clearPeriod = () => {
+  form.value.periodDate = undefined;
+};
 </script>
diff --git a/src/views/indicatorInfo/index.vue b/src/views/indicatorInfo/index.vue
new file mode 100644
index 0000000..4f9becb
--- /dev/null
+++ b/src/views/indicatorInfo/index.vue
@@ -0,0 +1,106 @@
+<template>
+  <div class="p-2">
+    <el-form ref="indicatorInfoFormRef" :model="form" :rules="rules" label-width="80px">
+      <el-form-item :label="indicator.indicatorName" v-for="indicator in indicatorInfoList" :key="indicator.id">
+        <el-radio-group v-model="indicator.status">
+          <el-radio :label="2">鎺ュ彛鍙栧��</el-radio>
+          <el-radio :label="1">鑷畾涔�</el-radio>
+        </el-radio-group>
+      </el-form-item>
+    </el-form>
+    <div class="dialog-footer">
+      <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref, reactive, onMounted, toRefs } from 'vue';
+import { listIndicatorInfo, updateIndicatorInfo } from '@/api/indicatorInfo';
+import { IndicatorInfoVO, IndicatorInfoForm } from '@/api/indicatorInfo/types';
+import { ElForm, ElFormItem, ElRadioGroup, ElRadio, ElButton } from 'element-plus';
+
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+
+const indicatorInfoList = ref<IndicatorInfoVO[]>([]);
+const buttonLoading = ref(false);
+const loading = ref(true);
+const total = ref(0);
+
+const indicatorInfoFormRef = ref<ElFormInstance>();
+
+const initFormData: IndicatorInfoForm = {
+  id: undefined,
+  indicatorName: undefined,
+  status: undefined
+}
+const data = reactive({
+  form: {...initFormData},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    indicatorName: undefined,
+    createTime: undefined,
+    status: undefined,
+    params: {}
+  },
+  rules: {
+    id: [
+      { required: true, message: "缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    indicatorName: [
+      { required: true, message: "鎸囨爣鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    status: [
+      { required: true, message: "鐘舵�� 1鑷畾涔� 2鎸囨爣鍙栧�间笉鑳戒负绌�", trigger: "change" }
+    ]
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 鏌ヨ鎸囨爣鍙栧�煎垪琛� */
+const getList = async () => {
+  loading.value = true;
+  try {
+    const res = await listIndicatorInfo(queryParams.value);
+    indicatorInfoList.value = res.rows;
+    total.value = res.total;
+  } catch (error) {
+    console.error(error);
+  } finally {
+    loading.value = false;
+  }
+}
+
+/** 鎻愪氦鎸夐挳 */
+const submitForm = async () => {
+  try {
+    // 寰幆鎻愪氦姣忎釜鍗曠嫭鐨勫璞�
+    for (const indicator of indicatorInfoList.value) {
+      const object = {
+        id: indicator.id,
+        status: indicator.status
+      };
+      console.log(object)
+      await updateIndicatorInfo(object);
+    }
+    await getList();
+    proxy?.$modal.msgSuccess("淇敼鎴愬姛");
+  } catch (error) {
+    console.error(error);
+  } finally {
+    buttonLoading.value = false;
+  }
+}
+
+onMounted(() => {
+  getList();
+});
+</script>
+
+<style scoped>
+.p-2 {
+  padding: 2rem;
+}
+</style>
diff --git a/src/views/pcr/pcrData/index.vue b/src/views/pcr/pcrData/index.vue
index 6df7cf1..4ee1f52 100644
--- a/src/views/pcr/pcrData/index.vue
+++ b/src/views/pcr/pcrData/index.vue
@@ -3,41 +3,14 @@
     <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 label="缁熻鍛ㄦ湡" prop="periodDate">
+            <el-input v-model="queryParams.periodDate" 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 label="鐘舵��" prop="status">
+            <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨" clearable style="width: 240px" @keyup.enter="handleQuery" >
+              <el-option key="1" label="宸插惎鐢�" value="1" />
+              <el-option key="2" label="宸茬鐢�" value="2" />
+            </el-select>
           </el-form-item>
           <el-form-item>
             <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
@@ -68,20 +41,24 @@
 
       <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="搴忓彿" type="index" width="50"/>
         <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" prop="periodDate" />
+        <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="indexOneName" />
+        <el-table-column label="鎸囨爣鏁板��" align="center" prop="indexOneValue" />
+        <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="indexTwoName" />
+        <el-table-column label="鎸囨爣鏁板��" align="center" prop="indexTwoValue" />
+        <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="indexThreeName" />
+        <el-table-column label="鎸囨爣鏁板��" align="center" prop="indexThreeValue" />
+        <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="indexFourName" />
+        <el-table-column label="鎸囨爣鏁板��" align="center" prop="indexFourValue" />
+        <el-table-column label="鐘舵��" align="center" prop="status">
+          <template #default="scope">
+            <span v-show="scope.row['status'] == 1">宸插惎鐢�</span>
+            <span v-show="scope.row['status'] == 2" style="color: rgba(227, 70,101);">宸茬鐢�</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
         <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-tooltip content="淇敼" placement="top">
@@ -105,41 +82,38 @@
     <!-- 娣诲姞鎴栦慨鏀逛汉杞﹁矾鍩虹淇℃伅瀵硅瘽妗� -->
     <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 label="鎸囨爣绫诲瀷" prop="modeName">
+          <el-select v-model="form.modeName" placeholder="璇烽�夋嫨" @change="handleModeNameChange">
+            <el-option key="1" label="閬撹矾閲岀▼鏁伴噺" value="閬撹矾閲岀▼鏁伴噺" />
+            <el-option key="2" label="鏈哄姩杞︿繚鏈夐噺" value="鏈哄姩杞︿繚鏈夐噺" />
+            <el-option key="3" label="椹鹃┒浜轰繚鏈夐噺" value="椹鹃┒浜轰繚鏈夐噺" />
+          </el-select>
         </el-form-item>
-        <el-form-item label="鍛ㄦ湡" prop="periodName">
-          <el-input v-model="form.periodName" placeholder="璇疯緭鍏ュ懆鏈�" />
+        <el-form-item label="鍛ㄦ湡" prop="period">
+          <el-select v-model="form.period" placeholder="璇烽�夋嫨" style="width: 100px;" @change="clearPeriod">
+            <el-option key="1" label="骞村害" :value="1" />
+            <el-option key="2" label="鏈堝害" :value="2" />
+          </el-select>
+          &emsp;
+          <el-date-picker v-model="form.periodDate" :type="pickerType" :value-format="pickerFormat" 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-form-item :label="form.indexOneName" 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-form-item :label="form.indexTwoName" 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-form-item :label="form.indexThreeName" 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-form-item :label="form.indexFourName" prop="indexFourValue">
           <el-input v-model="form.indexFourValue" placeholder="璇疯緭鍏ユ寚鏍�4鍊�" />
+        </el-form-item>
+        <el-form-item label="鐘舵��" prop="status">
+          <el-select v-model="form.status" placeholder="璇烽�夋嫨">
+            <el-option key="1" label="宸插惎鐢�" :value="1" />
+            <el-option key="2" label="宸茬鐢�" :value="2" />
+          </el-select>
         </el-form-item>
       </el-form>
       <template #footer>
@@ -177,19 +151,18 @@
 
 const initFormData: PcrDataForm = {
   id: undefined,
-  modeName: undefined,
-  periodName: undefined,
-  periodYear: undefined,
-  periodMonth: undefined,
-  indexOneName: undefined,
+  modeName: "閬撹矾閲岀▼鏁伴噺",
+  period: 2,
+  periodDate: undefined,
+  indexOneName: "楂橀�熻矾",
   indexOneValue: undefined,
-  indexTwoName: undefined,
+  indexTwoName: "鍥界渷閬�",
   indexTwoValue: undefined,
-  indexThreeName: undefined,
+  indexThreeName: "鍘夸埂閬�",
   indexThreeValue: undefined,
-  indexFourName: undefined,
+  indexFourName: "鍐滄潙閬撹矾",
   indexFourValue: undefined,
-  status: undefined,
+  status: 1,
 }
 const data = reactive<PageData<PcrDataForm, PcrDataQuery>>({
   form: {...initFormData},
@@ -197,9 +170,8 @@
     pageNum: 1,
     pageSize: 10,
     modeName: undefined,
-    periodName: undefined,
-    periodYear: undefined,
-    periodMonth: undefined,
+    period: undefined,
+    periodDate: undefined,
     indexOneName: undefined,
     indexOneValue: undefined,
     indexTwoName: undefined,
@@ -219,14 +191,11 @@
     modeName: [
       { required: true, message: "妯″潡鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
     ],
-    periodName: [
+    period: [
       { required: true, message: "鍛ㄦ湡涓嶈兘涓虹┖", trigger: "blur" }
     ],
-    periodYear: [
+    periodDate: [
       { required: true, message: "鍛ㄦ湡骞翠笉鑳戒负绌�", trigger: "blur" }
-    ],
-    periodMonth: [
-      { required: true, message: "鍛ㄦ湡鏈堜笉鑳戒负绌�", trigger: "blur" }
     ],
     indexOneName: [
       { required: true, message: "鎸囨爣1鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
@@ -353,4 +322,39 @@
 onMounted(() => {
   getList();
 });
+
+/** 鍛ㄦ湡骞存垨鏈� */
+const pickerType = computed(() => {
+  return form.value.period === 1 ? 'year' : 'month';
+});
+
+const pickerFormat = computed(() => {
+  return form.value.period === 1 ? 'YYYY' : 'YYYY-MM';
+});
+
+/** 鍒囨崲涓嶅悓鎸囨爣 */
+const handleModeNameChange = () => {
+  if (form.value.modeName === "閬撹矾閲岀▼鏁伴噺") {
+    form.value.indexOneName = '楂橀�熻矾';
+    form.value.indexTwoName = '鍥界渷閬�';
+    form.value.indexThreeName = '鍘夸埂閬�';
+    form.value.indexFourName = '鍐滄潙閬撹矾';
+  } else if (form.value.modeName === "鏈哄姩杞︿繚鏈夐噺") {
+    form.value.indexOneName = '璐ц繍杞﹁締';
+    form.value.indexTwoName = '鍏氦瀹㈣繍';
+    form.value.indexThreeName = '灏忓瀷姹借溅';
+    form.value.indexFourName = '鎽╂墭杞�';
+  } else if (form.value.modeName === "椹鹃┒浜轰繚鏈夐噺") {
+    form.value.indexOneName = '璐ц繍杞﹁締椹鹃┒浜�';
+    form.value.indexTwoName = '鍏氦瀹㈣繍椹鹃┒浜�';
+    form.value.indexThreeName = '灏忓瀷姹借溅椹鹃┒浜�';
+    form.value.indexFourName = '鎽╂墭杞﹂┚椹朵汉';
+  }
+};
+
+/** 娓呯┖鍛ㄦ湡 */
+const clearPeriod = () => {
+  form.value.periodDate = undefined;
+};
+
 </script>
diff --git a/src/views/scenery/sceneryOperationData/index.vue b/src/views/scenery/sceneryOperationData/index.vue
index 805829f..518eb93 100644
--- a/src/views/scenery/sceneryOperationData/index.vue
+++ b/src/views/scenery/sceneryOperationData/index.vue
@@ -3,35 +3,17 @@
     <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 label="鏅尯鍚嶇О" prop="sceneryInfoName">
+            <el-input v-model="queryParams.sceneryInfoName" 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 label="鍛ㄦ湡" prop="periodDate">
+            <el-input v-model="queryParams.periodDate" 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 label="鐘舵��" prop="status">
+            <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨" clearable style="width: 240px" @keyup.enter="handleQuery" >
+              <el-option key="1" label="宸插惎鐢�" value="1" />
+              <el-option key="2" label="宸茬鐢�" value="2" />
+            </el-select>
           </el-form-item>
           <el-form-item>
             <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
@@ -45,16 +27,16 @@
       <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-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['demo: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-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['demo: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-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['demo: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-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['demo:sceneryOperationData:export']">瀵煎嚭</el-button>
           </el-col>
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
@@ -62,9 +44,9 @@
 
       <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" type="index" v-if="true" width="60" />
+        <el-table-column label="鏅尯鍚嶇О" align="center" prop="sceneryInfoName" />
+        <el-table-column label="缁熻鍛ㄦ湡" align="center" prop="periodDate" />
         <el-table-column label="杞︽祦閲�" align="center" prop="carFlowNum" />
         <el-table-column label="浜烘祦閲�" align="center" prop="personFlowNum" />
         <el-table-column label="娓稿棰勭害" align="center" prop="visitorSubNum" />
@@ -72,15 +54,20 @@
         <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" prop="status">
+          <template #default="scope">
+            <span v-show="scope.row['status'] == 1">宸插惎鐢�</span>
+            <span v-show="scope.row['status'] == 2" style="color: rgba(227, 70,101);">宸茬鐢�</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
         <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-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['demo: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-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['demo:sceneryOperationData:remove']"></el-button>
             </el-tooltip>
           </template>
         </el-table-column>
@@ -97,11 +84,18 @@
     <!-- 娣诲姞鎴栦慨鏀规櫙鍖鸿繍琛屾暟鎹璇濇 -->
     <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 label="鏅尯鍚嶇О" prop="sceneryInfoName">
+          <el-select v-model="form.sceneryInfoName" placeholder="璇烽�夋嫨" clearable style="width: 240px" @change="setSceneryInfoId" >
+            <el-option v-for="item in sceneryInfoNames" :key="item.sceneryName" :label="item.sceneryName" :value="item.sceneryName"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="鍛ㄦ湡鏈�" prop="periodMonth">
-          <el-input v-model="form.periodMonth" placeholder="璇疯緭鍏ュ懆鏈熸湀" />
+        <el-form-item label="缁熻鍛ㄦ湡" prop="periodDate">
+          <el-select v-model="form.period" placeholder="璇烽�夋嫨" style="width: 100px;" @change="clearPeriod">
+            <el-option key="1" label="骞村害" :value="1" />
+            <el-option key="2" label="鏈堝害" :value="2" />
+          </el-select>
+          &emsp;
+          <el-date-picker v-model="form.periodDate" :type="pickerType" :value-format="pickerFormat" placeholder="璇烽�夋嫨缁熻鍛ㄦ湡" />
         </el-form-item>
         <el-form-item label="杞︽祦閲�" prop="carFlowNum">
           <el-input v-model="form.carFlowNum" placeholder="璇疯緭鍏ヨ溅娴侀噺" />
@@ -124,8 +118,11 @@
         <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 label="鐘舵��" prop="status">
+          <el-select v-model="form.status" placeholder="璇烽�夋嫨">
+            <el-option key="1" label="宸插惎鐢�" :value="1" />
+            <el-option key="2" label="宸茬鐢�" :value="2" />
+          </el-select>
         </el-form-item>
       </el-form>
       <template #footer>
@@ -139,8 +136,9 @@
 </template>
 
 <script setup name="SceneryOperationData" lang="ts">
-import { listSceneryOperationData, getSceneryOperationData, delSceneryOperationData, addSceneryOperationData, updateSceneryOperationData } from '@/api/scenery/sceneryOperationData';
+import { getSceneryInfoNames, listSceneryOperationData, getSceneryOperationData, delSceneryOperationData, addSceneryOperationData, updateSceneryOperationData } from '@/api/scenery/sceneryOperationData';
 import { SceneryOperationDataVO, SceneryOperationDataQuery, SceneryOperationDataForm } from '@/api/scenery/sceneryOperationData/types';
+import { SceneryInfoVO } from '@/api/sceneryInfo/types';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
@@ -163,8 +161,10 @@
 
 const initFormData: SceneryOperationDataForm = {
   id: undefined,
-  periodYear: undefined,
-  periodMonth: undefined,
+  sceneryInfoId: undefined,
+  sceneryInfoName: undefined,
+  period: undefined,
+  periodDate: undefined,
   carFlowNum: undefined,
   personFlowNum: undefined,
   visitorSubNum: undefined,
@@ -173,24 +173,15 @@
   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,
+    sceneryInfoName: undefined,
+    periodDate: undefined,
     status: undefined,
-    scId: undefined,
     params: {
     }
   },
@@ -198,11 +189,17 @@
     id: [
       { required: true, message: "id涓嶈兘涓虹┖", trigger: "blur" }
     ],
-    periodYear: [
-      { required: true, message: "鍛ㄦ湡骞翠笉鑳戒负绌�", trigger: "blur" }
+    sceneryInfoId: [
+      { required: true, message: "鏅尯id涓嶈兘涓虹┖", trigger: "blur" }
     ],
-    periodMonth: [
-      { required: true, message: "鍛ㄦ湡鏈堜笉鑳戒负绌�", trigger: "blur" }
+    sceneryInfoName: [
+      { required: true, message: "鏅尯鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    period: [
+      { required: true, message: "骞村害/鏈堝害 1骞村害 2鏈堝害涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    periodDate: [
+      { required: true, message: "鍛ㄦ湡涓嶈兘涓虹┖", trigger: "blur" }
     ],
     carFlowNum: [
       { required: true, message: "杞︽祦閲忎笉鑳戒负绌�", trigger: "blur" }
@@ -228,9 +225,6 @@
     status: [
       { required: true, message: "鐘舵�� 1鍚敤 0鏈惎鐢ㄤ笉鑳戒负绌�", trigger: "change" }
     ],
-    scId: [
-      { required: true, message: "鏅尯id涓嶈兘涓虹┖", trigger: "blur" }
-    ]
   }
 });
 
@@ -276,9 +270,19 @@
   multiple.value = !selection.length;
 }
 
+// 璋冪敤鍚庣API鑾峰彇鏅尯鍚嶇О鍒楄〃
+const sceneryInfoNames = ref<SceneryInfoVO[]>([]);
+
+/** 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃 */
+const getSceneryInfoName = async () => {
+  const res = await getSceneryInfoNames();
+  sceneryInfoNames.value = res.rows;
+}
+
 /** 鏂板鎸夐挳鎿嶄綔 */
 const handleAdd = () => {
   reset();
+  getSceneryInfoName();
   dialog.visible = true;
   dialog.title = "娣诲姞鏅尯杩愯鏁版嵁";
 }
@@ -312,6 +316,7 @@
 
 /** 鍒犻櫎鎸夐挳鎿嶄綔 */
 const handleDelete = async (row?: SceneryOperationDataVO) => {
+  if(row?.status == 1) { proxy?.$modal.msgWarning("褰撳墠涓哄凡鍚敤鐘舵�侊紝涓嶆敮鎸佸垹闄�"); return; }
   const _ids = row?.id || ids.value;
   await proxy?.$modal.confirm('鏄惁纭鍒犻櫎鏅尯杩愯鏁版嵁缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').finally(() => loading.value = false);
   await delSceneryOperationData(_ids);
@@ -321,7 +326,7 @@
 
 /** 瀵煎嚭鎸夐挳鎿嶄綔 */
 const handleExport = () => {
-  proxy?.download('sc/sceneryOperationData/export', {
+  proxy?.download('demo/sceneryOperationData/export', {
     ...queryParams.value
   }, `sceneryOperationData_${new Date().getTime()}.xlsx`)
 }
@@ -329,4 +334,28 @@
 onMounted(() => {
   getList();
 });
+
+
+/** 鍛ㄦ湡骞存垨鏈� */
+const pickerType = computed(() => {
+  return form.value.period === 1 ? 'year' : 'month';
+});
+
+const pickerFormat = computed(() => {
+  return form.value.period === 1 ? 'YYYY' : 'YYYY-MM';
+});
+
+/** 娓呯┖鍛ㄦ湡 */
+const clearPeriod = () => {
+  form.value.periodDate = undefined;
+};
+
+/** 璁剧疆鏅尯ID */
+const setSceneryInfoId = (sceneryInfoName: any) => {
+  const item = sceneryInfoNames.value.find(item => item.sceneryName === sceneryInfoName);
+  if(item) {
+    form.value.sceneryInfoId = item.id;
+  }
+}
+
 </script>
diff --git a/src/views/sceneryInfo/index.vue b/src/views/sceneryInfo/index.vue
new file mode 100644
index 0000000..1adff03
--- /dev/null
+++ b/src/views/sceneryInfo/index.vue
@@ -0,0 +1,219 @@
+<template>
+  <div class="p-2">
+    <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="['demo:sceneryInfo:add']">鏂板</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['demo:sceneryInfo:edit']">淇敼</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['demo:sceneryInfo:remove']">鍒犻櫎</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['demo:sceneryInfo:export']">瀵煎嚭</el-button>
+          </el-col>
+          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+      </template>
+
+      <el-table v-loading="loading" :data="sceneryInfoList" @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="搴忓彿" align="center" type="index" v-if="true" width="60" />
+        <el-table-column label="鏅尯鍚嶇О" align="center" prop="sceneryName" />
+        <el-table-column label="鎺掑簭" align="center" prop="sequence" />
+        <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="['demo:sceneryInfo:edit']"></el-button>
+            </el-tooltip>
+            <el-tooltip content="鍒犻櫎" placement="top">
+              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['demo:sceneryInfo: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="sceneryInfoFormRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="鏅尯鍚嶇О" prop="sceneryName">
+          <el-input v-model="form.sceneryName" placeholder="璇疯緭鍏ユ櫙鍖哄悕绉�" />
+        </el-form-item>
+        <el-form-item label="鎺掑簭" prop="sequence">
+          <el-input v-model="form.sequence" placeholder="璇疯緭鍏ユ帓搴�" />
+        </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="SceneryInfo" lang="ts">
+import { listSceneryInfo, getSceneryInfo, delSceneryInfo, addSceneryInfo, updateSceneryInfo } from '@/api/sceneryInfo';
+import { SceneryInfoVO, SceneryInfoQuery, SceneryInfoForm } from '@/api/sceneryInfo/types';
+
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+
+const sceneryInfoList = ref<SceneryInfoVO[]>([]);
+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 sceneryInfoFormRef = ref<ElFormInstance>();
+
+const dialog = reactive<DialogOption>({
+  visible: false,
+  title: ''
+});
+
+const initFormData: SceneryInfoForm = {
+  id: undefined,
+  sceneryName: undefined,
+  sequence: undefined,
+  status: undefined
+}
+const data = reactive<PageData<SceneryInfoForm, SceneryInfoQuery>>({
+  form: {...initFormData},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    sceneryName: undefined,
+    sequence: undefined,
+    createTime: undefined,
+    status: undefined,
+    params: {
+    }
+  },
+  rules: {
+    id: [
+      { required: true, message: "缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    sceneryName: [
+      { required: true, message: "鏅尯鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    sequence: [
+      { required: true, message: "鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    status: [
+      { required: true, message: "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢ㄤ笉鑳戒负绌�", trigger: "change" }
+    ]
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 鏌ヨ鏅尯閰嶇疆淇℃伅鍒楄〃 */
+const getList = async () => {
+  loading.value = true;
+  const res = await listSceneryInfo(queryParams.value);
+  sceneryInfoList.value = res.rows;
+  total.value = res.total;
+  loading.value = false;
+}
+
+/** 鍙栨秷鎸夐挳 */
+const cancel = () => {
+  reset();
+  dialog.visible = false;
+}
+
+/** 琛ㄥ崟閲嶇疆 */
+const reset = () => {
+  form.value = {...initFormData};
+  sceneryInfoFormRef.value?.resetFields();
+}
+
+/** 鎼滅储鎸夐挳鎿嶄綔 */
+const handleQuery = () => {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 閲嶇疆鎸夐挳鎿嶄綔 */
+const resetQuery = () => {
+  queryFormRef.value?.resetFields();
+  handleQuery();
+}
+
+/** 澶氶�夋閫変腑鏁版嵁 */
+const handleSelectionChange = (selection: SceneryInfoVO[]) => {
+  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?: SceneryInfoVO) => {
+  reset();
+  const _id = row?.id || ids.value[0]
+  const res = await getSceneryInfo(_id);
+  Object.assign(form.value, res.data);
+  dialog.visible = true;
+  dialog.title = "淇敼鏅尯閰嶇疆淇℃伅";
+}
+
+/** 鎻愪氦鎸夐挳 */
+const submitForm = () => {
+  sceneryInfoFormRef.value?.validate(async (valid: boolean) => {
+    if (valid) {
+      buttonLoading.value = true;
+      if (form.value.id) {
+        await updateSceneryInfo(form.value).finally(() =>  buttonLoading.value = false);
+      } else {
+        await addSceneryInfo(form.value).finally(() =>  buttonLoading.value = false);
+      }
+      proxy?.$modal.msgSuccess("淇敼鎴愬姛");
+      dialog.visible = false;
+      await getList();
+    }
+  });
+}
+
+/** 鍒犻櫎鎸夐挳鎿嶄綔 */
+const handleDelete = async (row?: SceneryInfoVO) => {
+  const _ids = row?.id || ids.value;
+  await proxy?.$modal.confirm('鏄惁纭鍒犻櫎鏅尯閰嶇疆淇℃伅缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').finally(() => loading.value = false);
+  await delSceneryInfo(_ids);
+  proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+  await getList();
+}
+
+/** 瀵煎嚭鎸夐挳鎿嶄綔 */
+const handleExport = () => {
+  proxy?.download('demo/sceneryInfo/export', {
+    ...queryParams.value
+  }, `sceneryInfo_${new Date().getTime()}.xlsx`)
+}
+
+onMounted(() => {
+  getList();
+});
+</script>
diff --git a/src/views/ti/trafficIndex/index.vue b/src/views/ti/trafficIndex/index.vue
index 9c5c0c8..8dd6780 100644
--- a/src/views/ti/trafficIndex/index.vue
+++ b/src/views/ti/trafficIndex/index.vue
@@ -9,7 +9,7 @@
       <div class="search" v-show="showSearch">
         <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
           <el-form-item label="缁熻鍛ㄦ湡" prop="periodDate">
-            <el-input v-model="queryParams.periodValue" placeholder="璇疯緭鍏ョ粺璁″懆鏈�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+            <el-input v-model="queryParams.periodDate" placeholder="璇疯緭鍏ョ粺璁″懆鏈�" clearable style="width: 240px" @keyup.enter="handleQuery" />
           </el-form-item>
           <el-form-item label="鐘舵��" prop="status">
             <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨" clearable style="width: 240px" @keyup.enter="handleQuery" >
@@ -97,62 +97,87 @@
         <el-form-item label="妯″潡鍚嶇О" prop="modeName">
           <el-input v-model="form.modeName" placeholder="璇疯緭鍏ユā鍧楀悕绉�" />
         </el-form-item>
-        <el-form-item label="鎸囨爣1鍚嶇О" prop="targetOneName">
+        <el-form-item label="缁熻鍛ㄦ湡" prop="periodDate" @change="clearPeriod">
+          <el-select v-model="form.period" placeholder="璇烽�夋嫨" style="width: 100px;">
+            <el-option key="1" label="骞村害" :value="1" />
+            <el-option key="2" label="鏈堝害" :value="2" />
+          </el-select>
+          &emsp;
+          <el-date-picker v-model="form.periodDate" :type="pickerType" :value-format="pickerFormat" placeholder="璇烽�夋嫨缁熻鍛ㄦ湡" />
+        </el-form-item>
+        <el-form-item label="鎸囨爣1" prop="targetOneName">
           <el-input v-model="form.targetOneName" placeholder="璇疯緭鍏ユ寚鏍�1鍚嶇О" />
         </el-form-item>
-        <el-form-item label="鎸囨爣1鍊�" prop="targetOneValue">
+        <el-form-item label="鏁板��" prop="targetOneValue">
           <el-input v-model="form.targetOneValue" placeholder="璇疯緭鍏ユ寚鏍�1鍊�" />
         </el-form-item>
-        <el-form-item label="鎸囨爣1鍗曚綅" prop="targetOneUnit">
+        <el-form-item label="鍗曚綅" prop="targetOneUnit">
           <el-input v-model="form.targetOneUnit" placeholder="璇疯緭鍏ユ寚鏍�1鍗曚綅" />
         </el-form-item>
-        <el-form-item label="鎸囨爣1涓婃诞鎴栦笅闄嶅��" prop="targetOneCompareValue">
-          <el-input v-model="form.targetOneCompareValue" placeholder="璇疯緭鍏ユ寚鏍�1涓婃诞鎴栦笅闄嶅��" />
+        <el-form-item label="娑ㄥ箙" prop="targetOneCompareValue">
+          <el-select v-model="form.targetOneStatus" placeholder="璇烽�夋嫨" style="width: 100px;">
+            <el-option key="1" label="涓婂崌" :value="1" />
+            <el-option key="2" label="涓嬮檷" :value="2" />
+          </el-select>
+          &emsp;
+          <el-input v-model="form.targetOneCompareValue" placeholder="璇疯緭鍏ユ寚鏍�1涓婃诞鎴栦笅闄嶅��" style="width: 200px;"/>
         </el-form-item>
-        <el-form-item label="鎸囨爣2鍚嶇О" prop="targetTwoName">
+        <el-form-item label="鎸囨爣2" prop="targetTwoName">
           <el-input v-model="form.targetTwoName" placeholder="璇疯緭鍏ユ寚鏍�2鍚嶇О" />
         </el-form-item>
-        <el-form-item label="鎸囨爣2鍊�" prop="targetTwoValue">
+        <el-form-item label="鏁板��" prop="targetTwoValue">
           <el-input v-model="form.targetTwoValue" placeholder="璇疯緭鍏ユ寚鏍�2鍊�" />
         </el-form-item>
-        <el-form-item label="鎸囨爣2鍗曚綅" prop="targetTwoUnit">
+        <el-form-item label="鍗曚綅" prop="targetTwoUnit">
           <el-input v-model="form.targetTwoUnit" placeholder="璇疯緭鍏ユ寚鏍�2鍗曚綅" />
         </el-form-item>
-        <el-form-item label="鎸囨爣2涓婃诞鎴栦笅闄嶅��" prop="targetTwoCompareValue">
-          <el-input v-model="form.targetTwoCompareValue" placeholder="璇疯緭鍏ユ寚鏍�2涓婃诞鎴栦笅闄嶅��" />
+        <el-form-item label="娑ㄥ箙" prop="targetTwoCompareValue">
+          <el-select v-model="form.targetTwoStatus" placeholder="璇烽�夋嫨" style="width: 100px;">
+            <el-option key="1" label="涓婂崌" :value="1" />
+            <el-option key="2" label="涓嬮檷" :value="2" />
+          </el-select>
+          &emsp;
+          <el-input v-model="form.targetTwoCompareValue" placeholder="璇疯緭鍏ユ寚鏍�2涓婃诞鎴栦笅闄嶅��" style="width: 200px;" />
         </el-form-item>
-        <el-form-item label="鎸囨爣3鍚嶇О" prop="targetThreeName">
+        <el-form-item label="鎸囨爣3" prop="targetThreeName">
           <el-input v-model="form.targetThreeName" placeholder="璇疯緭鍏ユ寚鏍�3鍚嶇О" />
         </el-form-item>
-        <el-form-item label="鎸囨爣3鍊�" prop="targetThreeValue">
+        <el-form-item label="鏁板��" prop="targetThreeValue">
           <el-input v-model="form.targetThreeValue" placeholder="璇疯緭鍏ユ寚鏍�3鍊�" />
         </el-form-item>
-        <el-form-item label="鎸囨爣3鍗曚綅" prop="targetThreeUnit">
+        <el-form-item label="鍗曚綅" prop="targetThreeUnit">
           <el-input v-model="form.targetThreeUnit" placeholder="璇疯緭鍏ユ寚鏍�3鍗曚綅" />
         </el-form-item>
-        <el-form-item label="鎸囨爣3涓婃诞鎴栦笅闄嶅��" prop="targetThreeCompareValue">
-          <el-input v-model="form.targetThreeCompareValue" placeholder="璇疯緭鍏ユ寚鏍�3涓婃诞鎴栦笅闄嶅��" />
+        <el-form-item label="娑ㄥ箙" prop="targetThreeCompareValue">
+          <el-select v-model="form.targetThreeStatus" placeholder="璇烽�夋嫨" style="width: 100px;">
+            <el-option key="1" label="涓婂崌" :value="1" />
+            <el-option key="2" label="涓嬮檷" :value="2" />
+          </el-select>
+          &emsp;
+          <el-input v-model="form.targetThreeCompareValue" placeholder="璇疯緭鍏ユ寚鏍�3涓婃诞鎴栦笅闄嶅��" style="width: 200px;" />
         </el-form-item>
-        <el-form-item label="鎸囨爣4鍚嶇О" prop="targetFourName">
+        <el-form-item label="鎸囨爣4" prop="targetFourName">
           <el-input v-model="form.targetFourName" placeholder="璇疯緭鍏ユ寚鏍�4鍚嶇О" />
         </el-form-item>
-        <el-form-item label="鎸囨爣4鍊�" prop="targetFourValue">
+        <el-form-item label="鏁板��" prop="targetFourValue">
           <el-input v-model="form.targetFourValue" placeholder="璇疯緭鍏ユ寚鏍�4鍊�" />
         </el-form-item>
-        <el-form-item label="鎸囨爣4鍗曚綅" prop="targetFourUnit">
+        <el-form-item label="鍗曚綅" prop="targetFourUnit">
           <el-input v-model="form.targetFourUnit" placeholder="璇疯緭鍏ユ寚鏍�4鍗曚綅" />
         </el-form-item>
-        <el-form-item label="鎸囨爣4涓婃诞鎴栦笅闄嶅��" prop="targetFourCompareValue">
-          <el-input v-model="form.targetFourCompareValue" placeholder="璇疯緭鍏ユ寚鏍�4涓婃诞鎴栦笅闄嶅��" />
+        <el-form-item label="娑ㄥ箙" prop="targetFourCompareValue">
+          <el-select v-model="form.targetFourStatus" placeholder="璇烽�夋嫨" style="width: 100px;">
+            <el-option key="1" label="涓婂崌" :value="1" />
+            <el-option key="2" label="涓嬮檷" :value="2" />
+          </el-select>
+          &emsp;
+          <el-input v-model="form.targetFourCompareValue" placeholder="璇疯緭鍏ユ寚鏍�4涓婃诞鎴栦笅闄嶅��" style="width: 200px;" />
         </el-form-item>
-        <el-form-item label="鍛ㄦ湡 1 鏈�  2骞�" prop="periodName">
-          <el-input v-model="form.periodName" placeholder="璇疯緭鍏ュ懆鏈� 1 鏈�  2骞�" />
-        </el-form-item>
-        <el-form-item label="鍛ㄦ湡鍊�" prop="periodValue">
-          <el-input v-model="form.periodValue" placeholder="璇疯緭鍏ュ懆鏈熷��" />
-        </el-form-item>
-        <el-form-item label="0鏈垹闄�   1宸插垹闄�" prop="del">
-          <el-input v-model="form.del" placeholder="璇疯緭鍏�0鏈垹闄�   1宸插垹闄�" />
+        <el-form-item label="鐘舵��" prop="status">
+          <el-select v-model="form.status" placeholder="璇烽�夋嫨">
+            <el-option key="1" label="宸插惎鐢�" :value="1" />
+            <el-option key="2" label="宸茬鐢�" :value="2" />
+          </el-select>
         </el-form-item>
       </el-form>
       <template #footer>
@@ -196,29 +221,29 @@
 const initFormData: TrafficIndexForm = {
   id: undefined,
   modeName: undefined,
+  periodDate: undefined,
+  period: 2,
   targetOneName: undefined,
   targetOneValue: undefined,
   targetOneUnit: undefined,
-  targetOneStatus: undefined,
+  targetOneStatus: 1,
   targetOneCompareValue: undefined,
   targetTwoName: undefined,
   targetTwoValue: undefined,
   targetTwoUnit: undefined,
-  targetTwoStatus: undefined,
+  targetTwoStatus: 1,
   targetTwoCompareValue: undefined,
   targetThreeName: undefined,
   targetThreeValue: undefined,
   targetThreeUnit: undefined,
-  targetThreeStatus: undefined,
+  targetThreeStatus: 1,
   targetThreeCompareValue: undefined,
   targetFourName: undefined,
   targetFourValue: undefined,
   targetFourUnit: undefined,
-  targetFourStatus: undefined,
+  targetFourStatus: 1,
   targetFourCompareValue: undefined,
-  status: undefined,
-  periodName: undefined,
-  periodValue: undefined,
+  status: 1,
   del: undefined
 }
 const data = reactive<PageData<TrafficIndexForm, TrafficIndexQuery>>({
@@ -248,8 +273,8 @@
     targetFourStatus: undefined,
     targetFourCompareValue: undefined,
     status: undefined,
-    periodName: undefined,
-    periodValue: undefined,
+    period: undefined,
+    periodDate: undefined,
     del: undefined,
     params: {
     }
@@ -324,10 +349,10 @@
     status: [
       { required: true, message: "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢ㄤ笉鑳戒负绌�", trigger: "change" }
     ],
-    periodName: [
+    period: [
       { required: true, message: "鍛ㄦ湡 1 鏈�  2骞翠笉鑳戒负绌�", trigger: "blur" }
     ],
-    periodValue: [
+    periodDate: [
       { required: true, message: "鍛ㄦ湡鍊间笉鑳戒负绌�", trigger: "blur" }
     ],
     del: [
@@ -416,6 +441,7 @@
 
 /** 鍒犻櫎鎸夐挳鎿嶄綔 */
 const handleDelete = async (row?: TrafficIndexVO) => {
+  if(row?.status == 1) { proxy?.$modal.msgWarning("褰撳墠涓哄凡鍚敤鐘舵�侊紝涓嶆敮鎸佸垹闄�"); return; }
   const _ids = row?.id || ids.value;
   await proxy?.$modal.confirm('鏄惁纭鍒犻櫎浜ら�氭寚鏁扮紪鍙蜂负"' + _ids + '"鐨勬暟鎹」锛�').finally(() => loading.value = false);
   await delTrafficIndex(_ids);
@@ -430,21 +456,21 @@
   }, `trafficIndex_${new Date().getTime()}.xlsx`)
 }
 
+/** 鍛ㄦ湡骞存垨鏈� */
+const pickerType = computed(() => {
+  return form.value.period === 1 ? 'year' : 'month';
+});
+
+const pickerFormat = computed(() => {
+  return form.value.period === 1 ? 'YYYY' : 'YYYY-MM';
+});
+
 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);
-      };
-      
+
+/** 娓呯┖鍛ㄦ湡 */
+const clearPeriod = () => {
+  form.value.periodDate = undefined;
+};      
 </script>

--
Gitblit v1.8.0