From b330e57051e54789eb83d10dc58c4d9d10c608e1 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期三, 17 九月 2025 09:55:19 +0800
Subject: [PATCH] 2025.9.17 数据产品模块(待完成)
---
src/views/fysp/data-product/base-data-product/components/BaseProdProcess.vue | 62 +++
src/components/core/Content.vue | 10
src/api/index.js | 3
src/components.d.ts | 8
src/components/SearchBar.vue | 20
src/views/fysp/data-product/base-data-product/ProdManage.vue | 76 ---
src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue | 31 +
src/constants/menu.js | 48 +-
src/router/index.js | 461 +++++++++++++-----------
src/router/index copy.js | 304 ++++++++++++++++
src/views/fysp/data-product/base-data-product/components/ProdQueryOpt.vue | 61 +++
11 files changed, 768 insertions(+), 316 deletions(-)
diff --git a/src/api/index.js b/src/api/index.js
index 766ad71..7b8275a 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -13,7 +13,8 @@
let ip2_file = 'https://fyami.com.cn/';
if (debug) {
- ip1 = 'http://192.168.0.103:9001/';
+ // ip1 = 'http://192.168.0.103:9001/';
+ ip1 = 'http://localhost:9001/';
// ip1_file = 'http://192.168.0.138:8080/';
// ip2 = 'http://192.168.0.138:8080/';
// ip2_file = 'https://fyami.com.cn/';
diff --git a/src/components.d.ts b/src/components.d.ts
index 15e5c5a..6076c52 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -20,7 +20,6 @@
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
- ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
ElCalendar: typeof import('element-plus/es')['ElCalendar']
ElCard: typeof import('element-plus/es')['ElCard']
ElCascader: typeof import('element-plus/es')['ElCascader']
@@ -37,9 +36,6 @@
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDrawer: typeof import('element-plus/es')['ElDrawer']
- ElDropdown: typeof import('element-plus/es')['ElDropdown']
- ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
- ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
@@ -55,16 +51,13 @@
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup']
ElOption: typeof import('element-plus/es')['ElOption']
- ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
ElPagination: typeof import('element-plus/es')['ElPagination']
- ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
- ElSegmented: typeof import('element-plus/es')['ElSegmented']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSpace: typeof import('element-plus/es')['ElSpace']
ElStep: typeof import('element-plus/es')['ElStep']
@@ -78,7 +71,6 @@
ElTag: typeof import('element-plus/es')['ElTag']
ElText: typeof import('element-plus/es')['ElText']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
- ElTransfer: typeof import('element-plus/es')['ElTransfer']
ElTree: typeof import('element-plus/es')['ElTree']
ElUpload: typeof import('element-plus/es')['ElUpload']
Footer: typeof import('./components/core/Footer.vue')['default']
diff --git a/src/components/SearchBar.vue b/src/components/SearchBar.vue
index 83835cb..c3609f4 100644
--- a/src/components/SearchBar.vue
+++ b/src/components/SearchBar.vue
@@ -22,7 +22,7 @@
:type="2"
v-model:value="formSearch.scenetype"
></FYOptionScene>
- <el-form-item>
+ <el-form-item v-show="btnShow">
<el-button type="primary" @click="onSubmit">鏌ヨ</el-button>
</el-form-item>
</el-form>
@@ -40,6 +40,17 @@
export default {
emits: ['onSubmit'],
+ props: {
+ btnShow: {
+ type: Boolean,
+ default: true
+ },
+ init: {
+ type: Boolean,
+ default: true
+ }
+ },
+
data() {
return {
topTasks: [],
@@ -62,7 +73,9 @@
});
this.topTasks = list;
this.formSearch.topTaskId = list[0].value;
- this.onSubmit();
+ if (this.init) {
+ this.onSubmit();
+ }
});
},
//鏌ヨ瀛愪换鍔$粺璁′俊鎭�
@@ -81,7 +94,8 @@
},
mounted() {
this.getOptions();
- }
+ },
+ expose: ['onSubmit']
};
</script>
diff --git a/src/components/core/Content.vue b/src/components/core/Content.vue
index 9ea18ea..1eaa98f 100644
--- a/src/components/core/Content.vue
+++ b/src/components/core/Content.vue
@@ -5,17 +5,21 @@
<component
v-if="route.meta.keepAlive"
:is="Component"
- :key="route.name"
+ :key="route.meta.key ? route.meta.key : route.name"
/>
</keep-alive>
- <component v-if="!route.meta.keepAlive" :is="Component" :key="route.name" />
+ <component
+ v-if="!route.meta.keepAlive"
+ :is="Component"
+ :key="route.meta.key ? route.meta.key : route.name"
+ />
<!-- </transition> -->
</router-view>
</template>
<script>
export default {
- name: 'CoreContent',
+ name: 'CoreContent'
};
</script>
<style scoped></style>
diff --git a/src/constants/menu.js b/src/constants/menu.js
index 2c2b22b..767b029 100644
--- a/src/constants/menu.js
+++ b/src/constants/menu.js
@@ -1,6 +1,6 @@
const MENU_COMMON = [
{
- path: 'common/userMatch',
+ path: '/common/userMatch',
icon: 'Connection',
name: '璐︽埛鍖归厤'
}
@@ -8,7 +8,7 @@
if (import.meta.env.DEV) {
MENU_COMMON.push({
- path: 'common/docTest',
+ path: '/common/docTest',
icon: 'Connection',
name: '鏂囨。鐢熸垚'
});
@@ -23,7 +23,7 @@
// ]
// },
{
- path: 'fysp/procheck',
+ path: '/fysp/procheck',
icon: 'CircleCheck',
name: '闂鏁存敼'
},
@@ -32,12 +32,12 @@
name: '浠诲姟绠$悊',
children: [
{
- path: 'fysp/task/manage',
+ path: '/fysp/task/manage',
icon: 'CircleCheck',
name: '鐩戠浠诲姟'
},
{
- path: 'fysp/sceneInfo',
+ path: '/fysp/sceneInfo',
icon: 'Files',
name: '鍦烘櫙淇℃伅'
}
@@ -48,22 +48,22 @@
name: '鍩虹鏁版嵁浜у搧',
children: [
{
- path: 'fysp/data-product/base/home/scene',
+ path: '/fysp/data-product/base/home/scene',
icon: 'Document',
name: '鐜板満宸℃煡',
},
// {
- // path: 'fysp/data-product/base/ProdMonitorTaskInfo',
+ // path: '/fysp/data-product/base/ProdMonitorTaskInfo',
// icon: 'Document',
// name: '鐩戠娓呭崟',
// },
// {
- // path: 'fysp/data-product/base/ProdTreatmentDeviceInfo',
+ // path: '/fysp/data-product/base/ProdTreatmentDeviceInfo',
// icon: 'Document',
// name: '闃叉不璁惧娓呭崟',
// },
{
- path: 'fysp/data-product/base/PordProblemRecurrence',
+ path: '/fysp/data-product/base/PordProblemRecurrence',
icon: 'Document',
name: '闂澶嶅彂娓呭崟',
},
@@ -74,27 +74,27 @@
name: '涓棿鏁版嵁浜у搧',
children: [
{
- path: 'fysp/data-product/profollow',
+ path: '/fysp/data-product/profollow',
icon: 'Document',
name: '闂鍔ㄦ�佽窡韪�'
},
{
- path: 'fysp/data-product/proanalysis',
+ path: '/fysp/data-product/proanalysis',
icon: 'Document',
name: '闂鏁存敼鍒嗘瀽'
},
{
- path: 'fysp/data-product/standardjudge',
+ path: '/fysp/data-product/standardjudge',
icon: 'Document',
name: '瑙勮寖鎬ц瘎浼�'
},
{
- path: 'fysp/data-product/dailyreport',
+ path: '/fysp/data-product/dailyreport',
icon: 'Document',
name: '鏃ユ姤绠$悊'
},
{
- path: 'fysp/data-product/lawenforcelist',
+ path: '/fysp/data-product/lawenforcelist',
icon: 'Document',
name: '鑱斿悎鎵ф硶娓呭崟'
},
@@ -106,7 +106,7 @@
name: '鏈�缁堟暟鎹骇鍝�',
children: [
{
- path: 'fysp/data-product/scenereport',
+ path: '/fysp/data-product/scenereport',
icon: 'Document',
name: '鍦烘櫙鍒嗘瀽鎶ュ憡'
}
@@ -122,12 +122,12 @@
name: '鑷姩璇勪及',
children: [
{
- path: 'fysp/evaluation/evalutationTask',
+ path: '/fysp/evaluation/evalutationTask',
icon: 'MessageBox',
name: '璇勪及浠诲姟'
},
{
- path: 'fysp/evaluation/evalutationRecord',
+ path: '/fysp/evaluation/evalutationRecord',
icon: 'Tickets',
name: '璇勪及璁板綍'
}
@@ -138,25 +138,25 @@
name: '閰嶇疆绠$悊',
children: [
{
- path: 'fysp/config/problemType',
+ path: '/fysp/config/problemType',
icon: 'List',
name: '鐩戠闂'
},
{
- path: 'fysp/config/deviceMatch',
+ path: '/fysp/config/deviceMatch',
icon: 'List',
name: '璁惧鍖归厤'
},
{
//璇勪及瑙勫垯绠$悊
- path: 'fysp/config/evalutationRule',
+ path: '/fysp/config/evalutationRule',
icon: 'List',
name: '璇勪及瑙勫垯'
}
]
},
{
- path: 'fysp/support',
+ path: '/fysp/support',
icon: 'Files',
name: '瀵瑰鏀寔'
},
@@ -215,12 +215,12 @@
// name: '鍙拌处瀹℃牳'
// },
{
- path: 'fytz/notice',
+ path: '/fytz/notice',
icon: 'Message',
name: '閫氱煡绠$悊'
},
{
- path: 'fytz/userInfo',
+ path: '/fytz/userInfo',
icon: 'User',
name: '璐︽埛淇℃伅'
},
@@ -229,7 +229,7 @@
name: '璧勬簮绠$悊',
children: [
{
- path: 'fytz/enforceCase',
+ path: '/fytz/enforceCase',
icon: 'Search',
name: '鐫e療妗堜緥'
}
diff --git a/src/router/index copy.js b/src/router/index copy.js
new file mode 100644
index 0000000..fa7bcf8
--- /dev/null
+++ b/src/router/index copy.js
@@ -0,0 +1,304 @@
+// eslint-disable-next-line no-unused-vars
+import {
+ createRouter,
+ createWebHistory,
+ createWebHashHistory
+} from 'vue-router';
+import pinia from '../stores/index';
+import { useLoadingStore } from '../stores/loadingStore';
+
+const routes = [
+ {
+ name: 'home',
+ path: '/',
+ component: () => import('@/views/HomePage.vue'),
+ children: [
+ // {
+ // //鏁存敼瀹℃牳
+ // name: 'changecheck',
+ // path: '/changecheck',
+ // component: () => import('@/views/check/ChangeCheck.vue')
+ // },
+ /**********************************椋炵窘鐩戠***********************************************/
+ {
+ //闂鍔ㄦ�佽窡韪�
+ name: 'profollow',
+ path: 'fysp/data-product/profollow',
+ component: () => import('@/views/fysp/data-product/ProdProFollow.vue')
+ },
+ {
+ //闂鏁存敼鍒嗘瀽
+ name: 'proanalysis',
+ path: 'fysp/data-product/proanalysis',
+ component: () => import('@/views/fysp/data-product/ProdProAnalysis.vue')
+ },
+ {
+ //瑙勮寖鎬ц瘎浼�
+ name: 'standardjudge',
+ path: 'fysp/data-product/standardjudge',
+ component: () =>
+ import('@/views/fysp/data-product/ProdStandardJudge.vue')
+ },
+ {
+ //鏃ユ姤绠$悊
+ name: 'dailyreport',
+ path: 'fysp/data-product/dailyreport',
+ component: () => import('@/views/fysp/data-product/ProdDailyReport.vue')
+ },
+ {
+ //鍦烘櫙鎶ュ憡
+ name: 'scenereport',
+ path: 'fysp/data-product/scenereport',
+ component: () => import('@/views/fysp/data-product/ProdSceneReport.vue')
+ },
+ {
+ //鍦烘櫙鎶ュ憡
+ name: 'lawenforcelist',
+ path: 'fysp/data-product/lawenforcelist',
+ component: () =>
+ import('@/views/fysp/data-product/ProdLawEnforceList.vue')
+ },
+ // {
+ // //鍦烘櫙鎶ュ憡-宸ュ湴
+ // name: 'construction',
+ // path: '/scenereport/construction',
+ // component: () => import('@/views/fysp/scenereport/ConstructionReport.vue')
+ // },
+ // {
+ // //鍦烘櫙鎶ュ憡-鐮佸ご
+ // name: 'wharf',
+ // path: '/scenereport/wharf',
+ // component: () => import('@/views/fysp/scenereport/WharfReport.vue')
+ // },
+ // {
+ // //鍦烘櫙鎶ュ憡-鎼呮媽绔�
+ // name: 'mixing',
+ // path: '/scenereport/mixing',
+ // component: () => import('@/views/fysp/scenereport/MixingReport.vue')
+ // },
+ // {
+ // //鍦烘櫙鎶ュ憡-鍫嗗満
+ // name: 'storage',
+ // path: '/scenereport/storage',
+ // component: () => import('@/views/fysp/scenereport/StorageReport.vue')
+ // },
+
+ {
+ //鐩戠浠诲姟
+ name: 'taskmanage',
+ path: 'fysp/task/manage',
+ component: () => import('@/views/fysp/task/TaskManage.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //鐩戠浠诲姟鍦烘櫙缂栬緫
+ name: 'monitorObjEdit',
+ path: 'fysp/task/edit',
+ component: () => import('@/views/fysp/task/MonitorObjEdit.vue')
+ },
+ {
+ //鐩戠浠诲姟璁″垝缂栬緫
+ name: 'monitorPlanEdit',
+ path: 'fysp/task/plan/edit',
+ component: () => import('@/views/fysp/task/MonitorPlanEdit.vue')
+ },
+ {
+ //鐩戠浠诲姟璁″垝缂栬緫
+ name: 'monitorTaskCreate',
+ path: 'fysp/task/create',
+ component: () => import('@/views/fysp/task/MonitorTaskCreate.vue')
+ },
+ {
+ //闂瀹℃牳
+ name: 'procheck',
+ path: 'fysp/procheck',
+ component: () => import('@/views/fysp/check/ProCheck.vue')
+ },
+ // {
+ // //璐︽埛绠$悊
+ // name: 'fyspUser',
+ // path: 'fysp/userInfo',
+ // component: () => import('@/views/baseinfo/fysp/user/UserInfo.vue')
+ // },
+ {
+ //鐩戠闂
+ name: 'fyspProblemType',
+ path: 'fysp/config/problemType',
+ component: () => import('@/views/fysp/config/ProblemType.vue')
+ },
+ {
+ //璁惧鍖归厤
+ name: 'fyspDeviceMatch',
+ path: 'fysp/config/deviceMatch',
+ component: () => import('@/views/fysp/config/DeviceMatch.vue')
+ },
+ {
+ //璇勪及瑙勫垯绠$悊
+ name: 'fyspEvalutationRule',
+ path: 'fysp/config/evalutationRule',
+ component: () => import('@/views/fysp/config/EvalutationRule.vue')
+ },
+ {
+ //璇勪及鏁版嵁婧�
+ name: 'fyspEvalutationTask',
+ path: 'fysp/evaluation/evalutationTask',
+ component: () => import('@/views/fysp/evaluation/EvalutationTask.vue'),
+ meta: { keepAlive: false }
+ },
+ {
+ //璇勪及绠$悊
+ name: 'fyspEvalutationRecord',
+ path: 'fysp/evaluation/evalutationRecord',
+ component: () =>
+ import('@/views/fysp/evaluation/EvalutationRecord.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //璇勪及缁撴灉璇︽儏
+ name: 'fyspEvalutationEdit',
+ path: 'fysp/evaluation/evalutationEdit/:subTaskId',
+ component: () => import('@/views/fysp/evaluation/EvalutationEdit.vue')
+ },
+ {
+ //鍦烘櫙淇℃伅
+ name: 'fyspSceneInfo',
+ path: 'fysp/sceneInfo',
+ component: () => import('@/views/fysp/scene/SceneInfo.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //鍦烘櫙缂栬緫
+ name: 'fyspSceneEdit',
+ path: 'fysp/sceneEdit/:sid',
+ component: () => import('@/views/fysp/scene/SceneEdit.vue'),
+ meta: { transition: 'slide-left' }
+ },
+ {
+ //瀵瑰鏀寔
+ name: 'fyspSupport',
+ path: 'fysp/support',
+ component: () => import('@/views/fysp/support/JingAnSupport.vue')
+ },
+ {
+ // 鍩虹浜у搧-绠$悊
+ name: 'ProdManage',
+ path: 'fysp/data-product/base/home',
+ component: () =>
+ import('@/views/fysp/data-product/base-data-product/ProdManage.vue'),
+ children: [
+ {
+ // 鍩虹浜у搧-鍦烘櫙娓呭崟
+ path: 'scene',
+ name: 'ProdSceneInfo',
+ meta: { keepAlive: true },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdSceneInfo.vue'
+ )
+ },
+ {
+ // 鍩虹浜у搧-瑙勮寖鎬ц瘎浼�
+ path: 'evaluate',
+ name: 'ProdEvaluationInfo',
+ meta: { keepAlive: true },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue'
+ )
+ },
+ {
+ // 鍩虹浜у搧-宸℃煡淇℃伅
+ path: 'inspection',
+ name: 'ProdInspectionInfo',
+ meta: { keepAlive: true },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue'
+ )
+ },
+ {
+ // 鍩虹浜у搧-鐩戞祴鏁版嵁
+ path: 'monitordata',
+ name: 'ProdMonitorDataInfo',
+ meta: { keepAlive: true },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdMonitorDataInfo.vue'
+ )
+ }
+ ]
+ },
+ {
+ // 鍩虹浜у搧-闂澶嶅彂娓呭崟
+ name: 'PordProblemRecurrence',
+ path: 'fysp/data-product/base/PordProblemRecurrence',
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/PordProblemRecurrence.vue'
+ )
+ },
+
+ /**********************************椋炵窘鐜***********************************************/
+ {
+ //鍙拌处瀹℃牳
+ name: 'ledger',
+ path: 'fytz/ledger',
+ component: () => import('@/views/fytz/ledger/LedgerManage.vue')
+ },
+ {
+ //閫氱煡绠$悊
+ name: 'notice',
+ path: 'fytz/notice',
+ component: () => import('@/views/fytz/notice/NoticeManage.vue')
+ },
+ {
+ //璐︽埛绠$悊
+ name: 'fytzUser',
+ path: 'fytz/userInfo',
+ component: () => import('@/views/fytz/user/UserInfo.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //璐︽埛缂栬緫
+ name: 'fytzUserEdit',
+ path: 'fytz/userEdit/:userId',
+ component: () => import('@/views/fytz/user/UserEdit.vue'),
+ meta: { transition: 'slide-left' }
+ },
+ {
+ //鐜繚鐫e療妗堜緥
+ name: 'enforceCase',
+ path: 'fytz/enforceCase',
+ component: () => import('@/views/fytz/enforce-case/EnforceCase.vue')
+ },
+
+ /**********************************閫氱敤妯″潡***********************************************/
+ {
+ //璐︽埛鍖归厤
+ name: 'userMatch',
+ path: 'common/userMatch',
+ component: () => import('@/views/common/UserMatch.vue')
+ },
+ {
+ //鏂囨。鐢熸垚娴嬭瘯
+ name: 'docTest',
+ path: 'common/docTest',
+ component: () => import('@/views/DocTest.vue')
+ }
+ ]
+ }
+];
+
+const router = createRouter({
+ // history: createWebHistory(import.meta.env.BASE_URL)
+ history: createWebHashHistory(),
+ routes: routes
+});
+
+const loadingStore = useLoadingStore(pinia);
+// eslint-disable-next-line no-unused-vars
+router.afterEach((to, from) => {
+ loadingStore.clearLoading();
+});
+
+export { router, routes };
diff --git a/src/router/index.js b/src/router/index.js
index fa7bcf8..925417d 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -13,229 +13,262 @@
path: '/',
component: () => import('@/views/HomePage.vue'),
children: [
- // {
- // //鏁存敼瀹℃牳
- // name: 'changecheck',
- // path: '/changecheck',
- // component: () => import('@/views/check/ChangeCheck.vue')
- // },
- /**********************************椋炵窘鐩戠***********************************************/
{
- //闂鍔ㄦ�佽窡韪�
- name: 'profollow',
- path: 'fysp/data-product/profollow',
- component: () => import('@/views/fysp/data-product/ProdProFollow.vue')
- },
- {
- //闂鏁存敼鍒嗘瀽
- name: 'proanalysis',
- path: 'fysp/data-product/proanalysis',
- component: () => import('@/views/fysp/data-product/ProdProAnalysis.vue')
- },
- {
- //瑙勮寖鎬ц瘎浼�
- name: 'standardjudge',
- path: 'fysp/data-product/standardjudge',
- component: () =>
- import('@/views/fysp/data-product/ProdStandardJudge.vue')
- },
- {
- //鏃ユ姤绠$悊
- name: 'dailyreport',
- path: 'fysp/data-product/dailyreport',
- component: () => import('@/views/fysp/data-product/ProdDailyReport.vue')
- },
- {
- //鍦烘櫙鎶ュ憡
- name: 'scenereport',
- path: 'fysp/data-product/scenereport',
- component: () => import('@/views/fysp/data-product/ProdSceneReport.vue')
- },
- {
- //鍦烘櫙鎶ュ憡
- name: 'lawenforcelist',
- path: 'fysp/data-product/lawenforcelist',
- component: () =>
- import('@/views/fysp/data-product/ProdLawEnforceList.vue')
- },
- // {
- // //鍦烘櫙鎶ュ憡-宸ュ湴
- // name: 'construction',
- // path: '/scenereport/construction',
- // component: () => import('@/views/fysp/scenereport/ConstructionReport.vue')
- // },
- // {
- // //鍦烘櫙鎶ュ憡-鐮佸ご
- // name: 'wharf',
- // path: '/scenereport/wharf',
- // component: () => import('@/views/fysp/scenereport/WharfReport.vue')
- // },
- // {
- // //鍦烘櫙鎶ュ憡-鎼呮媽绔�
- // name: 'mixing',
- // path: '/scenereport/mixing',
- // component: () => import('@/views/fysp/scenereport/MixingReport.vue')
- // },
- // {
- // //鍦烘櫙鎶ュ憡-鍫嗗満
- // name: 'storage',
- // path: '/scenereport/storage',
- // component: () => import('@/views/fysp/scenereport/StorageReport.vue')
- // },
-
- {
- //鐩戠浠诲姟
- name: 'taskmanage',
- path: 'fysp/task/manage',
- component: () => import('@/views/fysp/task/TaskManage.vue'),
- meta: { keepAlive: true }
- },
- {
- //鐩戠浠诲姟鍦烘櫙缂栬緫
- name: 'monitorObjEdit',
- path: 'fysp/task/edit',
- component: () => import('@/views/fysp/task/MonitorObjEdit.vue')
- },
- {
- //鐩戠浠诲姟璁″垝缂栬緫
- name: 'monitorPlanEdit',
- path: 'fysp/task/plan/edit',
- component: () => import('@/views/fysp/task/MonitorPlanEdit.vue')
- },
- {
- //鐩戠浠诲姟璁″垝缂栬緫
- name: 'monitorTaskCreate',
- path: 'fysp/task/create',
- component: () => import('@/views/fysp/task/MonitorTaskCreate.vue')
- },
- {
- //闂瀹℃牳
- name: 'procheck',
- path: 'fysp/procheck',
- component: () => import('@/views/fysp/check/ProCheck.vue')
- },
- // {
- // //璐︽埛绠$悊
- // name: 'fyspUser',
- // path: 'fysp/userInfo',
- // component: () => import('@/views/baseinfo/fysp/user/UserInfo.vue')
- // },
- {
- //鐩戠闂
- name: 'fyspProblemType',
- path: 'fysp/config/problemType',
- component: () => import('@/views/fysp/config/ProblemType.vue')
- },
- {
- //璁惧鍖归厤
- name: 'fyspDeviceMatch',
- path: 'fysp/config/deviceMatch',
- component: () => import('@/views/fysp/config/DeviceMatch.vue')
- },
- {
- //璇勪及瑙勫垯绠$悊
- name: 'fyspEvalutationRule',
- path: 'fysp/config/evalutationRule',
- component: () => import('@/views/fysp/config/EvalutationRule.vue')
- },
- {
- //璇勪及鏁版嵁婧�
- name: 'fyspEvalutationTask',
- path: 'fysp/evaluation/evalutationTask',
- component: () => import('@/views/fysp/evaluation/EvalutationTask.vue'),
- meta: { keepAlive: false }
- },
- {
- //璇勪及绠$悊
- name: 'fyspEvalutationRecord',
- path: 'fysp/evaluation/evalutationRecord',
- component: () =>
- import('@/views/fysp/evaluation/EvalutationRecord.vue'),
- meta: { keepAlive: true }
- },
- {
- //璇勪及缁撴灉璇︽儏
- name: 'fyspEvalutationEdit',
- path: 'fysp/evaluation/evalutationEdit/:subTaskId',
- component: () => import('@/views/fysp/evaluation/EvalutationEdit.vue')
- },
- {
- //鍦烘櫙淇℃伅
- name: 'fyspSceneInfo',
- path: 'fysp/sceneInfo',
- component: () => import('@/views/fysp/scene/SceneInfo.vue'),
- meta: { keepAlive: true }
- },
- {
- //鍦烘櫙缂栬緫
- name: 'fyspSceneEdit',
- path: 'fysp/sceneEdit/:sid',
- component: () => import('@/views/fysp/scene/SceneEdit.vue'),
- meta: { transition: 'slide-left' }
- },
- {
- //瀵瑰鏀寔
- name: 'fyspSupport',
- path: 'fysp/support',
- component: () => import('@/views/fysp/support/JingAnSupport.vue')
- },
- {
- // 鍩虹浜у搧-绠$悊
- name: 'ProdManage',
- path: 'fysp/data-product/base/home',
- component: () =>
- import('@/views/fysp/data-product/base-data-product/ProdManage.vue'),
+ name: 'fysp',
+ path: 'fysp',
children: [
+ // {
+ // //鏁存敼瀹℃牳
+ // name: 'changecheck',
+ // path: '/changecheck',
+ // component: () => import('@/views/check/ChangeCheck.vue')
+ // },
+ /**********************************椋炵窘鐩戠***********************************************/
{
- // 鍩虹浜у搧-鍦烘櫙娓呭崟
- path: 'scene',
- name: 'ProdSceneInfo',
- meta: { keepAlive: true },
- component: () =>
- import(
- '@/views/fysp/data-product/base-data-product/ProdSceneInfo.vue'
- )
+ //闂瀹℃牳
+ name: 'procheck',
+ path: 'procheck',
+ component: () => import('@/views/fysp/check/ProCheck.vue')
},
{
- // 鍩虹浜у搧-瑙勮寖鎬ц瘎浼�
- path: 'evaluate',
- name: 'ProdEvaluationInfo',
- meta: { keepAlive: true },
- component: () =>
- import(
- '@/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue'
- )
+ name: 'data-product',
+ path: 'data-product',
+ children: [
+ {
+ //闂鍔ㄦ�佽窡韪�
+ name: 'profollow',
+ path: 'profollow',
+ component: () =>
+ import('@/views/fysp/data-product/ProdProFollow.vue')
+ },
+ {
+ //闂鏁存敼鍒嗘瀽
+ name: 'proanalysis',
+ path: 'proanalysis',
+ component: () =>
+ import('@/views/fysp/data-product/ProdProAnalysis.vue')
+ },
+ {
+ //瑙勮寖鎬ц瘎浼�
+ name: 'standardjudge',
+ path: 'standardjudge',
+ component: () =>
+ import('@/views/fysp/data-product/ProdStandardJudge.vue')
+ },
+ {
+ //鏃ユ姤绠$悊
+ name: 'dailyreport',
+ path: 'dailyreport',
+ component: () =>
+ import('@/views/fysp/data-product/ProdDailyReport.vue')
+ },
+ {
+ //鍦烘櫙鎶ュ憡
+ name: 'scenereport',
+ path: 'scenereport',
+ component: () =>
+ import('@/views/fysp/data-product/ProdSceneReport.vue')
+ },
+ {
+ //鍦烘櫙鎶ュ憡
+ name: 'lawenforcelist',
+ path: 'lawenforcelist',
+ component: () =>
+ import('@/views/fysp/data-product/ProdLawEnforceList.vue')
+ },
+ {
+ name: 'dataProdBase',
+ path: 'base',
+ children: [
+ {
+ // 鍩虹浜у搧-绠$悊
+ name: 'ProdManage',
+ path: 'home',
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdManage.vue'
+ ),
+ children: [
+ {
+ // 鍩虹浜у搧-鍦烘櫙娓呭崟
+ path: 'scene',
+ name: 'ProdSceneInfo',
+ meta: { keepAlive: true, key: 'ProdManage' },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdSceneInfo.vue'
+ )
+ },
+ {
+ // 鍩虹浜у搧-瑙勮寖鎬ц瘎浼�
+ path: 'evaluate',
+ name: 'ProdEvaluationInfo',
+ meta: { keepAlive: true, key: 'ProdManage' },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue'
+ )
+ },
+ {
+ // 鍩虹浜у搧-宸℃煡淇℃伅
+ path: 'inspection',
+ name: 'ProdInspectionInfo',
+ meta: { keepAlive: true, key: 'ProdManage' },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue'
+ )
+ },
+ {
+ // 鍩虹浜у搧-鐩戞祴鏁版嵁
+ path: 'monitordata',
+ name: 'ProdMonitorDataInfo',
+ meta: { keepAlive: true, key: 'ProdManage' },
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/ProdMonitorDataInfo.vue'
+ )
+ }
+ ]
+ },
+ {
+ // 鍩虹浜у搧-闂澶嶅彂娓呭崟
+ name: 'PordProblemRecurrence',
+ path: 'PordProblemRecurrence',
+ component: () =>
+ import(
+ '@/views/fysp/data-product/base-data-product/PordProblemRecurrence.vue'
+ )
+ }
+ ]
+ }
+ ]
},
{
- // 鍩虹浜у搧-宸℃煡淇℃伅
- path: 'inspection',
- name: 'ProdInspectionInfo',
- meta: { keepAlive: true },
- component: () =>
- import(
- '@/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue'
- )
+ name: 'task',
+ path: 'task',
+ children: [
+ {
+ //鐩戠浠诲姟
+ name: 'taskmanage',
+ path: 'manage',
+ component: () => import('@/views/fysp/task/TaskManage.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //鐩戠浠诲姟鍦烘櫙缂栬緫
+ name: 'monitorObjEdit',
+ path: 'edit',
+ component: () => import('@/views/fysp/task/MonitorObjEdit.vue')
+ },
+ {
+ name: 'plan',
+ path: 'plan',
+ children: [
+ {
+ //鐩戠浠诲姟璁″垝缂栬緫
+ name: 'monitorPlanEdit',
+ path: 'edit',
+ component: () =>
+ import('@/views/fysp/task/MonitorPlanEdit.vue')
+ }
+ ]
+ },
+
+ {
+ //鐩戠浠诲姟璁″垝缂栬緫
+ name: 'monitorTaskCreate',
+ path: 'create',
+ component: () =>
+ import('@/views/fysp/task/MonitorTaskCreate.vue')
+ }
+ ]
+ },
+
+ // {
+ // //璐︽埛绠$悊
+ // name: 'fyspUser',
+ // path: 'userInfo',
+ // component: () => import('@/views/baseinfo/fysp/user/UserInfo.vue')
+ // },
+ {
+ //鐩戠闂
+ name: 'config',
+ path: 'config',
+ children: [
+ {
+ //鐩戠闂
+ name: 'fyspProblemType',
+ path: 'problemType',
+ component: () => import('@/views/fysp/config/ProblemType.vue')
+ },
+ {
+ //璁惧鍖归厤
+ name: 'fyspDeviceMatch',
+ path: 'deviceMatch',
+ component: () => import('@/views/fysp/config/DeviceMatch.vue')
+ },
+ {
+ //璇勪及瑙勫垯绠$悊
+ name: 'fyspEvalutationRule',
+ path: 'evalutationRule',
+ component: () =>
+ import('@/views/fysp/config/EvalutationRule.vue')
+ }
+ ]
},
{
- // 鍩虹浜у搧-鐩戞祴鏁版嵁
- path: 'monitordata',
- name: 'ProdMonitorDataInfo',
- meta: { keepAlive: true },
- component: () =>
- import(
- '@/views/fysp/data-product/base-data-product/ProdMonitorDataInfo.vue'
- )
+ //璇勪及鏁版嵁婧�
+ name: 'evaluation',
+ path: 'evaluation',
+ children: [
+ {
+ //璇勪及鏁版嵁婧�
+ name: 'fyspEvalutationTask',
+ path: 'evalutationTask',
+ component: () =>
+ import('@/views/fysp/evaluation/EvalutationTask.vue'),
+ meta: { keepAlive: false }
+ },
+ {
+ //璇勪及绠$悊
+ name: 'fyspEvalutationRecord',
+ path: 'evalutationRecord',
+ component: () =>
+ import('@/views/fysp/evaluation/EvalutationRecord.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //璇勪及缁撴灉璇︽儏
+ name: 'fyspEvalutationEdit',
+ path: 'evalutationEdit/:subTaskId',
+ component: () =>
+ import('@/views/fysp/evaluation/EvalutationEdit.vue')
+ }
+ ]
+ },
+
+ {
+ //鍦烘櫙淇℃伅
+ name: 'fyspSceneInfo',
+ path: 'sceneInfo',
+ component: () => import('@/views/fysp/scene/SceneInfo.vue'),
+ meta: { keepAlive: true }
+ },
+ {
+ //鍦烘櫙缂栬緫
+ name: 'fyspSceneEdit',
+ path: 'sceneEdit/:sid',
+ component: () => import('@/views/fysp/scene/SceneEdit.vue'),
+ meta: { transition: 'slide-left' }
+ },
+ {
+ //瀵瑰鏀寔
+ name: 'fyspSupport',
+ path: 'support',
+ component: () => import('@/views/fysp/support/JingAnSupport.vue')
}
]
- },
- {
- // 鍩虹浜у搧-闂澶嶅彂娓呭崟
- name: 'PordProblemRecurrence',
- path: 'fysp/data-product/base/PordProblemRecurrence',
- component: () =>
- import(
- '@/views/fysp/data-product/base-data-product/PordProblemRecurrence.vue'
- )
},
/**********************************椋炵窘鐜***********************************************/
@@ -290,8 +323,8 @@
];
const router = createRouter({
- // history: createWebHistory(import.meta.env.BASE_URL)
- history: createWebHashHistory(),
+ history: createWebHistory(import.meta.env.BASE_URL),
+ // history: createWebHashHistory(),
routes: routes
});
diff --git a/src/views/fysp/data-product/base-data-product/ProdManage.vue b/src/views/fysp/data-product/base-data-product/ProdManage.vue
index 8d04a34..8ca321f 100644
--- a/src/views/fysp/data-product/base-data-product/ProdManage.vue
+++ b/src/views/fysp/data-product/base-data-product/ProdManage.vue
@@ -1,22 +1,18 @@
<template>
- <!-- <el-menu default-active="scene" ellipsis mode="horizontal" style="max-width: 600px">
- <el-menu-item index="scene" @click="navPage">鍦烘櫙娓呭崟</el-menu-item>
- <el-menu-item index="evaluate" @click="navPage">璇勪及娓呭崟</el-menu-item>
- <el-menu-item index="inspection" @click="navPage">宸℃煡淇℃伅</el-menu-item>
- <el-menu-item index="monitorData" @click="navPage">鐩戞祴鏁版嵁</el-menu-item>
- </el-menu> -->
- <!-- <a @click="navPage({ index: 'scene' })"><div>鍦烘櫙娓呭崟</div></a>
- <a @click="navPage({ index: 'evaluate' })"><div>璇勪及娓呭崟</div></a>
- <a @click="navPage({ index: 'inspection' })"><div>宸℃煡淇℃伅</div></a>
- <a @click="navPage({ index: 'monitorData' })"><div>鐩戞祴鏁版嵁</div></a> -->
- <el-space>
- <template v-for="(item, index) in menu" :key="item.path">
- <a :class="btnClz(item.selected)" @click="navTo(index)">
- <div>{{ item.name }}</div>
- </a>
- </template>
- </el-space>
- <div>sssss</div>
+ <el-menu
+ default-active="scene"
+ ellipsis
+ mode="horizontal"
+ style="max-width: 600px"
+ >
+ <el-menu-item
+ v-for="item in menu"
+ :key="item.path"
+ :index="item.path"
+ @click="navPage"
+ >{{ item.name }}</el-menu-item
+ >
+ </el-menu>
<router-view v-slot="{ Component, route }">
<keep-alive>
<component
@@ -54,55 +50,13 @@
path: 'monitorData'
}
]);
-// console.log(router);
-// console.log(route.path);
const navPage = (item) => {
- console.log(item);
if (item.index) {
router.push({
path: item.index
});
}
};
-function btnClz(selected) {
- return (
- 'mode-btn ' + (selected ? 'btn-selected ' : 'btn-unselected ') + 'm-r-8'
- );
-}
-
-function navTo(index) {
- const m = this.menu;
- m.forEach((e) => {
- e.selected = false;
- });
- m[index].selected = true;
- router.replace(m[index].path);
-}
-
-onMounted(() => {
- console.log(route.path);
- // router.push('/fysp/data-product/base/home/scene');
-});
</script>
-<style scoped>
-.mode-btn {
- padding: 8px 16px;
- border-radius: 4px;
- font-size: 14px;
- color: #303133;
- background-color: #f5f7fa;
- border: 1px solid #dcdfe6;
- cursor: pointer;
-}
-.btn-selected {
- color: #fff;
- background-color: #409eff;
- border-color: #409eff;
-}
-.btn-unselected {
- color: #303133;
- background-color: #f5f7fa;
- border-color: #dcdfe6;
-}
-</style>
+<style scoped></style>
diff --git a/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue b/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue
index 6c8ee7c..7412ddf 100644
--- a/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue
+++ b/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue
@@ -1,4 +1,31 @@
<template>
- ProdSceneInfo
+ <BaseProdProcess :active="active">
+ <template #step1>
+ <ProdQueryOpt :loading="loading" @submit="onSearch"> </ProdQueryOpt>
+ </template>
+ <template #step2></template>
+ <template #step3></template>
+ </BaseProdProcess>
</template>
-<script></script>
\ No newline at end of file
+<script setup>
+import { ref } from 'vue';
+import BaseProdProcess from '@/views/fysp/data-product/base-data-product/components/BaseProdProcess.vue';
+import ProdQueryOpt from '@/views/fysp/data-product/base-data-product/components/ProdQueryOpt.vue';
+
+const active = ref(1);
+const loading = ref(false)
+
+function changeActive() {
+ active.value++;
+ active.value = active.value > 3 ? 1 : active.value;
+}
+
+function onSearch(opt) {
+ console.log(opt);
+ loading.value = true;
+ setTimeout(() => {
+ changeActive()
+ loading.value = false;
+ }, 1000);
+}
+</script>
diff --git a/src/views/fysp/data-product/base-data-product/components/BaseProdProcess.vue b/src/views/fysp/data-product/base-data-product/components/BaseProdProcess.vue
new file mode 100644
index 0000000..fb18256
--- /dev/null
+++ b/src/views/fysp/data-product/base-data-product/components/BaseProdProcess.vue
@@ -0,0 +1,62 @@
+<template>
+ <!-- <el-button type="primary" @click="changeActive">change</el-button> -->
+ <!-- <el-row>
+ <el-col
+ :span="active == 1 ? 16 : 4"
+ :class="active == 1 ? 'prod-active' : 'prod-inactive'"
+ >step1</el-col>
+ <el-col
+ :span="active == 2 ? 16 : 4"
+ :class="active == 2 ? 'prod-active' : 'prod-inactive'"
+ >step2</el-col>
+ <el-col
+ :span="active == 3 ? 16 : 4"
+ :class="active == 3 ? 'prod-active' : 'prod-inactive'"
+ >step3</el-col>
+ </el-row> -->
+ <el-row>
+ <div :class="active == 1 ? 'prod-active' : 'prod-inactive'">
+ <slot name="step1"></slot>
+ </div>
+ <div :class="active == 2 ? 'prod-active' : 'prod-inactive'">
+ <slot name="step2"></slot>
+ </div>
+ <div :class="active == 3 ? 'prod-active' : 'prod-inactive'">
+ <slot name="step3"></slot>
+ </div>
+ </el-row>
+</template>
+<script setup>
+import { ref } from 'vue';
+
+const props = defineProps({
+ active: {
+ type: Number,
+ default: 1
+ }
+});
+
+// function changeActive() {
+// active.value++;
+// active.value = active.value > 3 ? 1 : active.value;
+// }
+</script>
+<style scoped>
+.prod-active {
+ width: 66.667%;
+ transition: width 0.5s ease;
+ background-color: #409eff;
+ color: white;
+ margin: 5px 0;
+ border-radius: 4px;
+}
+
+.prod-inactive {
+ width: 16.667%;
+ transition: width 0.5s ease;
+ background-color: #e4e7ed;
+ color: #606266;
+ margin: 5px 0;
+ border-radius: 4px;
+}
+</style>
diff --git a/src/views/fysp/data-product/base-data-product/components/ProdQueryOpt.vue b/src/views/fysp/data-product/base-data-product/components/ProdQueryOpt.vue
new file mode 100644
index 0000000..55ed176
--- /dev/null
+++ b/src/views/fysp/data-product/base-data-product/components/ProdQueryOpt.vue
@@ -0,0 +1,61 @@
+<template>
+ <el-card shadow="never">
+ <template #header>
+ <div><el-text tag="b" size="large">浜у搧鐢熸垚閫夐」</el-text></div>
+ </template>
+ <SearchBar
+ ref="refSearchBar"
+ :btn-show="false"
+ :init="false"
+ @on-submit="search"
+ >
+ </SearchBar>
+ <template #footer>
+ <el-row justify="space-around">
+ <el-button
+ type="primary"
+ size="default"
+ :loading="loading"
+ @click="submit"
+ >鐢熸垚</el-button
+ >
+ </el-row>
+ </template>
+ </el-card>
+</template>
+<script setup>
+import { ref, computed } from 'vue';
+import dayjs from 'dayjs';
+
+const props = defineProps({
+ loading: {
+ type: Boolean,
+ default: false
+ }
+});
+const emit = defineEmits(['submit']);
+
+const refSearchBar = ref(null);
+
+const submit = () => {
+ refSearchBar.value.onSubmit();
+};
+
+const search = (options) => {
+ const opt = {
+ topTaskId: options.topTask.tguid,
+ provinceCode: options.topTask.provincecode,
+ cityCode: options.topTask.citycode,
+ districtCode: options.topTask.districtcode,
+ townCode: options.topTask.towncode,
+ startTime: dayjs(options.topTask.starttime).format('YYYY-MM-DD HH:mm:ss'),
+ endTime: dayjs(options.topTask.endtime)
+ .add(1, 'day')
+ .add(-1, 'second')
+ .format('YYYY-MM-DD HH:mm:ss'),
+ sceneTypeId: options.sceneTypeId,
+ needCache: true
+ };
+ emit('submit', opt);
+};
+</script>
--
Gitblit v1.9.3