123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- <script setup lang="ts">
- import AForm from '@/components/AForm/index.vue'
- import { FormConfigType } from '@/components/AForm/type'
- import { ToolbarConfigType } from '@/components/AToolbar/type'
- import { ColumnConfigType } from '@/components/ATable/type'
- import { StrAnyObj, StrAnyObjArr } from '@/typings'
- import { useHandleData } from '@/utils/useHandleData'
- import { getPageApi, getDetailApi, addApi, editApi, deleteApi } from '@/api/system/config'
- import { getToDoPageApi } from '@/api/flow/execute'
- const queryRef = ref<InstanceType<typeof AForm>>()
- const formRef = ref<InstanceType<typeof AForm>>()
- const showQuery = ref<boolean>(true)
- const pageTotal = ref<number>(0)
- const queryData = ref<StrAnyObj>({ pageNum: 1, pageSize: 10 })
- const tableData = ref<StrAnyObjArr>([])
- const formData = ref<StrAnyObj>({})
- const dialogTitle = ref<string>('')
- const dialogVisible = ref<boolean>(false)
- const queryConfig: FormConfigType[] = [
- {
- type: 'input',
- prop: 'nodeName',
- label: '任务名称'
- },
- {
- type: 'select',
- prop: 'flowStatus',
- label: '流程状态',
- dict: 'flow_status'
- },
- {
- type: 'datePicker',
- prop: 'createTime',
- label: '创建时间',
- datePickerType: 'date',
- format: 'YYYY-MM-DD',
- valueFormat: 'YYYY-MM-DD 00:00:00'
- }
- ]
- const toolbarConfig: ToolbarConfigType[] = [
- {
- common: 'search',
- click() {
- queryData.value.pageNum = 1
- getPage()
- }
- },
- {
- common: 'reset',
- click() {
- queryRef.value?.resetFields()
- getPage()
- }
- }
- // {
- // common: 'add',
- // permissions: 'sysConfig:add',
- // click() {
- // dialogVisible.value = true
- // dialogTitle.value = '新增'
- // }
- // }
- ]
- const columnConfig: ColumnConfigType[] = [
- {
- prop: 'flowName',
- label: '流程名称'
- },
- {
- prop: 'nodeName',
- label: '任务名称'
- },
- {
- prop: 'approver',
- label: '审批人'
- },
- {
- prop: 'transferredBy',
- label: '转办人'
- },
- {
- prop: 'delegate',
- label: '委派人'
- },
- {
- prop: 'flowStatus',
- label: '流程状态',
- dict: 'flow_status'
- },
- {
- prop: 'activityStatus',
- label: '激活状态',
- dict: 'activity_status'
- },
- {
- prop: 'createTime',
- label: '创建时间'
- },
- {
- width: 200,
- handleConfig: [
- // {
- // common: 'update',
- // permissions: 'sysConfig:edit',
- // click(row) {
- // dialogVisible.value = true
- // dialogTitle.value = '编辑'
- // getDetailApi({ id: row.id }).then((resp: StrAnyObj) => {
- // formData.value = resp
- // })
- // }
- // },
- // {
- // common: 'delete',
- // permissions: 'sysConfig:delete',
- // click(row) {
- // handleRemove([row.id])
- // }
- // }
- ]
- }
- ]
- const formConfig: FormConfigType[] = [
- {
- type: 'input',
- prop: 'name',
- label: '参数名称',
- rule: [{ required: true, message: '参数名称不能为空', trigger: 'blur' }]
- },
- {
- type: 'input',
- prop: 'code',
- label: '参数编码',
- rule: [{ required: true, message: '参数编码不能为空', trigger: 'blur' }]
- },
- {
- type: 'input',
- prop: 'value',
- label: '参数值',
- rule: [{ required: true, message: '参数键值不能为空', trigger: 'blur' }]
- },
- {
- type: 'radio',
- prop: 'builtin',
- label: '系统内置',
- dict: 'yes_no',
- rule: [{ required: true, message: '系统内置不能为空', trigger: 'blur' }]
- },
- {
- type: 'input',
- prop: 'remark',
- label: '备注',
- itemType: 'textarea',
- rows: 5
- }
- ]
- onMounted(() => {
- getPage()
- })
- function getPage() {
- getToDoPageApi(queryData.value).then((resp) => {
- tableData.value = resp.records
- pageTotal.value = resp.total
- })
- }
- function formSubmit() {
- formRef.value?.validate(() => {
- if (formData.value.id) {
- editApi(formData.value).then(() => {
- dialogVisible.value = false
- ElMessage.success('修改成功')
- getPage()
- })
- } else {
- addApi(formData.value).then(() => {
- dialogVisible.value = false
- ElMessage.success('新增成功')
- getPage()
- })
- }
- })
- }
- function formClosed() {
- formRef.value?.resetFields()
- }
- </script>
- <template>
- <div>
- <el-card v-if="showQuery">
- <a-form ref="queryRef" v-model="queryData" :config="queryConfig" :span="6"> </a-form>
- </el-card>
- <a-table
- :data="tableData"
- :page-total="pageTotal"
- :toolbar-config="toolbarConfig"
- :column-config="columnConfig"
- v-model:showQuery="showQuery"
- v-model:page-num="queryData.pageNum"
- v-model:page-size="queryData.pageSize"
- @page-num-change="getPage"
- @page-size-change="getPage"
- >
- </a-table>
- <a-dialog
- v-model="dialogVisible"
- :title="dialogTitle"
- @submit="formSubmit"
- @closed="formClosed"
- >
- <a-form ref="formRef" v-model="formData" :config="formConfig" :span="24"> </a-form>
- </a-dialog>
- </div>
- </template>
|