Showing
13 changed files
with
217 additions
and
234 deletions
src/api/apiConfig.ts
0 → 100644
| 1 | +import { post, get } from '@/utils/request.tsx' | |
| 2 | + | |
| 3 | + | |
| 4 | +/**生产线信息-获取所有生产线信息 | |
| 5 | + * **/ | |
| 6 | +export function getProductLine() { | |
| 7 | + return post( | |
| 8 | + '/open/qx-apaas-lowcode/getProductLine', | |
| 9 | + { | |
| 10 | + select_dcouji: 'ENABLE' | |
| 11 | + }, | |
| 12 | + {}, | |
| 13 | + {} | |
| 14 | + ); | |
| 15 | +} | |
| 16 | + | |
| 17 | +/**生产线信息--获取生产线下所有作业指导书信息 | |
| 18 | + * **/ | |
| 19 | +export function getProductBook(data: {pro_line: string}) { | |
| 20 | + return post( | |
| 21 | + '/open/qx-apaas-lowcode/getProductBook', | |
| 22 | + { | |
| 23 | + }, | |
| 24 | + { | |
| 25 | + ...data | |
| 26 | + }, | |
| 27 | + {} | |
| 28 | + ); | |
| 29 | +} | |
| 30 | + | |
| 31 | +/**获取文件预览地址 | |
| 32 | + * **/ | |
| 33 | +export function getFilePreview(fileId: string) { | |
| 34 | + return get( | |
| 35 | + `/open/qgyun-service-fs-manager/file/p/origin/${fileId}`, | |
| 36 | + { | |
| 37 | + }, | |
| 38 | + { | |
| 39 | + } | |
| 40 | + ); | |
| 41 | +} | |
| \ No newline at end of file | ... | ... |
src/pages/production-list/index.tsx
deleted
100644 → 0
| 1 | -import React, {useEffect, useState} from 'react' | |
| 2 | -import './style.less' | |
| 3 | -import NavBar from '@/components/nav-bar' | |
| 4 | -import {baseColorPrimary} from "@/utils/common"; | |
| 5 | -import {hexToRgba} from "@/utils/utils"; | |
| 6 | -import _mp4 from './mp4.png'; | |
| 7 | -import _pdf from './pdf.png'; | |
| 8 | - | |
| 9 | -import { useSearchParams } from "react-router-dom"; | |
| 10 | - | |
| 11 | - | |
| 12 | -const ProductionList: React.FC = () => { | |
| 13 | - const [title, setTitle] = useState<string>(''); | |
| 14 | - // 因是hook,必须写在组件的顶部执行,useSearchParams() 返回的是数组 | |
| 15 | - const [params] = useSearchParams(); | |
| 16 | - console.log('ProductionList===params', params) | |
| 17 | - // 通过 get 方法获取目标参数 | |
| 18 | - const name = params.get("name") || ""; | |
| 19 | - | |
| 20 | - useEffect(() => { | |
| 21 | - if (name) { | |
| 22 | - setTitle(name) | |
| 23 | - } | |
| 24 | - }, [name]) | |
| 25 | - | |
| 26 | - const list = [ | |
| 27 | - { | |
| 28 | - id: '1', | |
| 29 | - name: '工艺流程指导文件', | |
| 30 | - type: 'pdf' | |
| 31 | - }, | |
| 32 | - { | |
| 33 | - id: '2', | |
| 34 | - name: '设备操作指导文件', | |
| 35 | - type: 'mp4' | |
| 36 | - }, | |
| 37 | - { | |
| 38 | - id: '3', | |
| 39 | - name: '工艺流程指导文件2', | |
| 40 | - type: 'pdf' | |
| 41 | - }, | |
| 42 | - { | |
| 43 | - id: '4', | |
| 44 | - name: '工艺流程指导文件3', | |
| 45 | - type: 'pdf' | |
| 46 | - }, | |
| 47 | - { | |
| 48 | - id: '5', | |
| 49 | - name: '工艺流程指导文件4', | |
| 50 | - type: 'pdf' | |
| 51 | - }, | |
| 52 | - { | |
| 53 | - id: '6', | |
| 54 | - name: '工艺流程指导文件5', | |
| 55 | - type: 'pdf' | |
| 56 | - }, | |
| 57 | - { | |
| 58 | - id: '7', | |
| 59 | - name: '设备操作指导文件2', | |
| 60 | - type: 'mp4' | |
| 61 | - }, | |
| 62 | - { | |
| 63 | - id: '8', | |
| 64 | - name: '设备设备设备设备设备设备设备操作指导文件3', | |
| 65 | - type: 'mp4' | |
| 66 | - }, | |
| 67 | - { | |
| 68 | - id: '9', | |
| 69 | - name: '设备操作指导文件4', | |
| 70 | - type: 'mp4' | |
| 71 | - }, | |
| 72 | - { | |
| 73 | - id: '10', | |
| 74 | - name: '设备操作指导文件5', | |
| 75 | - type: 'mp4' | |
| 76 | - }, | |
| 77 | - { | |
| 78 | - id: '11', | |
| 79 | - name: '设备操作指导文件6', | |
| 80 | - type: 'mp4' | |
| 81 | - }, | |
| 82 | - { | |
| 83 | - id: '12', | |
| 84 | - name: '设备操作指导文件7', | |
| 85 | - type: 'mp4' | |
| 86 | - }, | |
| 87 | - { | |
| 88 | - id: '13', | |
| 89 | - name: '设备操作指导文件8', | |
| 90 | - type: 'mp4' | |
| 91 | - }, | |
| 92 | - { | |
| 93 | - id: '14', | |
| 94 | - name: '设备操作指导文件9', | |
| 95 | - type: 'mp4' | |
| 96 | - }, | |
| 97 | - { | |
| 98 | - id: '15', | |
| 99 | - name: '设备操作指导文件10', | |
| 100 | - type: 'mp4' | |
| 101 | - } | |
| 102 | - ] | |
| 103 | - | |
| 104 | - | |
| 105 | - return ( | |
| 106 | - <div className={'sxjx-content-main sxjx-layout-main-unfoot'}> | |
| 107 | - <div className={'production-list'}> | |
| 108 | - <NavBar title={title} showBack={true}/> | |
| 109 | - <div className={'production-list_list'}> | |
| 110 | - { | |
| 111 | - list?.map((item: any) => { | |
| 112 | - return <div | |
| 113 | - key={item?.id} | |
| 114 | - className={'production-list_list-item'} | |
| 115 | - style={{backgroundColor: hexToRgba(baseColorPrimary, 0.6)}} | |
| 116 | - > | |
| 117 | - <img className={'production-list_list-item-img'} src={item?.type === 'mp4' ? _mp4 : _pdf}/> | |
| 118 | - <div className={'omit2 production-list_list-item-name'}> | |
| 119 | - {item?.name} | |
| 120 | - </div> | |
| 121 | - </div> | |
| 122 | - }) | |
| 123 | - } | |
| 124 | - </div> | |
| 125 | - </div> | |
| 126 | - </div> | |
| 127 | - ) | |
| 128 | -} | |
| 129 | - | |
| 130 | -export default ProductionList; |
src/pages/production-management/index.tsx
deleted
100644 → 0
| 1 | -import React from 'react' | |
| 2 | -import './style.less' | |
| 3 | -import NavBar from "@/components/nav-bar" | |
| 4 | -import {baseColorPrimary} from "@/utils/common"; | |
| 5 | -import {hexToRgba} from "@/utils/utils"; | |
| 6 | -import { useNavigate } from "react-router-dom"; | |
| 7 | - | |
| 8 | - | |
| 9 | -const ProductionManagement: React.FC = () => { | |
| 10 | - const navigate = useNavigate(); | |
| 11 | - | |
| 12 | - const list = [ | |
| 13 | - { | |
| 14 | - id: '1', | |
| 15 | - name: '车顶生产线A' | |
| 16 | - }, | |
| 17 | - { | |
| 18 | - id: '2', | |
| 19 | - name: '车顶生产线B' | |
| 20 | - }, | |
| 21 | - { | |
| 22 | - id: '3', | |
| 23 | - name: '车顶生产线C' | |
| 24 | - }, | |
| 25 | - { | |
| 26 | - id: '4', | |
| 27 | - name: '车顶生产线D' | |
| 28 | - }, | |
| 29 | - { | |
| 30 | - id: '5', | |
| 31 | - name: '车顶生产线E' | |
| 32 | - }, | |
| 33 | - { | |
| 34 | - id: '6', | |
| 35 | - name: '车顶生产线F' | |
| 36 | - }, | |
| 37 | - { | |
| 38 | - id: '7', | |
| 39 | - name: '车顶生产线G' | |
| 40 | - }, | |
| 41 | - { | |
| 42 | - id: '8', | |
| 43 | - name: '车顶生产线H' | |
| 44 | - }, | |
| 45 | - { | |
| 46 | - id: '9', | |
| 47 | - name: '车顶生产线I' | |
| 48 | - }, | |
| 49 | - { | |
| 50 | - id: '10', | |
| 51 | - name: '车顶生产线J' | |
| 52 | - }, | |
| 53 | - { | |
| 54 | - id: '11', | |
| 55 | - name: '车顶生产线K' | |
| 56 | - }, | |
| 57 | - { | |
| 58 | - id: '12', | |
| 59 | - name: '车顶生车顶生车顶生产线L' | |
| 60 | - }, | |
| 61 | - { | |
| 62 | - id: '13', | |
| 63 | - name: '车顶生产线M' | |
| 64 | - }, | |
| 65 | - { | |
| 66 | - id: '14', | |
| 67 | - name: '车顶生产线N' | |
| 68 | - } | |
| 69 | - ]; | |
| 70 | - | |
| 71 | - const toProductionList = (item: any) => { | |
| 72 | - console.log('toProductionList-item', item) | |
| 73 | - navigate(`/production/list?id=${item?.id}&name=${item?.name}`); | |
| 74 | - } | |
| 75 | - | |
| 76 | - | |
| 77 | - return ( | |
| 78 | - <div className={'sxjx-content-main sxjx-layout-main-unfoot'}> | |
| 79 | - <div className={'production-management'}> | |
| 80 | - <NavBar title={'生产线管理'}/> | |
| 81 | - <div className={'production-management_list'}> | |
| 82 | - { | |
| 83 | - list?.map((item: any) => { | |
| 84 | - return <div | |
| 85 | - key={item?.id} | |
| 86 | - className={'production-management_list-item'} | |
| 87 | - style={{backgroundColor: hexToRgba(baseColorPrimary, 0.6)}} | |
| 88 | - onClick={() => toProductionList(item)} | |
| 89 | - > | |
| 90 | - {item?.name} | |
| 91 | - </div> | |
| 92 | - }) | |
| 93 | - } | |
| 94 | - </div> | |
| 95 | - </div> | |
| 96 | - </div> | |
| 97 | - ) | |
| 98 | -} | |
| 99 | - | |
| 100 | -export default ProductionManagement; |
src/pages/production/detail/index.tsx
renamed from
src/pages/production-detail/index.tsx
src/pages/production/detail/style.less
renamed from
src/pages/production-detail/style.less
src/pages/production/list/index.tsx
0 → 100644
| 1 | +import React, {useEffect, useState} from 'react' | |
| 2 | +import './style.less' | |
| 3 | +import NavBar from '@/components/nav-bar' | |
| 4 | +import {baseColorPrimary} from "@/utils/common"; | |
| 5 | +import {hexToRgba} from "@/utils/utils"; | |
| 6 | +import _mp4 from './mp4.png'; | |
| 7 | +import _pdf from './pdf.png'; | |
| 8 | + | |
| 9 | +import {useSearchParams} from "react-router-dom"; | |
| 10 | +import {getProductBook} from "@/api/apiConfig"; | |
| 11 | +import {SpinLoading} from 'antd-mobile' | |
| 12 | + | |
| 13 | +interface ListType { | |
| 14 | + id: string; | |
| 15 | + name: string; | |
| 16 | + type: 'pdf' | 'mp4' | string | |
| 17 | +} | |
| 18 | + | |
| 19 | +const ProductionList: React.FC = () => { | |
| 20 | + const [title, setTitle] = useState<string>(''); | |
| 21 | + const [list, setList] = useState<ListType[]>([]); | |
| 22 | + const [show, setShow] = useState<boolean>(false); | |
| 23 | + | |
| 24 | + | |
| 25 | + // 因是hook,必须写在组件的顶部执行,useSearchParams() 返回的是数组 | |
| 26 | + const [params] = useSearchParams(); | |
| 27 | + console.log('ProductionList===params', params) | |
| 28 | + // 通过 get 方法获取目标参数 | |
| 29 | + const name = params.get("name") || ""; | |
| 30 | + const id = params.get("id") || ""; | |
| 31 | + | |
| 32 | + useEffect(() => { | |
| 33 | + if (name) { | |
| 34 | + setTitle(name) | |
| 35 | + } | |
| 36 | + }, [name]) | |
| 37 | + | |
| 38 | + useEffect(() => { | |
| 39 | + if (id) { | |
| 40 | + setShow(false); | |
| 41 | + getProductBook({pro_line: id}).then((res: any) => { | |
| 42 | + setShow(true); | |
| 43 | + const _list = res?.product_book?.map((item: any) => { | |
| 44 | + const _arr = item?.guide_book_file_info_?.[0]?.name?.split('.') || []; | |
| 45 | + return { | |
| 46 | + id: item?.id || '', | |
| 47 | + name: _arr?.[0] || '', | |
| 48 | + type: _arr?.[1] || '', | |
| 49 | + } | |
| 50 | + }) || []; | |
| 51 | + setList(_list) | |
| 52 | + }).catch((e: any) => { | |
| 53 | + setShow(true); | |
| 54 | + setList([]) | |
| 55 | + }) | |
| 56 | + } | |
| 57 | + }, [id]) | |
| 58 | + | |
| 59 | + | |
| 60 | + return ( | |
| 61 | + <div className={'sxjx-content-main sxjx-layout-main-unfoot'}> | |
| 62 | + <div className={'production-list'}> | |
| 63 | + <NavBar title={title} showBack={true}/> | |
| 64 | + { | |
| 65 | + !show ? <SpinLoading color='primary'/> : | |
| 66 | + <div className={'production-list_list'}> | |
| 67 | + { | |
| 68 | + list?.map((item: any) => { | |
| 69 | + return <div | |
| 70 | + key={item?.id} | |
| 71 | + className={'production-list_list-item'} | |
| 72 | + style={{backgroundColor: hexToRgba(baseColorPrimary, 0.55)}} | |
| 73 | + > | |
| 74 | + <img className={'production-list_list-item-img'} | |
| 75 | + src={item?.type === 'mp4' ? _mp4 : _pdf}/> | |
| 76 | + <div className={'omit2 production-list_list-item-name'}> | |
| 77 | + {item?.name} | |
| 78 | + </div> | |
| 79 | + </div> | |
| 80 | + }) | |
| 81 | + } | |
| 82 | + | |
| 83 | + </div> | |
| 84 | + } | |
| 85 | + </div> | |
| 86 | + </div> | |
| 87 | + ) | |
| 88 | +} | |
| 89 | + | |
| 90 | +export default ProductionList; | ... | ... |
src/pages/production/list/mp4.png
renamed from
src/pages/production-list/mp4.png
8.72 KB
src/pages/production/list/pdf.png
renamed from
src/pages/production-list/pdf.png
10.4 KB
src/pages/production/list/style.less
renamed from
src/pages/production-list/style.less
src/pages/production/management/index.tsx
0 → 100644
| 1 | +import React, {useEffect, useState} from 'react' | |
| 2 | +import './style.less' | |
| 3 | +import NavBar from "@/components/nav-bar" | |
| 4 | +import {baseColorPrimary} from "@/utils/common"; | |
| 5 | +import {hexToRgba} from "@/utils/utils"; | |
| 6 | +import { useNavigate } from "react-router-dom"; | |
| 7 | +import {getProductLine} from "@/api/apiConfig"; | |
| 8 | +import { SpinLoading } from 'antd-mobile' | |
| 9 | + | |
| 10 | +interface ListType { | |
| 11 | + id: string; | |
| 12 | + name: string; | |
| 13 | +} | |
| 14 | + | |
| 15 | +const ProductionManagement: React.FC = () => { | |
| 16 | + const navigate = useNavigate(); | |
| 17 | + const [list, setList] = useState<ListType[]>([]); | |
| 18 | + const [show, setShow] = useState<boolean>(false); | |
| 19 | + | |
| 20 | + useEffect(() => { | |
| 21 | + setShow(false); | |
| 22 | + getProductLine().then((res: any) => { | |
| 23 | + setShow(true); | |
| 24 | + const _list = res?.product_line?.map((item: any) => { | |
| 25 | + return { | |
| 26 | + id: item?.id || '', | |
| 27 | + name: item?.name || '', | |
| 28 | + } | |
| 29 | + }) || []; | |
| 30 | + setList(_list) | |
| 31 | + | |
| 32 | + }).catch((e: any) => { | |
| 33 | + setShow(true); | |
| 34 | + setList([]) | |
| 35 | + }) | |
| 36 | + }, []) | |
| 37 | + | |
| 38 | + const toProductionList = (item: any) => { | |
| 39 | + console.log('toProductionList-item', item) | |
| 40 | + navigate(`/production/list?id=${item?.id}&name=${item?.name}`); | |
| 41 | + } | |
| 42 | + | |
| 43 | + | |
| 44 | + return ( | |
| 45 | + <div className={'sxjx-content-main sxjx-layout-main-unfoot'}> | |
| 46 | + <div className={'production-management'}> | |
| 47 | + <NavBar title={'生产线管理'}/> | |
| 48 | + { | |
| 49 | + !show ? <SpinLoading color='primary' /> : | |
| 50 | + <div className={'production-management_list'}> | |
| 51 | + { | |
| 52 | + list?.map((item: any) => { | |
| 53 | + return <div | |
| 54 | + key={item?.id} | |
| 55 | + className={'production-management_list-item'} | |
| 56 | + style={{backgroundColor: hexToRgba(baseColorPrimary, 0.6)}} | |
| 57 | + onClick={() => toProductionList(item)} | |
| 58 | + > | |
| 59 | + {item?.name} | |
| 60 | + </div> | |
| 61 | + }) | |
| 62 | + } | |
| 63 | + </div> | |
| 64 | + } | |
| 65 | + | |
| 66 | + </div> | |
| 67 | + </div> | |
| 68 | + ) | |
| 69 | +} | |
| 70 | + | |
| 71 | +export default ProductionManagement; | ... | ... |
src/pages/production/management/style.less
renamed from
src/pages/production-management/style.less
| 1 | 1 | import {createHashRouter} from 'react-router-dom'; |
| 2 | 2 | import ErrorPage from "./pages/errorPage"; |
| 3 | -import ProductionManagement from "./pages/production-management"; | |
| 4 | -import ProductionList from "./pages/production-list"; | |
| 5 | -import ProductionDetail from "./pages/production-detail"; | |
| 3 | +import ProductionManagement from "./pages/production/management"; | |
| 4 | +import ProductionList from "./pages/production/list"; | |
| 5 | +import ProductionDetail from "./pages/production/detail"; | |
| 6 | 6 | |
| 7 | 7 | |
| 8 | 8 | const routers = [ | ... | ... |