|
@@ -0,0 +1,181 @@
|
|
|
+import React from 'react'
|
|
|
+import GrentReducer from './grent'
|
|
|
+import Upload from '../components/Upload'
|
|
|
+import styles from './index.module.css'
|
|
|
+import { sectionStepAction } from './ListState'
|
|
|
+import Step from '../components/Upload/Step'
|
|
|
+
|
|
|
+const intervals: Array<any> = []
|
|
|
+// const JUDGEING = 1, JUGESUCCESS = 2, JUGEERR = 3
|
|
|
+// const SECTIONING = 4, SECTIONSUCCESS = 5, SECTIONEERR = 6
|
|
|
+// const TRANSFERING = 13, TRANSFERSUCCESS = 14, TRANSFEREERR = 15
|
|
|
+
|
|
|
+
|
|
|
+// export default function ResterList({ className }: any) {
|
|
|
+// intervals.forEach(clearInterval)
|
|
|
+// const ItemFn = (model: Model) => {
|
|
|
+// let Jude: any = <b onClick={() => judge(model)} style={{ cursor: 'pointer' }}>判断</b>
|
|
|
+// let Sect: any = <b onClick={() => section(model)} style={{ cursor: 'pointer' }}>切片</b>
|
|
|
+// let Tf: any = (
|
|
|
+// <Fragment>
|
|
|
+// <input type="text" value={text} onChange={ev => setText(ev.target.value)} placeholder="发布参数" />
|
|
|
+// <b onClick={() => transfer(model)} style={{ cursor: 'pointer' }}>发布</b>
|
|
|
+// </Fragment>
|
|
|
+// )
|
|
|
+
|
|
|
+// Jude = model.ajaxStatue === JUDGEING ? '判断中…' : model.ajaxStatue === JUGESUCCESS ? '成功判断' : Jude
|
|
|
+// Sect = model.ajaxStatue === SECTIONING ? '切片中…' : model.ajaxStatue === SECTIONSUCCESS ? '成功切片' : Sect
|
|
|
+// Tf = model.ajaxStatue === TRANSFERING ? '移动中…' : model.ajaxStatue === TRANSFEREERR ? '成功移动' : Tf
|
|
|
+
|
|
|
+// if (model.status === 6) {
|
|
|
+// Sect = (model.sectStep ? (model.sectStep + '%') : '切片中')
|
|
|
+// }
|
|
|
+
|
|
|
+// if (model.status === 9) {
|
|
|
+// Jude = '判断中…'
|
|
|
+// }
|
|
|
+// return (
|
|
|
+// <Item key={model.id} {...model}>
|
|
|
+// {() => (
|
|
|
+// <Fragment>
|
|
|
+// {(model.status === 2 || model.status === 9) && Jude}
|
|
|
+// {(model.status === 4 || model.status === 6 || model.status === 0) && Sect}
|
|
|
+// {model.status === 5 && Tf}
|
|
|
+// <b onClick={() => delHandle(model)} style={{ cursor: 'pointer' }}>删除</b>
|
|
|
+// </Fragment>
|
|
|
+// )}
|
|
|
+// </Item>
|
|
|
+// )
|
|
|
+// }
|
|
|
+// const { delHandle, Element, referData, modelDispatch, setItemStaus, referItem, models } = GrentReducer('/raster/list', '/raster/delete/', ItemFn)
|
|
|
+// let [text, setText] = useState('')
|
|
|
+// const judge = async (model: Model) => {
|
|
|
+// model = setItemStaus(model, JUDGEING)
|
|
|
+// let data = await judgeItemAction(modelDispatch, `/raster/command/judge/coord/${model.id}/`, model)
|
|
|
+
|
|
|
+// if (data.status !== 200) {
|
|
|
+// alert(data.message)
|
|
|
+// setItemStaus(model, JUGEERR)
|
|
|
+// } else {
|
|
|
+// setItemStaus(model, JUGESUCCESS)
|
|
|
+// referData()
|
|
|
+// }
|
|
|
+// }
|
|
|
+// const section = async (model: Model) => {
|
|
|
+// model = setItemStaus(model, SECTIONING)
|
|
|
+// sectionItemAction(modelDispatch, `/raster/command/osgeo/${model.id}/`, model)
|
|
|
+// .then(data => {
|
|
|
+// if (data.status !== 200) {
|
|
|
+// model = setItemStaus(model, SECTIONEERR)
|
|
|
+// alert(data.message)
|
|
|
+// } else {
|
|
|
+// model = setItemStaus(model, SECTIONSUCCESS)
|
|
|
+// referData()
|
|
|
+// }
|
|
|
+// });
|
|
|
+// }
|
|
|
+// const transfer = async (model: Model) => {
|
|
|
+// model = setItemStaus(model, TRANSFERING)
|
|
|
+// transferItemAction(modelDispatch, `/raster/move/${model.id}/`, model, { text: text })
|
|
|
+// .then(data => {
|
|
|
+// if (data.status !== 200) {
|
|
|
+// model = setItemStaus(model, TRANSFEREERR)
|
|
|
+// alert(data.message)
|
|
|
+// } else {
|
|
|
+// model = setItemStaus(model, TRANSFERSUCCESS)
|
|
|
+// referData()
|
|
|
+// }
|
|
|
+// });
|
|
|
+// }
|
|
|
+// async function getStep(model: Model) {
|
|
|
+// let data = await sectionStepAction(modelDispatch, `/raster/progress/${model.id}/`, model)
|
|
|
+// return data.data.progress
|
|
|
+// };
|
|
|
+
|
|
|
+// models.forEach((model: any) => {
|
|
|
+// if (model.status !== 6) return;
|
|
|
+
|
|
|
+// let interval = setInterval(async () => {
|
|
|
+// let step = await getStep(model)
|
|
|
+// if (model.sectStep !== step) {
|
|
|
+// model.sectStep = step
|
|
|
+// model = referItem(model)
|
|
|
+// clearInterval(interval)
|
|
|
+
|
|
|
+// if (model.sectStep === 100) {
|
|
|
+// setTimeout(() => referData(), 1000)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }, 1000)
|
|
|
+// intervals.push(interval)
|
|
|
+// })
|
|
|
+
|
|
|
+// for (let i = 0; i < models.length; i++) {
|
|
|
+// let model = models[i] as Model
|
|
|
+// if (model.status !== 9) continue
|
|
|
+// setTimeout(() => referData(), 1000)
|
|
|
+// break;
|
|
|
+// }
|
|
|
+
|
|
|
+// return (
|
|
|
+// <div className={className}>
|
|
|
+// {Element}
|
|
|
+// <Upload className={styles.uplayer} api='/raster/upload' check='/raster/check/' upHandle={referData} />
|
|
|
+// </div>
|
|
|
+// )
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+export default function ModelList({ className }: any) {
|
|
|
+ intervals.forEach(interval => clearInterval(interval))
|
|
|
+ const { referData, Element, modelDispatch, models, referItem } = GrentReducer({
|
|
|
+ judgeUrl: '/raster/command/judge/coord/',
|
|
|
+ delUrl: '/raster/delete/',
|
|
|
+ getUrl: '/raster/list',
|
|
|
+ sectionUrl: '/raster/command/osgeo/',
|
|
|
+ transferUrl: '/raster/move/',
|
|
|
+ ItemFn(model: Model) {
|
|
|
+ if (model.status === 6) {
|
|
|
+ return <Step step={model.sectStep ? model.sectStep : 0} />
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ async function getStep(model: Model) {
|
|
|
+ let data = await sectionStepAction(modelDispatch, `/raster/progress/${model.id}/`, model)
|
|
|
+ return data.data.progress
|
|
|
+ };
|
|
|
+
|
|
|
+ models.forEach((model: any) => {
|
|
|
+ if (model.status !== 6) return;
|
|
|
+
|
|
|
+ let interval = setInterval(async () => {
|
|
|
+ let step = await getStep(model)
|
|
|
+ if (model.sectStep !== step) {
|
|
|
+ model.sectStep = step
|
|
|
+ model = referItem(model)
|
|
|
+ clearInterval(interval)
|
|
|
+
|
|
|
+ if (model.sectStep === 100) {
|
|
|
+ setTimeout(() => referData(), 1000)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, 1000)
|
|
|
+ intervals.push(interval)
|
|
|
+ })
|
|
|
+
|
|
|
+ for (let i = 0; i < models.length; i++) {
|
|
|
+ let model = models[i] as Model
|
|
|
+ if (model.status !== 9) continue
|
|
|
+ setTimeout(() => referData(), 1000)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div className={className}>
|
|
|
+ {Element}
|
|
|
+ <Upload className={styles.uplayer} api='/raster/upload' check='/raster/check/' upHandle={referData} />
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+}
|