|
@@ -0,0 +1,228 @@
|
|
|
|
+<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>
|