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> - +   <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> +   + <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> +   + <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> +   + <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> +   + <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> +   + <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> +   + <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> +   + <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