|
@@ -6,10 +6,10 @@ import { Dropdown, Menu, Button } from 'antd'
|
|
import { DownOutlined } from '@ant-design/icons'
|
|
import { DownOutlined } from '@ant-design/icons'
|
|
import { useSelector, examplesSelector, fetchExamples } from 'store'
|
|
import { useSelector, examplesSelector, fetchExamples } from 'store'
|
|
import { EditExampleTitle, InsertExample } from './edit'
|
|
import { EditExampleTitle, InsertExample } from './edit'
|
|
-import { setExample, repExampleScenes, deleteExample, getToken } from 'api'
|
|
|
|
|
|
+import { setExample, repExampleScenes, deleteExample, getToken, getExampleScenes } from 'api'
|
|
import { ExampleScenes } from './scene/list'
|
|
import { ExampleScenes } from './scene/list'
|
|
import { useState } from 'react'
|
|
import { useState } from 'react'
|
|
-import { confirm, getHref, onlyOpenWindow } from 'utils'
|
|
|
|
|
|
+import { alert, confirm, getHref, onlyOpenWindow } from 'utils'
|
|
import { ExampleFiles } from './files/list'
|
|
import { ExampleFiles } from './files/list'
|
|
import { SceneType, SceneTypeDomain, SceneTypePaths } from 'constant'
|
|
import { SceneType, SceneTypeDomain, SceneTypePaths } from 'constant'
|
|
|
|
|
|
@@ -70,7 +70,7 @@ export const ExampleAction = ({ example, query, deleteExample, ...actionCallback
|
|
export const ExamplePage = () => {
|
|
export const ExamplePage = () => {
|
|
const examples = useSelector(examplesSelector)
|
|
const examples = useSelector(examplesSelector)
|
|
const states = useThunkPaging({ caseTitle: '' }, fetchExamples)
|
|
const states = useThunkPaging({ caseTitle: '' }, fetchExamples)
|
|
- const [[paging, setPaging], [, setParams], refresh] = states
|
|
|
|
|
|
+ const [[paging, setPaging], [params, setParams], refresh] = states
|
|
const [scenesCaseId, setScenesCaseId] = useState<Example['caseId'] | null>(null)
|
|
const [scenesCaseId, setScenesCaseId] = useState<Example['caseId'] | null>(null)
|
|
const [fileCaseId, setFileCaseId] = useState<Example['caseId'] | null>(null)
|
|
const [fileCaseId, setFileCaseId] = useState<Example['caseId'] | null>(null)
|
|
const [inInsert, setInInsert] = useState(false)
|
|
const [inInsert, setInInsert] = useState(false)
|
|
@@ -81,6 +81,15 @@ export const ExamplePage = () => {
|
|
}
|
|
}
|
|
return getHref(SceneTypeDomain[SceneType.SWMX]!, SceneTypePaths[SceneType.SWMX][0], params)
|
|
return getHref(SceneTypeDomain[SceneType.SWMX]!, SceneTypePaths[SceneType.SWMX][0], params)
|
|
}
|
|
}
|
|
|
|
+ const checkScenesOpen = async (caseId: Example['caseId'], url: URL | string) => {
|
|
|
|
+ const scenes = await getExampleScenes({ caseId })
|
|
|
|
+ if (!scenes.length) {
|
|
|
|
+ alert('当前案件下无场景,请先添加场景。')
|
|
|
|
+ } else {
|
|
|
|
+ onlyOpenWindow(url)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
const columns: ExampleColumn[] = [
|
|
const columns: ExampleColumn[] = [
|
|
{
|
|
{
|
|
@@ -110,10 +119,10 @@ export const ExamplePage = () => {
|
|
example={record}
|
|
example={record}
|
|
sceneManage={() => setScenesCaseId(record.caseId)}
|
|
sceneManage={() => setScenesCaseId(record.caseId)}
|
|
file={() => setFileCaseId(record.caseId)}
|
|
file={() => setFileCaseId(record.caseId)}
|
|
- query={() => onlyOpenWindow(`${getFuseCodeLink(record.caseId)}#show/summary`)}
|
|
|
|
|
|
+ query={() => checkScenesOpen(record.caseId, `${getFuseCodeLink(record.caseId)}#show/summary`)}
|
|
fuse={() => onlyOpenWindow(`${getFuseCodeLink(record.caseId)}#fuseEdit/merge`)}
|
|
fuse={() => onlyOpenWindow(`${getFuseCodeLink(record.caseId)}#fuseEdit/merge`)}
|
|
- getView={() => onlyOpenWindow(`${getFuseCodeLink(record.caseId)}#sceneEdit/view`)}
|
|
|
|
- record={() => onlyOpenWindow(`${getFuseCodeLink(record.caseId)}#sceneEdit/record`)}
|
|
|
|
|
|
+ getView={() => checkScenesOpen(record.caseId, `${getFuseCodeLink(record.caseId)}#sceneEdit/view`)}
|
|
|
|
+ record={() => checkScenesOpen(record.caseId, `${getFuseCodeLink(record.caseId)}#sceneEdit/record`)}
|
|
/>
|
|
/>
|
|
)
|
|
)
|
|
}
|
|
}
|
|
@@ -148,7 +157,8 @@ export const ExamplePage = () => {
|
|
onBeforeCreate={() => setInInsert(true)}
|
|
onBeforeCreate={() => setInInsert(true)}
|
|
onSearch={setParams}
|
|
onSearch={setParams}
|
|
/>
|
|
/>
|
|
- <Table
|
|
|
|
|
|
+ <Table
|
|
|
|
+ unDataMsg={params.caseTitle ? '未搜索到结果' : '暂无数据'}
|
|
rowKey={'caseId'}
|
|
rowKey={'caseId'}
|
|
columns={columns}
|
|
columns={columns}
|
|
data={examples}
|
|
data={examples}
|