更新了待审批列表相关功能

This commit is contained in:
weipengfei 2023-09-15 19:54:26 +08:00
parent 796677d8e6
commit 7a1ec737d1
3 changed files with 140 additions and 70 deletions

View File

@ -30,7 +30,12 @@ export function apiFlowDetil(params: any) {
} }
// 任务 // 任务
// 任务审批(待审批列表) // 任务审批列表(待审批列表)
export function apiApproveList(params: any) { export function apiApproveList(params: any) {
return request.get({ url: "/approve.approve/lists", params }); return request.get({ url: "/approve.approve/lists", params });
} }
// 任务审批(待审批列表)
export function apiApproveAudit(params: any) {
return request.get({ url: "/approve.approve/audit", params });
}

View File

@ -10,6 +10,21 @@
placeholder="请输入任务名称" placeholder="请输入任务名称"
/> />
</el-form-item> </el-form-item>
<el-form-item label="审核状态" prop="name">
<el-select
v-model="queryParams.check_status"
placeholder="请选择审核状态"
clearable
class="w-[280px]"
>
<el-option
v-for="(item, index) in checkStatusList"
:key="index"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button> <el-button type="primary" @click="resetPage">查询</el-button>
@ -21,42 +36,67 @@
<div class="mt-4"> <div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange"> <el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column label="ID" prop="id" /> <el-table-column label="ID" prop="id" />
<el-table-column label="任务名称" prop="name" show-overflow-tooltip />
<el-table-column label="任务描述" prop="remark" show-overflow-tooltip>
</el-table-column>
<el-table-column label="任务金额" prop="remark" show-overflow-tooltip>
</el-table-column>
<el-table-column <el-table-column
label="任务完成时间" label="任务名称"
prop="remark" prop="task.title"
show-overflow-tooltip
/>
<el-table-column
label="任务描述"
prop="task.content"
show-overflow-tooltip show-overflow-tooltip
> >
</el-table-column> </el-table-column>
<el-table-column label="所属公司" prop="remark" show-overflow-tooltip>
</el-table-column>
<el-table-column label="片区经理" prop="remark" show-overflow-tooltip>
</el-table-column>
<el-table-column <el-table-column
label="当前审核人" label="任务金额"
prop="department" prop="task.money"
show-overflow-tooltip show-overflow-tooltip
> >
</el-table-column> </el-table-column>
<el-table-column label="审核状态" prop="status" show-overflow-tooltip> <el-table-column
label="任务提交时间"
prop="task.update_time"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label="公司名称"
prop="company_name"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="片区经理"
prop="area_manager"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label="审核状态"
prop="check_status"
show-overflow-tooltip
>
<template #default="{ row }"> <template #default="{ row }">
<span v-if="row.status == 2" style="color: #f56c6c">未通过</span> <span v-if="row.check_status == 3" style="color: #f56c6c"
<span v-if="row.status == 1" style="color: #67c23a">已通过</span> >未通过</span
<span v-if="row.status == 0" style="color: #e6a23c">未审核</span> >
<span v-if="row.check_status == 2" style="color: #67c23a"
>已通过</span
>
<span v-if="row.check_status == 1" style="color: #e6a23c"
>待审核</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remark" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="120" fixed="right"> <el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button
v-perms="['flow/edit']" v-perms="['flow/edit']"
type="primary" type="primary"
link link
v-if="row.status == 0" v-if="row.type == 1"
@click="handleEdit(row)" @click="handleEdit(row, 'edit')"
> >
审核 审核
</el-button> </el-button>
@ -92,7 +132,7 @@ import { useDictData } from "@/hooks/useDictOptions";
import { apiApproveList } from "@/api/examined"; import { apiApproveList } from "@/api/examined";
import { timeFormat } from "@/utils/util"; import { timeFormat } from "@/utils/util";
import feedback from "@/utils/feedback"; import feedback from "@/utils/feedback";
import EditPopup from "./examined_popup.vue"; import EditPopup from "./index_list_popup.vue";
const editRef = shallowRef<InstanceType<typeof EditPopup>>(); const editRef = shallowRef<InstanceType<typeof EditPopup>>();
// //
@ -101,18 +141,24 @@ const showEdit = ref(false);
// //
const queryParams = reactive({ const queryParams = reactive({
name: "", name: "",
check_type: "", check_status: "",
type: "",
flow_cate: "",
department_ids: "",
copy_uids: "",
remark: "",
flow_list: "",
admin_id: "",
status: "",
delete_user_id: "",
}); });
const checkStatusList = ref([
{
id: 1,
name: "待审核",
},
{
id: 2,
name: "已通过",
},
{
id: 3,
name: "未通过",
},
]);
// //
const selectData = ref<any[]>([]); const selectData = ref<any[]>([]);

View File

@ -23,38 +23,38 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="任务名称" prop="name"> <el-form-item label="任务名称" prop="task.title">
<el-input readonly v-model="formData.name" /> <el-input readonly v-model="formData.task.title" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="任务金额" prop="flow_cate"> <el-form-item label="任务金额" prop="task.money">
<el-input readonly v-model="formData.flow_cate" /> <el-input readonly v-model="formData.task.money" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属公司" prop="name"> <el-form-item label="所属公司" prop="company_name">
<el-input readonly v-model="formData.name" /> <el-input readonly v-model="formData.company_name" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="任务描述" prop="remark"> <el-form-item label="任务描述" prop="task.content">
<el-input <el-input
readonly readonly
v-model="formData.remark" v-model="formData.task.content"
clearable clearable
type="textarea" type="textarea"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="任务完成时间" prop="id"> <el-form-item label="任务提交时间" prop="id">
<el-input readonly v-model="formData.id" /> <el-input readonly v-model="formData.task.update_time" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="片区经理" prop="flow_cate"> <el-form-item label="片区经理" prop="flow_cate">
<el-input readonly v-model="formData.flow_cate" /> <el-input readonly v-model="formData.area_manager" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -64,7 +64,7 @@
<el-form-item label="详情描述" prop="remark"> <el-form-item label="详情描述" prop="remark">
<el-input <el-input
readonly readonly
v-model="formData.remark" :value="formData.task?.extend.other.note"
clearable clearable
type="textarea" type="textarea"
/> />
@ -74,10 +74,10 @@
<el-form-item label="附件" prop="flow_cate"> <el-form-item label="附件" prop="flow_cate">
<el-image <el-image
class="attachment" class="attachment"
v-for="(item, index) in 5" v-for="(item, index) in formData.task.extend.other.annex"
:key="index" :key="index"
src="" :src="item"
:preview-src-list="[]" :preview-src-list="formData.task.extend.other.annex"
:initial-index="index" :initial-index="index"
fit="cover" fit="cover"
></el-image> ></el-image>
@ -85,7 +85,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-divider /> <el-divider />
<el-col :span="24"> <!-- <el-col :span="24">
<el-form-item label=""> <el-form-item label="">
<el-timeline> <el-timeline>
<el-timeline-item <el-timeline-item
@ -99,20 +99,20 @@
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="审核" label="审核"
prop="flow_detail.check_type" prop="check_status"
clearable clearable
:style="{ width: '100%' }" :style="{ width: '100%' }"
> >
<el-radio-group <el-radio-group
:disabled="mode == 'details'" :disabled="mode == 'details'"
v-model="formData.flow_detail.type" v-model="formData.check_status"
> >
<el-radio :label="1">通过</el-radio> <el-radio :label="2">通过</el-radio>
<el-radio :label="2">驳回</el-radio> <el-radio :label="3">驳回</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -136,7 +136,7 @@
<script lang="ts" setup name="flowEdit"> <script lang="ts" setup name="flowEdit">
import type { FormInstance } from "element-plus"; import type { FormInstance } from "element-plus";
import Popup from "@/components/popup/index.vue"; import Popup from "@/components/popup/index.vue";
import { apiFlowCreat, apiFlowDetil } from "@/api/examined"; import { apiApproveAudit } from "@/api/examined";
import { timeFormat } from "@/utils/util"; import { timeFormat } from "@/utils/util";
import type { PropType } from "vue"; import type { PropType } from "vue";
defineProps({ defineProps({
@ -176,32 +176,47 @@ const activities = ref([
// //
const formData = reactive({ const formData = reactive({
id: "", id: "",
name: "", task: {},
check_type: "", company_name: "",
type: "", area_manager: "",
flow_cate: "", check_status: 1,
remark: "", remark: "",
flow_detail: {
type: 1,
step: [{ type: "", user: [{ id: "", name: "" }] }],
},
copy_to: [{ id: "", name: "" }],
}); });
// //
const formRules = reactive<any>({}); const formRules = reactive<any>({
check_status: [
{
required: true,
validator: (rules: any, value: any, callback: any) => {
if (value != 2 && value != 3) callback("请选择审核状态");
else callback();
},
trigger: ["blur"],
},
],
// remark: [
// {
// required: false,
// validator: (rules: any, value: any, callback: any) => {
// if (formData.check_status == 3) callback("");
// else callback();
// },
// trigger: ["blur"],
// },
// ],
});
function customEvent(data: any) { function customEvent(data: any) {
isCompany.value = false; isCompany.value = false;
} }
// //
const setFormData = async (data: Record<any, any>) => { const setFormData = async (data: Record<any, any>) => {
let res = await apiFlowDetil(data.id); // let res = await apiFlowDetil(data.id);
for (const key in formData) { for (const key in formData) {
if (data[key] != null && data[key] != undefined) { if (data[key] != null && data[key] != undefined) {
//@ts-ignore //@ts-ignore
formData[key] = res[key]; formData[key] = data[key];
} }
} }
formData.flow_detail.type = Number(formData.flow_detail.type);
}; };
const getDetail = async (row: Record<string, any>) => { const getDetail = async (row: Record<string, any>) => {
@ -213,9 +228,13 @@ const getDetail = async (row: Record<string, any>) => {
// //
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value?.validate(); await formRef.value?.validate();
mode.value == "edit" if (formData.check_status == 3 && formData.remark == "")
? await apiFlowCreat(formData) return ElMessage.error("驳回必须填写备注");
: await apiFlowCreat(formData); await apiApproveAudit({
id: formData.id,
check_status: formData.check_status,
remark: formData.remark,
});
popupRef.value?.close(); popupRef.value?.close();
emit("success"); emit("success");
}; };