mirror of
https://github.com/FatttSnake/Pinnacle-OA.git
synced 2026-04-05 23:11:24 +08:00
Add affair management
This commit is contained in:
144
ui/src/components/ApplicantsAddAffairs.vue
Normal file
144
ui/src/components/ApplicantsAddAffairs.vue
Normal file
@@ -0,0 +1,144 @@
|
||||
<template>
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="事务名称:">
|
||||
<el-col :span="4">
|
||||
<el-input v-model="form.title" placeholder="请输入事务名称" class="longInput" />
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="申请者:">
|
||||
<el-col :span="3">
|
||||
<el-input v-model="form.applicantId" class="shortInput" />
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审批者:">
|
||||
<el-col :span="4">
|
||||
<el-select v-model="form.inspectorId" placeholder="请选择审批者">
|
||||
<el-option value="1" label="ggb" />
|
||||
<el-option value="1652714496280469506" label="cyb" />
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="事务类型:">
|
||||
<el-col :span="8">
|
||||
<el-radio-group v-model="form.typeId">
|
||||
<el-radio :label="1" name="type">事假</el-radio>
|
||||
<el-radio :label="2" name="type">病假</el-radio>
|
||||
<el-radio :label="3" name="type">财务报销</el-radio>
|
||||
<el-radio :label="4" name="type">调休</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="发送日期:">
|
||||
<el-col :span="1"><i class="el-icon-date"></i></el-col>
|
||||
<el-col :span="5">
|
||||
<el-date-picker
|
||||
v-model="form.createTime"
|
||||
type="date"
|
||||
placeholder="请选择要发送日期"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="具体内容:">
|
||||
<el-row :span="20">
|
||||
<el-col :span="40">
|
||||
<el-input
|
||||
v-model="form.content"
|
||||
type="textarea"
|
||||
class="textarea"
|
||||
rows="15"
|
||||
cols="20"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-col :span="6">
|
||||
<el-button type="primary" @click="onSubmit(form)">提交</el-button>
|
||||
<el-button type="danger" @click="getApproed()">重置</el-button>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import 'element-plus/theme-chalk/index.css'
|
||||
import request from '@/services'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
id: '',
|
||||
title: '',
|
||||
content: '',
|
||||
typeId: '',
|
||||
status: '',
|
||||
applicantId: '',
|
||||
inspectorId: '',
|
||||
createTime: '',
|
||||
inspectTime: '',
|
||||
priority: '',
|
||||
modifyTime: '',
|
||||
originId: '',
|
||||
old: '',
|
||||
deleted: '',
|
||||
version: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
// created: {
|
||||
// // request(form) {
|
||||
// // post("localhost:8686/addAffairs",
|
||||
// // {
|
||||
// // affairsName: form.affairsName,
|
||||
// // Applicants: form.Applicants,
|
||||
// // Approver: form.Approver,
|
||||
// // affairsType: form.affairsType,
|
||||
// // Date: form.Date,
|
||||
// // Time: form.Time,
|
||||
// // affairsContent: form.affairsContent
|
||||
// // },
|
||||
// // )
|
||||
// // get("localhost:8686/addAffairs")
|
||||
// // }
|
||||
// },
|
||||
methods: {
|
||||
onSubmit(form) {
|
||||
console.log(form)
|
||||
request
|
||||
.post('http://localhost:8621/affair/add', form)
|
||||
.then((response) => {
|
||||
console.log(response.data)
|
||||
this.getApproed()
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
getApproed() {
|
||||
history.go(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.longInput {
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
.shortInput {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.textarea {
|
||||
height: 70%;
|
||||
width: 70%;
|
||||
}
|
||||
</style>
|
||||
179
ui/src/components/ApproverApproved.vue
Normal file
179
ui/src/components/ApproverApproved.vue
Normal file
@@ -0,0 +1,179 @@
|
||||
<template>
|
||||
<el-row :span="24">
|
||||
<el-col :span="18">
|
||||
<div class="mt-4">
|
||||
<el-input v-model="input3" placeholder="查询事务" class="input-with-select">
|
||||
<template #prepend>
|
||||
<el-select v-model="select" placeholder="查询方式">
|
||||
<el-option label="事务编号" value="1" />
|
||||
<el-option label="事务名称" value="2" />
|
||||
<el-option label="日期" value="3" />
|
||||
</el-select>
|
||||
</template>
|
||||
<template #append>
|
||||
<el-button>查询</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="4">
|
||||
<el-button type="warning" round>待审批</el-button>
|
||||
<el-button type="success" round>已审批</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%">
|
||||
<el-table-column label="事务编号" prop="id" />
|
||||
|
||||
<el-table-column label="事务名称" prop="title" />
|
||||
|
||||
<el-table-column label="事务类型" prop="typeId" />
|
||||
|
||||
<el-table-column label="申请者" prop="applicantId" />
|
||||
|
||||
<el-table-column label="提交日期" prop="createTime">
|
||||
<template #default="scope">
|
||||
{{ format(scope.row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="审批日期" prop="inspectTime">
|
||||
<template #default="scope">
|
||||
{{ format(scope.row.inspectTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" key="slot" width="180">
|
||||
<template #default="scope">
|
||||
<el-button size="small" type="danger" @click="handleDelete(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
<el-button size="small" type="text" @click="handleEdit(scope.$index, scope.row)"
|
||||
>具体内容
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="审批者" width="90" prop="inspectorId" />
|
||||
</el-table>
|
||||
|
||||
<el-divider :data="labelData">
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
style="color: #888888"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
v-model:current-page="currentPage3"
|
||||
:page-size="100"
|
||||
layout="prev, pager, next, jumper"
|
||||
:total="1000"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</el-divider>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/services'
|
||||
import 'element-plus/theme-chalk/index.css'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [
|
||||
{
|
||||
id: '',
|
||||
title: '',
|
||||
content: '',
|
||||
type_id: '',
|
||||
status: '',
|
||||
applicant_id: '',
|
||||
inspector_id: '',
|
||||
create_time: '',
|
||||
inspect_time: '',
|
||||
priority: '',
|
||||
modify_time: '',
|
||||
origin_id: '',
|
||||
old: '',
|
||||
deleted: '',
|
||||
version: ''
|
||||
}
|
||||
],
|
||||
// }],
|
||||
|
||||
labelData: [
|
||||
{
|
||||
currentPage1: 5,
|
||||
currentPage2: 5,
|
||||
currentPage3: 5,
|
||||
currentPage4: 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleYes(row) {
|
||||
console.log(row)
|
||||
request
|
||||
.put('http://localhost:8621/affair/yes', row)
|
||||
.then((response) => {
|
||||
console.log(response.data)
|
||||
this.getApproed()
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
handleNo(row) {
|
||||
console.log(row)
|
||||
request
|
||||
.put('http://localhost:8621/affair/no', row)
|
||||
.then((response) => {
|
||||
console.log(response.data)
|
||||
this.getApproed()
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
handleDelete(row) {
|
||||
console.log(row.id)
|
||||
request
|
||||
.delete('http://localhost:8621/affair/' + row.id)
|
||||
.then((response) => {
|
||||
console.log(response.data)
|
||||
this.getApproed()
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`)
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
console.log(`当前页: ${val}`)
|
||||
},
|
||||
getApproed() {
|
||||
request
|
||||
.get('http://localhost:8621/affair/Approved')
|
||||
.then((response) => {
|
||||
this.tableData = response.data.data
|
||||
console.log(this.tableData)
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
format(time) {
|
||||
return new Date(time).toLocaleString()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getApproed()
|
||||
console.log(this.tableData)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style></style>
|
||||
165
ui/src/components/ApproverNotApproved.vue
Normal file
165
ui/src/components/ApproverNotApproved.vue
Normal file
@@ -0,0 +1,165 @@
|
||||
<template>
|
||||
<el-row :span="24">
|
||||
<el-col :span="18">
|
||||
<div class="mt-4">
|
||||
<el-input v-model="input3" placeholder="查询事务" class="input-with-select">
|
||||
<template #prepend>
|
||||
<el-select v-model="select" placeholder="查询方式">
|
||||
<el-option label="事务编号" value="1" />
|
||||
<el-option label="事务名称" value="2" />
|
||||
<el-option label="日期" value="3" />
|
||||
</el-select>
|
||||
</template>
|
||||
<template #append>
|
||||
<el-button>查询</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="4">
|
||||
<el-button type="warning" round>待审批</el-button>
|
||||
<el-button type="success" round>已审批</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%">
|
||||
<el-table-column label="事务编号" prop="id" />
|
||||
|
||||
<el-table-column label="事务名称" prop="title" />
|
||||
|
||||
<el-table-column label="事务类型" prop="typeId" />
|
||||
|
||||
<el-table-column label="申请者" prop="applicantId" />
|
||||
|
||||
<el-table-column label="日期" prop="createTime">
|
||||
<template #default="scope">
|
||||
{{ format(scope.row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" key="slot" width="240">
|
||||
<template #default="scope">
|
||||
<el-button size="small" type="text" @click="handleYes(scope.row)"
|
||||
>具体内容
|
||||
</el-button>
|
||||
|
||||
<el-button size="small" type="success" @click="handleYes(scope.row)"
|
||||
>同意
|
||||
</el-button>
|
||||
|
||||
<el-button size="small" type="danger" @click="handleNo(scope.row)">
|
||||
驳回
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-divider :data="labelData">
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
style="color: #888888"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
v-model:current-page="currentPage3"
|
||||
:page-size="100"
|
||||
layout="prev, pager, next, jumper"
|
||||
:total="1000"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</el-divider>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/services'
|
||||
import 'element-plus/theme-chalk/index.css'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [
|
||||
{
|
||||
id: '',
|
||||
title: '',
|
||||
content: '',
|
||||
type_id: '',
|
||||
status: '',
|
||||
applicant_id: '',
|
||||
inspector_id: '',
|
||||
create_time: '',
|
||||
inspect_time: '',
|
||||
priority: '',
|
||||
modify_time: '',
|
||||
origin_id: '',
|
||||
old: '',
|
||||
deleted: '',
|
||||
version: ''
|
||||
}
|
||||
],
|
||||
// }],
|
||||
|
||||
labelData: [
|
||||
{
|
||||
currentPage1: 5,
|
||||
currentPage2: 5,
|
||||
currentPage3: 5,
|
||||
currentPage4: 4
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleYes(row) {
|
||||
console.log(row)
|
||||
request
|
||||
.put('http://localhost:8621/affair/yes', row)
|
||||
.then((response) => {
|
||||
console.log(response.data)
|
||||
this.getApproed()
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
handleNo(row) {
|
||||
console.log(row)
|
||||
request
|
||||
.put('http://localhost:8621/affair/no', row)
|
||||
.then((response) => {
|
||||
console.log(response.data)
|
||||
this.getApproed()
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`)
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
console.log(`当前页: ${val}`)
|
||||
},
|
||||
getApproed() {
|
||||
request
|
||||
.get('http://localhost:8621/affair/NotApproved')
|
||||
.then((response) => {
|
||||
this.tableData = response.data.data
|
||||
console.log(this.tableData)
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
format(time) {
|
||||
return new Date(time).toLocaleString()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getApproed()
|
||||
console.log(this.tableData)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style></style>
|
||||
9
ui/src/pages/affair/Affair.vue
Normal file
9
ui/src/pages/affair/Affair.vue
Normal file
@@ -0,0 +1,9 @@
|
||||
<template><approver-not-approved></approver-not-approved></template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AffairPage'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
11
ui/src/pages/affair/AffairAdd.vue
Normal file
11
ui/src/pages/affair/AffairAdd.vue
Normal file
@@ -0,0 +1,11 @@
|
||||
<template>
|
||||
<applicants-add-affairs></applicants-add-affairs>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AffairAdd'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
9
ui/src/pages/affair/AffairApproved.vue
Normal file
9
ui/src/pages/affair/AffairApproved.vue
Normal file
@@ -0,0 +1,9 @@
|
||||
<template><approver-approved></approver-approved></template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AffairApproved'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@@ -103,6 +103,50 @@ const router = createRouter({
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/affair',
|
||||
name: 'affair',
|
||||
redirect: 'manage',
|
||||
children: [
|
||||
{
|
||||
path: 'manage',
|
||||
name: 'affairManage',
|
||||
component: async () => await import('@/pages/affair/Affair.vue'),
|
||||
meta: {
|
||||
title: '事务管理',
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'add',
|
||||
component: async () => await import('@/pages/affair/AffairAdd.vue'),
|
||||
name: 'affairAdd',
|
||||
meta: {
|
||||
title: '事务添加',
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'approved',
|
||||
component: async () =>
|
||||
await import('@/pages/affair/AffairApproved.vue'),
|
||||
name: 'affairApproved',
|
||||
meta: {
|
||||
title: '已审批事务',
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
}
|
||||
],
|
||||
meta: {
|
||||
title: '事务',
|
||||
icon: IconPinnacleHome,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user