calvin
1 year ago
committed by
GitHub
147 changed files with 1825 additions and 1360 deletions
@ -0,0 +1,87 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
import { SearchOutlined } from '@vicons/antd' |
||||
import { NButton, NSelect, NIcon, NSpace, NEllipsis } from 'naive-ui' |
||||
import { defineComponent, h, ref } from 'vue' |
||||
import { queryProcessDefinitionList } from '@/service/modules/process-definition' |
||||
import { SelectMixedOption } from 'naive-ui/lib/select/src/interface' |
||||
import { Router, useRouter } from 'vue-router' |
||||
|
||||
export default defineComponent({ |
||||
name: 'TimingCondition', |
||||
emits: ['handleSearch'], |
||||
setup(props, ctx) { |
||||
const router: Router = useRouter() |
||||
|
||||
const projectCode = ref( |
||||
Number(router.currentRoute.value.params.projectCode) |
||||
) |
||||
const processDefineCodeRef = router.currentRoute.value.query |
||||
.processDefineCode |
||||
? ref(Number(router.currentRoute.value.query.processDefineCode)) |
||||
: ref() |
||||
|
||||
const processDefinitionOptions = ref<Array<SelectMixedOption>>([]) |
||||
|
||||
const initProcessList = (code: number) => { |
||||
queryProcessDefinitionList(code).then((result: any) => { |
||||
result.map((item: { code: number; name: string }) => { |
||||
const option: SelectMixedOption = { |
||||
value: item.code, |
||||
label: () => h(NEllipsis, null, item.name), |
||||
filterLabel: item.name |
||||
} |
||||
processDefinitionOptions.value.push(option) |
||||
}) |
||||
}) |
||||
} |
||||
|
||||
initProcessList(projectCode.value) |
||||
|
||||
const handleSearch = () => { |
||||
ctx.emit('handleSearch', { |
||||
processDefinitionCode: processDefineCodeRef.value |
||||
}) |
||||
} |
||||
|
||||
return { |
||||
handleSearch, |
||||
processDefinitionOptions, |
||||
processDefineCodeRef |
||||
} |
||||
}, |
||||
render() { |
||||
return ( |
||||
<NSpace justify='end'> |
||||
<NSelect |
||||
clearable |
||||
filterable |
||||
options={this.processDefinitionOptions} |
||||
size='small' |
||||
style={{ width: '310px' }} |
||||
v-model:value={this.processDefineCodeRef} |
||||
/> |
||||
<NButton type='primary' size='small' onClick={this.handleSearch}> |
||||
<NIcon> |
||||
<SearchOutlined /> |
||||
</NIcon> |
||||
</NButton> |
||||
</NSpace> |
||||
) |
||||
} |
||||
}) |
@ -0,0 +1,116 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
import { NDataTable, NPagination, NSpace } from 'naive-ui' |
||||
import { defineComponent, onMounted, toRefs, watch } from 'vue' |
||||
import { useI18n } from 'vue-i18n' |
||||
import { useTable } from '../definition/timing/use-table' |
||||
import Card from '@/components/card' |
||||
import TimingModal from '../definition/components/timing-modal' |
||||
import TimingCondition from '@/views/projects/workflow/timing/components/timing-condition' |
||||
import { ITimingSearch } from '@/views/projects/workflow/timing/types' |
||||
|
||||
export default defineComponent({ |
||||
name: 'WorkflowTimingList', |
||||
setup() { |
||||
const { variables, createColumns, getTableData } = useTable() |
||||
|
||||
const requestData = () => { |
||||
getTableData({ |
||||
pageSize: variables.pageSize, |
||||
pageNo: variables.page, |
||||
searchVal: variables.searchVal, |
||||
projectCode: variables.projectCode, |
||||
processDefinitionCode: variables.processDefinitionCode |
||||
}) |
||||
} |
||||
|
||||
const handleUpdateList = () => { |
||||
requestData() |
||||
} |
||||
|
||||
const handleSearch = (params: ITimingSearch) => { |
||||
variables.processDefinitionCode = params.processDefinitionCode |
||||
variables.page = 1 |
||||
requestData() |
||||
} |
||||
|
||||
const handleChangePageSize = () => { |
||||
variables.page = 1 |
||||
requestData() |
||||
} |
||||
|
||||
onMounted(() => { |
||||
createColumns(variables) |
||||
requestData() |
||||
}) |
||||
|
||||
watch(useI18n().locale, () => { |
||||
createColumns(variables) |
||||
}) |
||||
|
||||
return { |
||||
requestData, |
||||
handleSearch, |
||||
handleUpdateList, |
||||
handleChangePageSize, |
||||
...toRefs(variables) |
||||
} |
||||
}, |
||||
render() { |
||||
const { t } = useI18n() |
||||
const { loadingRef } = this |
||||
|
||||
return ( |
||||
<NSpace vertical> |
||||
<Card> |
||||
<TimingCondition onHandleSearch={this.handleSearch} /> |
||||
</Card> |
||||
<Card title={t('project.workflow.cron_manage')}> |
||||
<NSpace vertical> |
||||
<NDataTable |
||||
loading={loadingRef} |
||||
columns={this.columns} |
||||
data={this.tableData} |
||||
striped |
||||
size={'small'} |
||||
scrollX={this.tableWidth} |
||||
/> |
||||
<NSpace justify='center'> |
||||
<NPagination |
||||
v-model:page={this.page} |
||||
v-model:page-size={this.pageSize} |
||||
page-count={this.totalPage} |
||||
show-size-picker |
||||
page-sizes={[10, 30, 50]} |
||||
show-quick-jumper |
||||
onUpdatePage={this.requestData} |
||||
onUpdatePageSize={this.handleChangePageSize} |
||||
/> |
||||
</NSpace> |
||||
</NSpace> |
||||
</Card> |
||||
<TimingModal |
||||
type={'update'} |
||||
v-model:row={this.row} |
||||
v-model:show={this.showRef} |
||||
onUpdateList={this.handleUpdateList} |
||||
/> |
||||
</NSpace> |
||||
) |
||||
} |
||||
}) |
@ -0,0 +1,22 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
interface ITimingSearch { |
||||
processDefinitionCode: number |
||||
} |
||||
|
||||
export { ITimingSearch } |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue