| | |
| | | |
| | | if (debug) { |
| | | 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/'; |
| | |
| | | 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'] |
| | | ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] |
| | | ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] |
| | | ElCol: typeof import('element-plus/es')['ElCol'] |
| | | ElCollapse: typeof import('element-plus/es')['ElCollapse'] |
| | | ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] |
| | |
| | | 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'] |
| | |
| | | ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] |
| | | ElInput: typeof import('element-plus/es')['ElInput'] |
| | | ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] |
| | | ElLink: typeof import('element-plus/es')['ElLink'] |
| | | ElMain: typeof import('element-plus/es')['ElMain'] |
| | | ElMenu: typeof import('element-plus/es')['ElMenu'] |
| | | 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'] |
| | |
| | | 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'] |
| | |
| | | :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> |
| | |
| | | |
| | | export default { |
| | | emits: ['onSubmit'], |
| | | props: { |
| | | btnShow: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | init: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | topTasks: [], |
| | |
| | | }); |
| | | this.topTasks = list; |
| | | this.formSearch.topTaskId = list[0].value; |
| | | this.onSubmit(); |
| | | if (this.init) { |
| | | this.onSubmit(); |
| | | } |
| | | }); |
| | | }, |
| | | //æ¥è¯¢åä»»å¡ç»è®¡ä¿¡æ¯ |
| | |
| | | }, |
| | | mounted() { |
| | | this.getOptions(); |
| | | } |
| | | }, |
| | | expose: ['onSubmit'] |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <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> |
| | |
| | | const MENU_COMMON = [ |
| | | { |
| | | path: 'common/userMatch', |
| | | path: '/common/userMatch', |
| | | icon: 'Connection', |
| | | name: 'è´¦æ·å¹é
' |
| | | } |
| | |
| | | |
| | | if (import.meta.env.DEV) { |
| | | MENU_COMMON.push({ |
| | | path: 'common/docTest', |
| | | path: '/common/docTest', |
| | | icon: 'Connection', |
| | | name: 'ææ¡£çæ' |
| | | }); |
| | |
| | | // ] |
| | | // }, |
| | | { |
| | | path: 'fysp/procheck', |
| | | path: '/fysp/procheck', |
| | | icon: 'CircleCheck', |
| | | name: 'é®é¢æ´æ¹' |
| | | }, |
| | |
| | | name: 'ä»»å¡ç®¡ç', |
| | | children: [ |
| | | { |
| | | path: 'fysp/task/manage', |
| | | path: '/fysp/task/manage', |
| | | icon: 'CircleCheck', |
| | | name: 'ç管任å¡' |
| | | }, |
| | | { |
| | | path: 'fysp/sceneInfo', |
| | | path: '/fysp/sceneInfo', |
| | | icon: 'Files', |
| | | name: 'åºæ¯ä¿¡æ¯' |
| | | } |
| | |
| | | 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: 'é®é¢å¤åæ¸
å', |
| | | }, |
| | |
| | | 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: 'èåæ§æ³æ¸
å' |
| | | }, |
| | |
| | | name: 'æç»æ°æ®äº§å', |
| | | children: [ |
| | | { |
| | | path: 'fysp/data-product/scenereport', |
| | | path: '/fysp/data-product/scenereport', |
| | | icon: 'Document', |
| | | name: 'åºæ¯åææ¥å' |
| | | } |
| | |
| | | name: 'èªå¨è¯ä¼°', |
| | | children: [ |
| | | { |
| | | path: 'fysp/evaluation/evalutationTask', |
| | | path: '/fysp/evaluation/evalutationTask', |
| | | icon: 'MessageBox', |
| | | name: 'è¯ä¼°ä»»å¡' |
| | | }, |
| | | { |
| | | path: 'fysp/evaluation/evalutationRecord', |
| | | path: '/fysp/evaluation/evalutationRecord', |
| | | icon: 'Tickets', |
| | | name: 'è¯ä¼°è®°å½' |
| | | } |
| | |
| | | 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: '坹夿¯æ' |
| | | }, |
| | |
| | | // name: 'å°è´¦å®¡æ ¸' |
| | | // }, |
| | | { |
| | | path: 'fytz/notice', |
| | | path: '/fytz/notice', |
| | | icon: 'Message', |
| | | name: 'éç¥ç®¡ç' |
| | | }, |
| | | { |
| | | path: 'fytz/userInfo', |
| | | path: '/fytz/userInfo', |
| | | icon: 'User', |
| | | name: 'è´¦æ·ä¿¡æ¯' |
| | | }, |
| | |
| | | name: 'èµæºç®¡ç', |
| | | children: [ |
| | | { |
| | | path: 'fytz/enforceCase', |
| | | path: '/fytz/enforceCase', |
| | | icon: 'Search', |
| | | name: 'ç£å¯æ¡ä¾' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // 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' } |
| | | }, |
| | | { |
| | | //ç¯ä¿ç£å¯æ¡ä¾ |
| | | 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 }; |
| | |
| | | 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: false, key: 'ProdManage' }, |
| | | component: () => |
| | | import( |
| | | '@/views/fysp/data-product/base-data-product/ProdSceneInfo.vue' |
| | | ) |
| | | }, |
| | | { |
| | | // åºç¡äº§å-è§èæ§è¯ä¼° |
| | | path: 'evaluate', |
| | | name: 'ProdEvaluationInfo', |
| | | meta: { keepAlive: false, key: 'ProdManage' }, |
| | | component: () => |
| | | import( |
| | | '@/views/fysp/data-product/base-data-product/ProdEvaluationInfo.vue' |
| | | ) |
| | | }, |
| | | { |
| | | // åºç¡äº§å-å·¡æ¥ä¿¡æ¯ |
| | | path: 'inspection', |
| | | name: 'ProdInspectionInfo', |
| | | meta: { keepAlive: false, key: 'ProdManage' }, |
| | | component: () => |
| | | import( |
| | | '@/views/fysp/data-product/base-data-product/ProdInspectionInfo.vue' |
| | | ) |
| | | }, |
| | | { |
| | | // åºç¡äº§å-çæµæ°æ® |
| | | path: 'monitordata', |
| | | name: 'ProdMonitorDataInfo', |
| | | meta: { keepAlive: false, 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' |
| | | ) |
| | | }, |
| | | |
| | | /**********************************é£ç¾½ç¯å¢***********************************************/ |
| | |
| | | ]; |
| | | |
| | | const router = createRouter({ |
| | | // history: createWebHistory(import.meta.env.BASE_URL) |
| | | history: createWebHashHistory(), |
| | | history: createWebHistory(import.meta.env.BASE_URL), |
| | | // history: createWebHashHistory(), |
| | | routes: routes |
| | | }); |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * æåcssä¸å¸¦æcalc彿°ç表达å¼çåæ°é¨å |
| | | * @param {String} str cssä¸å¸¦æcalc彿°çè¡¨è¾¾å¼ |
| | | */ |
| | | function unCalc(str) { |
| | | if (str.startsWith('calc(')) { |
| | | let _str = str.replace('calc(', '') |
| | | _str = _str.replace(/\)/g, (match, offset, string) => { |
| | | if (offset === string.lastIndexOf(match)) { |
| | | return '' |
| | | } else { |
| | | return match |
| | | } |
| | | }) |
| | | return _str |
| | | } else { |
| | | return str |
| | | } |
| | | } |
| | | |
| | | export { unCalc } |
| | |
| | | <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> |
| | | <router-view v-slot="{ Component, route }"> |
| | | <el-affix> |
| | | <el-menu |
| | | ref="menuRef" |
| | | default-active="scene" |
| | | ellipsis |
| | | mode="horizontal" |
| | | style="max-width: 600px; background-color: aliceblue" |
| | | > |
| | | <el-menu-item |
| | | v-for="item in menu" |
| | | :key="item.path" |
| | | :index="item.path" |
| | | @click="navPage" |
| | | >{{ item.name }}</el-menu-item |
| | | > |
| | | </el-menu> |
| | | </el-affix> |
| | | <router-view v-slot="{ Component, route }" :style="'height: ' + height"> |
| | | <keep-alive> |
| | | <component |
| | | v-if="route.meta.keepAlive" |
| | |
| | | </router-view> |
| | | </template> |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue'; |
| | | import { ref, onMounted, provide } from 'vue'; |
| | | import { useRouter, useRoute } from 'vue-router'; |
| | | |
| | | const router = useRouter(); |
| | | const route = useRoute(); |
| | | |
| | | const menuRef = ref(null); |
| | | const height = ref('calc(100vh - 64px)'); |
| | | |
| | | const menu = ref([ |
| | | { |
| | |
| | | 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); |
| | | function calcTableHeight() { |
| | | const h = menuRef.value.$el.offsetHeight; |
| | | return `calc(100vh - ${h}px - 60px - var(--el-main-padding) * 2)`; |
| | | } |
| | | |
| | | onMounted(() => { |
| | | console.log(route.path); |
| | | // router.push('/fysp/data-product/base/home/scene'); |
| | | height.value = calcTableHeight(); |
| | | }); |
| | | |
| | | // æä¾ç»å
é¨ç»ä»¶è§å¾æå¤§é«åº¦ |
| | | provide('viewHeight', height); |
| | | </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> |
| | |
| | | <template> |
| | | ProdSceneInfo |
| | | <BaseProdProcess |
| | | v-model:active="active" |
| | | @onStep1="onStep1" |
| | | :loading="loading" |
| | | > |
| | | <!-- <template #step1> |
| | | <ProdQueryOpt :loading="loading" @submit="onSearch"> </ProdQueryOpt> |
| | | </template> --> |
| | | <template #step2="{ contentHeight }"> |
| | | <el-table |
| | | :data="tableData" |
| | | v-loading="loading" |
| | | :height="viewHeight" |
| | | table-layout="fixed" |
| | | :show-overflow-tooltip="true" |
| | | size="small" |
| | | border |
| | | > |
| | | <el-table-column fixed="left" prop="index" label="ç¼å·" width="40"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="left" |
| | | prop="name" |
| | | label="åç§°" |
| | | :show-overflow-tooltip="true" |
| | | min-width="200" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="ç±»å" width="50" /> |
| | | <el-table-column prop="status" label="ç¶æ" width="60" /> |
| | | <el-table-column prop="stage" label="é¶æ®µ" width="90" /> |
| | | <!-- <el-table-column prop="provincename" label="ç" width="90" /> |
| | | <el-table-column prop="cityname" label="å¸" width="90" /> |
| | | <el-table-column prop="districtname" label="åºå¿" width="90" /> --> |
| | | <el-table-column prop="townname" label="è¡é" width="110" /> |
| | | <el-table-column prop="location" label="å°å" width="200" /> |
| | | <!-- <el-table-column prop="longitude" label="ç»åº¦" width="110" /> |
| | | <el-table-column prop="latitude" label="纬度" width="110" /> --> |
| | | <!-- <el-table-column |
| | | prop="updatedate" |
| | | label="æ´æ°æ¶é´" |
| | | width="140" |
| | | :formatter="timeFormat" |
| | | /> --> |
| | | </el-table> |
| | | </template> |
| | | <!-- <template #step3></template> --> |
| | | </BaseProdProcess> |
| | | </template> |
| | | <script></script> |
| | | <script setup> |
| | | import { ref, inject } from 'vue'; |
| | | import dayjs from 'dayjs'; |
| | | 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'; |
| | | import dataprodbaseApi from '@/api/fysp/dataprodbaseApi.js'; |
| | | |
| | | const active = ref(1); |
| | | const loading = ref(false); |
| | | const tableData = ref([]); |
| | | const viewHeight = inject('viewHeight'); |
| | | |
| | | function changeActive() { |
| | | active.value++; |
| | | active.value = active.value > 3 ? 1 : active.value; |
| | | } |
| | | |
| | | function onStep1(opt) { |
| | | loading.value = true; |
| | | dataprodbaseApi |
| | | .fetchProdSceneInfo(opt) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | tableData.value = res.data.map((item) => ({ |
| | | status: item.status, |
| | | stage: item.stage, |
| | | ...item.scene |
| | | })); |
| | | } |
| | | changeActive(); |
| | | }) |
| | | .finally(() => { |
| | | loading.value = false; |
| | | }); |
| | | } |
| | | |
| | | function timeFormat(row, column, cellValue, index) { |
| | | return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <!-- æ¥éª¤1 æ°æ®äº§åçæé项 --> |
| | | <div :class="active == 1 ? 'prod-active' : 'prod-inactive'" ref="step1Ref"> |
| | | <transition |
| | | name="el-fade-in" |
| | | @after-leave="handleTransitionContentEnd(1)" |
| | | > |
| | | <div v-show="showStep1Content"> |
| | | <template v-if="$slots.step1"> |
| | | <slot name="step1"></slot> |
| | | </template> |
| | | <template v-else> |
| | | <ProdQueryOpt :loading="loading" @submit="onSearch"> </ProdQueryOpt> |
| | | </template> |
| | | </div> |
| | | </transition> |
| | | <transition |
| | | name="el-fade-in" |
| | | @after-leave="handleTransitionThumbnailEnd(1)" |
| | | > |
| | | <div |
| | | v-show="showStep1Thumbnail" |
| | | class="prod-thumbnail-wrapper" |
| | | :style="{ height: viewHeight }" |
| | | @click="changeActive(1)" |
| | | > |
| | | <div class="prod-thumbnail">â ä¿®æ¹é项</div> |
| | | </div> |
| | | </transition> |
| | | </div> |
| | | <!-- æ¥éª¤2 æ°æ®äº§åç»æé¢è§ --> |
| | | <div :class="active == 2 ? 'prod-active' : 'prod-inactive'" ref="step2Ref"> |
| | | <transition |
| | | name="el-fade-in" |
| | | @after-leave="handleTransitionContentEnd(2)" |
| | | > |
| | | <div v-show="showStep2Content"> |
| | | <div ref="titleRef" class="prod-title"> |
| | | <el-text tag="b" size="large">æ°æ®äº§åé¢è§</el-text> |
| | | </div> |
| | | <slot name="step2" :contentHeight="contentHeight"></slot> |
| | | </div> |
| | | </transition> |
| | | <transition |
| | | name="el-fade-in" |
| | | @after-leave="handleTransitionThumbnailEnd(2)" |
| | | > |
| | | <div |
| | | v-show="showStep2Thumbnail" |
| | | class="prod-thumbnail-wrapper" |
| | | :style="{ height: viewHeight }" |
| | | @click="changeActive(2)" |
| | | > |
| | | <div |
| | | :class=" |
| | | 'prod-thumbnail prod-thumbnail_middle ' + |
| | | (active < 2 ? 'prod-thumbnail-disabled' : '') |
| | | " |
| | | > |
| | | â¡æ°æ®äº§åé¢è§ |
| | | </div> |
| | | </div> |
| | | </transition> |
| | | </div> |
| | | <!-- æ¥éª¤3 æ°æ®äº§å表åä¸è½½ --> |
| | | <div :class="active == 3 ? 'prod-active' : 'prod-inactive'" ref="step3Ref"> |
| | | <transition |
| | | name="el-fade-in" |
| | | @after-leave="handleTransitionContentEnd(3)" |
| | | > |
| | | <div v-show="showStep3Content"> |
| | | <template v-if="$slots.step3"> |
| | | <slot name="step3"></slot> |
| | | </template> |
| | | <template v-else> |
| | | <ProdDownload></ProdDownload> |
| | | </template> |
| | | </div> |
| | | </transition> |
| | | <transition |
| | | name="el-fade-in" |
| | | @after-leave="handleTransitionThumbnailEnd(3)" |
| | | > |
| | | <div |
| | | v-show="showStep3Thumbnail" |
| | | class="prod-thumbnail-wrapper" |
| | | :style="{ height: viewHeight }" |
| | | @click="changeActive(3)" |
| | | > |
| | | <div |
| | | :class=" |
| | | 'prod-thumbnail prod-thumbnail_end ' + |
| | | (active < 3 ? 'prod-thumbnail-disabled' : '') |
| | | " |
| | | > |
| | | â¢æ°æ®äº§åä¸è½½ |
| | | </div> |
| | | </div> |
| | | </transition> |
| | | </div> |
| | | </el-row> |
| | | </template> |
| | | <script setup> |
| | | import { computed, inject, ref, watch, onMounted } from 'vue'; |
| | | import { unCalc } from '@/utils/css-util'; |
| | | import ProdQueryOpt from '@/views/fysp/data-product/base-data-product/components/ProdQueryOpt.vue'; |
| | | import ProdDownload from '@/views/fysp/data-product/base-data-product/components/ProdDownload.vue'; |
| | | |
| | | const props = defineProps({ |
| | | active: { |
| | | type: Number, |
| | | default: 1 |
| | | }, |
| | | loading: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }); |
| | | |
| | | const emit = defineEmits(['update:active', 'onStep1']); |
| | | |
| | | const viewHeight = inject('viewHeight'); |
| | | |
| | | const btnDisabled = ref(false); |
| | | |
| | | const titleRef = ref(null); |
| | | const contentHeight = ref('50vh'); |
| | | |
| | | function calContentHeight() { |
| | | console.log(titleRef.value.offsetHeight); |
| | | contentHeight.value = `calc(${unCalc(viewHeight.value)} - ${ |
| | | titleRef.value?.offsetHeight || 0 |
| | | }px)`; |
| | | console.log(contentHeight.value); |
| | | |
| | | } |
| | | |
| | | // æ¥éª¤å¼ç¨ |
| | | const step1Ref = ref(null); |
| | | const step2Ref = ref(null); |
| | | const step3Ref = ref(null); |
| | | |
| | | // æ§å¶æ¾ç¤º/éèçç¶æ |
| | | const showStep1Content = ref(props.active === 1); |
| | | const showStep1Thumbnail = ref(props.active != 1); |
| | | const showStep2Content = ref(props.active === 2); |
| | | const showStep2Thumbnail = ref(props.active != 2); |
| | | const showStep3Content = ref(props.active === 3); |
| | | const showStep3Thumbnail = ref(props.active != 3); |
| | | |
| | | // è®°å½å¨ç»æ¯å¦æ£å¨è¿è¡ä¸ |
| | | const isAnimating = ref({}); |
| | | |
| | | // çå¬activeåå |
| | | watch( |
| | | () => props.active, |
| | | (newActive, oldActive) => { |
| | | // æ è®°å¨ç»å¼å§ |
| | | isAnimating.value[oldActive] = true; |
| | | isAnimating.value[newActive] = true; |
| | | |
| | | // å
éèææå
容ï¼çå¾
å¨ç»ç»æååæ¾ç¤ºæ£ç¡®çå
容 |
| | | if (oldActive === 1) { |
| | | showStep1Content.value = false; |
| | | } else if (oldActive === 2) { |
| | | showStep2Content.value = false; |
| | | } else if (oldActive === 3) { |
| | | showStep3Content.value = false; |
| | | } |
| | | |
| | | if (newActive === 1) { |
| | | showStep1Thumbnail.value = false; |
| | | } else if (newActive === 2) { |
| | | showStep2Thumbnail.value = false; |
| | | } else if (newActive === 3) { |
| | | showStep3Thumbnail.value = false; |
| | | } |
| | | } |
| | | ); |
| | | |
| | | // å¤çå¨ç»ç»æäºä»¶ |
| | | function handleTransitionThumbnailEnd(stepIndex) { |
| | | // æ£æ¥å¨ç»æ¯å¦ç¡®å®ç»æï¼é¿å
éå¤è§¦åï¼ |
| | | if (isAnimating.value[stepIndex]) { |
| | | isAnimating.value[stepIndex] = false; |
| | | |
| | | // setTimeout(() => { |
| | | // å¨ç»ç»æåï¼æ´æ°æ¾ç¤ºç¶æ |
| | | if (stepIndex === 1) { |
| | | showStep1Content.value = props.active === 1; |
| | | } else if (stepIndex === 2) { |
| | | showStep2Content.value = props.active === 2; |
| | | } else if (stepIndex === 3) { |
| | | showStep3Content.value = props.active === 3; |
| | | } |
| | | // }, 50); |
| | | } |
| | | } |
| | | |
| | | function handleTransitionContentEnd(stepIndex) { |
| | | // æ£æ¥å¨ç»æ¯å¦ç¡®å®ç»æï¼é¿å
éå¤è§¦åï¼ |
| | | if (isAnimating.value[stepIndex]) { |
| | | isAnimating.value[stepIndex] = false; |
| | | |
| | | // setTimeout(() => { |
| | | // å¨ç»ç»æåï¼æ´æ°æ¾ç¤ºç¶æ |
| | | if (stepIndex === 1) { |
| | | showStep1Thumbnail.value = props.active != 1; |
| | | } else if (stepIndex === 2) { |
| | | showStep2Thumbnail.value = props.active != 2; |
| | | } else if (stepIndex === 3) { |
| | | showStep3Thumbnail.value = props.active != 3; |
| | | } |
| | | // }, 50); |
| | | } |
| | | } |
| | | |
| | | function onSearch(opt) { |
| | | emit('onStep1', opt); |
| | | } |
| | | function changeActive(index) { |
| | | let isAnimate = false; |
| | | Object.values(isAnimating.value).forEach((item) => { |
| | | isAnimate = isAnimate || item; |
| | | }); |
| | | if (!isAnimate && !btnDisabled.value && props.active >= index) { |
| | | emit('update:active', index); |
| | | btnDisabled.value = true; |
| | | setTimeout(() => { |
| | | btnDisabled.value = false; |
| | | }, 500); |
| | | } |
| | | // emit('update:active', index); |
| | | } |
| | | |
| | | onMounted(() => { |
| | | calContentHeight(); |
| | | }); |
| | | </script> |
| | | <style scoped> |
| | | .prod-active { |
| | | /* width: 66.667%; */ |
| | | width: 90%; |
| | | transition: |
| | | width 0.5s ease, |
| | | box-shadow 0.3s ease; |
| | | /* background-color: #409eff; */ |
| | | margin: 5px 0; |
| | | border-radius: 4px; |
| | | box-shadow: |
| | | -3px 0 6px rgba(0, 0, 0, 0.1), |
| | | 3px 0 6px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .prod-inactive { |
| | | /* width: 16.667%; */ |
| | | width: 5%; |
| | | transition: width 0.5s ease; |
| | | /* background-color: #e4e7ed; */ |
| | | margin: 5px 0; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .prod-title { |
| | | padding: 10px; |
| | | } |
| | | |
| | | .prod-thumbnail-wrapper { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | padding: 0 2px; |
| | | } |
| | | |
| | | .prod-thumbnail { |
| | | height: 90%; |
| | | width: 100%; |
| | | background-color: #409eff; |
| | | color: white; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | writing-mode: vertical-rl; |
| | | text-orientation: upright; |
| | | letter-spacing: 8px; |
| | | font-size: 18px; |
| | | font-weight: 500; |
| | | border-top-left-radius: 4px; |
| | | border-bottom-left-radius: 4px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .prod-thumbnail_middle { |
| | | border-radius: 0px; |
| | | } |
| | | |
| | | .prod-thumbnail_end { |
| | | border-top-left-radius: 0px; |
| | | border-bottom-left-radius: 0px; |
| | | border-top-right-radius: 4px; |
| | | border-bottom-right-radius: 4px; |
| | | } |
| | | |
| | | .prod-thumbnail-disabled { |
| | | background-color: #e4e7ed; |
| | | color: #c0c4cc; |
| | | cursor: not-allowed; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template>ProdDownload</template> |
| | | <script setup></script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-card shadow="never"> |
| | | <template #header> |
| | | <div><el-text tag="b" size="large">产åçæé项</el-text></div> |
| | | </template> |
| | | <SearchBar |
| | | v-show="active" |
| | | ref="refSearchBar" |
| | | :btn-show="false" |
| | | :init="false" |
| | | @on-submit="search" |
| | | > |
| | | </SearchBar> |
| | | <template #footer> |
| | | <el-row v-show="active" 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 |
| | | }, |
| | | active:{ |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }); |
| | | 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> |