add
This commit is contained in:
parent
6bc491861d
commit
c9a00ff8c7
src/views
bid_result
examined
project_list
@ -209,7 +209,6 @@ const handleSubmit = async () => {
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
getlist()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
|
100
src/views/examined/dialog_index.vue
Normal file
100
src/views/examined/dialog_index.vue
Normal file
@ -0,0 +1,100 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="公司名称" prop="company_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.company_name" clearable placeholder="请输入公司名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="公司类型" prop="company_type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.company_type" clearable placeholder="请输入公司类型" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" size="large" @cell-click="handleCurrentChange">
|
||||
<el-table-column label="ID" prop="id" min-width="60" />>
|
||||
<el-table-column label="头像" min-width="100">
|
||||
<template #default="{ row }">
|
||||
<el-avatar :size="50" :src="row.avatar"></el-avatar>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="姓名" prop="name" min-width="100" />
|
||||
<el-table-column label="联系方式" prop="account" min-width="130" />
|
||||
<el-table-column label="隶属公司" prop="company.company_name" min-width="120" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ row.company.company_name || "/" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在乡镇" prop="street_name" min-width="120" />
|
||||
<el-table-column label="授权身份" prop="role_name" min-width="120" />
|
||||
<el-table-column label="是否签约" prop="is_contract" align="center" min-width="120">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.is_contract == 1" style="color: #67c23a">已签约</span>
|
||||
<span v-else style="color: #fe0000">未签约</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="最近登录时间" prop="login_time" min-width="180" />
|
||||
<el-table-column label="创建时间" prop="create_time" min-width="180" align="center" />
|
||||
<el-table-column label="最近登录IP" prop="login_ip" min-width="120" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="companyLists">
|
||||
import { usePaging } from "@/hooks/usePaging";
|
||||
import { useDictData } from "@/hooks/useDictOptions";
|
||||
import { apiCompanyLists, apiCompanyDelete } from "@/api/company";
|
||||
import { defineEmits } from "vue";
|
||||
import { adminLists } from "@/api/perms/admin";
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
level_two: "",
|
||||
level_one: "",
|
||||
company_name: "",
|
||||
organization_code: "",
|
||||
city: "",
|
||||
area: "",
|
||||
street: "",
|
||||
company_type: "",
|
||||
master_name: "",
|
||||
master_position: "",
|
||||
master_phone: "",
|
||||
master_email: "",
|
||||
other_contacts: "",
|
||||
area_manager: "",
|
||||
is_contract: "",
|
||||
account: "",
|
||||
password: "",
|
||||
deposit: "",
|
||||
deposit_time: "",
|
||||
qualification: "",
|
||||
status: "",
|
||||
});
|
||||
|
||||
// 选中数据
|
||||
const emits = defineEmits(["customEvent"]);
|
||||
|
||||
// 选中数据子父传递
|
||||
const handleCurrentChange = (value: any) => {
|
||||
emits("customEvent", value);
|
||||
};
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: adminLists,
|
||||
params: queryParams,
|
||||
});
|
||||
|
||||
getLists();
|
||||
</script>
|
101
src/views/examined/editCate.vue
Normal file
101
src/views/examined/editCate.vue
Normal file
@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="84px">
|
||||
<el-col class="pt-6 !border-none">
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="名称" prop="title">
|
||||
<el-input v-model="formData.title" placeholder="请输入名称" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="标识" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入审批类型标识" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="图标" prop="icon">
|
||||
<el-input v-model="formData.icon" placeholder="请输入审批类型图标" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="flowTypeEdit">
|
||||
// import Popup from "@/components/popup/index.vue";
|
||||
// import { apiCateCreat } from "@/api/examined";
|
||||
// import { timeFormat } from "@/utils/util";
|
||||
import { ref, reactive, computed } from "vue";
|
||||
|
||||
const emit = defineEmits(["success", "close"]);
|
||||
const formRef = ref("")
|
||||
const popupRef = ref("")
|
||||
const mode = ref("add");
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == "edit" ? "编辑审批类型" : "新增审批类型";
|
||||
});
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: "",
|
||||
type: "",
|
||||
title: "",
|
||||
name: "",
|
||||
icon: "",
|
||||
department_ids: "",
|
||||
status: "",
|
||||
});
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
// const data = await apiFlowTypeDetail({
|
||||
// id: row.id,
|
||||
// });
|
||||
setFormData(data);
|
||||
};
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
const data = { ...formData };
|
||||
// mode.value == "edit" ? await apiCateCreat(data) : await apiCateCreat(data);
|
||||
popupRef.value?.close();
|
||||
emit("success");
|
||||
};
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = "add") => {
|
||||
mode.value = type;
|
||||
popupRef.value?.open();
|
||||
};
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit("close");
|
||||
};
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail,
|
||||
});
|
||||
</script>
|
309
src/views/examined/editFlow.vue
Normal file
309
src/views/examined/editFlow.vue
Normal file
@ -0,0 +1,309 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px">
|
||||
<el-col>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="审批流名称" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入审批流名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="应用模块" prop="type">
|
||||
<el-select v-model="formData.type" clearable :style="{ width: '100%' }">
|
||||
<el-option label="假勤" :value="1"></el-option>
|
||||
<el-option label="行政" :value="2"></el-option>
|
||||
<el-option label="财务" :value="3"></el-option>
|
||||
<el-option label="人事" :value="4"></el-option>
|
||||
<el-option label="其他" :value="5"></el-option>
|
||||
<el-option label="报销" :value="6"></el-option>
|
||||
<el-option label="发票" :value="7"></el-option>
|
||||
<el-option label="合同" :value="8"></el-option>
|
||||
</el-select> </el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="审批类型" prop="flow_cate">
|
||||
<el-select v-model="formData.flow_cate" placeholder="审批类型" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option label="日常审批" :value="1"></el-option>
|
||||
<el-option label="报销审批" :value="2"></el-option>
|
||||
<el-option label="发票审批" :value="3"></el-option>
|
||||
<el-option label="合同审批" :value="4"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="流程说明" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable type="textarea" placeholder="请输入流程说明" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="流程类型" prop="flow_detail.check_type" clearable :style="{ width: '100%' }">
|
||||
<el-radio-group v-model="formData.flow_detail.type" @change="checkTypeFn">
|
||||
<el-radio :label="1">固定审批</el-radio>
|
||||
<el-radio :label="2">授权审批人</el-radio>
|
||||
<el-radio :label="3">可回退审批 </el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<p v-if="formData.flow_detail.type == 1">
|
||||
<el-row v-for="(item, index) in formData.flow_detail.step">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审批流程">
|
||||
<el-select v-model="formData.flow_detail.step[index].type" placeholder="审批类型" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option label="当前部门负责人" value="1"></el-option>
|
||||
<el-option label="上一级部门负责人" value="2"></el-option>
|
||||
<el-option label="指定用户(任意一人)" value="3"></el-option>
|
||||
<el-option label="指定用户(多人会签)" value="4"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="item.type == '3' || item.type == '4'">
|
||||
<el-form-item label="指定人员">
|
||||
<el-input clearable v-model="item.user[0].name" placeholder="指定人员" @click="test(index)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="field126">
|
||||
<el-button type="primary" @click="
|
||||
formData.flow_detail.step.push({
|
||||
type: '',
|
||||
user: [{ id: '', name: '' }],
|
||||
})
|
||||
">其他联系人</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</p>
|
||||
<el-row v-if="formData.flow_detail.type == 2">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="">
|
||||
<span>无需审批</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<p v-if="formData.flow_detail.type == 3">
|
||||
<el-row v-for="(item, index) in formData.flow_detail.step">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审批流程" prop="copy_uids">
|
||||
<el-input v-model="item.type" clearable placeholder="请输入流程名称">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="指定人员">
|
||||
<el-input v-model="item.user[0].name" @click="test(index)" clearable placeholder="指定人员" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="field126">
|
||||
<el-button type="primary" @click="
|
||||
formData.flow_detail.step.push({
|
||||
type: '',
|
||||
user: [{ id: '', name: '' }],
|
||||
})
|
||||
">其他联系人</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</p>
|
||||
|
||||
<el-form-item label="抄送人ID" prop="copy_unames">
|
||||
<el-input v-model="formData.copy_to[0].name" clearable @click="isCompany = true" placeholder="请输入抄送人" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="创建人ID" prop="admin_id">
|
||||
<el-input
|
||||
v-model="formData.admin_id"
|
||||
clearable
|
||||
placeholder="请输入创建人ID"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="状态 1启用,0禁用" prop="status">
|
||||
<el-select v-model="formData.status">
|
||||
<el-option label="启用" value="1"></el-option>
|
||||
<el-option label="禁用" value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="删除人ID" prop="delete_user_id">
|
||||
<el-input
|
||||
v-model="formData.delete_user_id"
|
||||
clearable
|
||||
placeholder="请输入删除人ID"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
</popup>
|
||||
<el-dialog v-model="isCompany" title="选择人员" width="60%">
|
||||
<!-- <DialogIndex @customEvent="customEvent" /> -->
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="flowEdit">
|
||||
import type { FormInstance } from "element-plus";
|
||||
import Popup from "@/components/popup/index.vue";
|
||||
// import { apiFlowCreat, apiFlowDetil } from "@/api/examined";
|
||||
import { timeFormat } from "@/utils/util";
|
||||
// import DialogIndex from "./dialog_index.vue";
|
||||
import type { PropType } from "vue";
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({}),
|
||||
},
|
||||
});
|
||||
const isCompany = ref(false);
|
||||
const emit = defineEmits(["success", "close"]);
|
||||
const formRef = shallowRef<FormInstance>();
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>();
|
||||
const mode = ref("add");
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == "edit" ? "编辑审批流程表" : "新增审批流程表";
|
||||
});
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
// flow_detail: {
|
||||
// type: 1,
|
||||
// layer: [
|
||||
// { type: 1 },
|
||||
// { type: 3, user: [{ id: 1, name: "sdf" }] },
|
||||
// { name: "看见对方" },
|
||||
// ],
|
||||
// },
|
||||
|
||||
id: "",
|
||||
name: "",
|
||||
check_type: "",
|
||||
type: "",
|
||||
flow_cate: "",
|
||||
remark: "",
|
||||
// admin_id: "",
|
||||
flow_detail: {
|
||||
type: 1,
|
||||
step: [{ type: "", user: [{ id: "", name: "" }] }],
|
||||
},
|
||||
// flowType: [""],
|
||||
// flowUnamesA: [""],
|
||||
// flowUidsA: [],
|
||||
// flowName: [""],
|
||||
// flowUnamesB: [""],
|
||||
// flowUidsB: [],
|
||||
copy_to: [{ id: "", name: "" }],
|
||||
});
|
||||
//单选框改变时清空单选下的表单数据
|
||||
const checkTypeFn = () => {
|
||||
formData.flow_detail.step = [{ type: "", user: [{ id: "", name: "" }] }];
|
||||
};
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入审批流名称",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
check_type: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入1固定审批,2授权审批人",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
type: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入应用模块,1假勤,2行政,3财务,4人事,5其他,6报销,7发票,8合同",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
flow_cate: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入应用审批类型id",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
|
||||
remark: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入流程说明",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
});
|
||||
// dialog弹出框选择时i=-1代表抄送人,其余为flow_detail的step下标
|
||||
let i = -1;
|
||||
const test = (index: number) => {
|
||||
isCompany.value = true;
|
||||
i = index;
|
||||
};
|
||||
function customEvent(data: any) {
|
||||
isCompany.value = false;
|
||||
if (i == -1) {
|
||||
formData.copy_to[0].id = data.id;
|
||||
formData.copy_to[0].name = data.name;
|
||||
} else {
|
||||
formData.flow_detail.step[i].user[0].id = data.id;
|
||||
formData.flow_detail.step[i].user[0].name = data.name;
|
||||
}
|
||||
i = -1;
|
||||
}
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
// let res = await apiFlowDetil(data.id);
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = res[key];
|
||||
}
|
||||
}
|
||||
formData.flow_detail.type = Number(formData.flow_detail.type);
|
||||
};
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
// const data = await apiFlowDetail({
|
||||
// id: row.id,
|
||||
// });
|
||||
// setFormData(data);
|
||||
};
|
||||
const a = {};
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate();
|
||||
// mode.value == "edit"
|
||||
// ? await apiFlowCreat(formData)
|
||||
// : await apiFlowCreat(formData);
|
||||
popupRef.value?.close();
|
||||
emit("success");
|
||||
};
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = "add") => {
|
||||
mode.value = type;
|
||||
popupRef.value?.open();
|
||||
};
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit("close");
|
||||
};
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail,
|
||||
});
|
||||
</script>
|
123
src/views/examined/examined.vue
Normal file
123
src/views/examined/examined.vue
Normal file
@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['flow_type/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
v-perms="['flow_type/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
删除
|
||||
</el-button> -->
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
{{ pager }}
|
||||
<el-table-column label="id" prop="id" show-overflow-tooltip width="60" />
|
||||
<el-table-column label="名称" prop="title" show-overflow-tooltip />
|
||||
<el-table-column label="应用部门" prop="department" show-overflow-tooltip />
|
||||
<el-table-column label="标识" prop="name" show-overflow-tooltip />
|
||||
<el-table-column label="图标" prop="icon" show-overflow-tooltip />
|
||||
<el-table-column label="所属分类" prop="type_name" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="状态" prop="status" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.status == 1" style="color: #67c23a">正常</span>
|
||||
<span v-else style="color: #fe0000">禁用</span>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="账号状态" min-width="100" v-perms="['auth.admin/edit']">
|
||||
<template #default="{ row }">
|
||||
<el-switch v-model="row.status" :active-value="1" :inactive-value="0"
|
||||
@change="changeStatus(row)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="auto" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['flow/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['flow/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="flowTypeLists">
|
||||
import { usePaging } from "@/hooks/usePaging";
|
||||
import { useDictData } from "@/hooks/useDictOptions";
|
||||
// import { apiCateLists, apiCateStatus } from "@/api/examined";
|
||||
import feedback from "@/utils/feedback";
|
||||
import { ref, reactive } from "vue"
|
||||
import EditPopup from "./editCate.vue";
|
||||
|
||||
const editRef = ref(null)
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false);
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
type: "",
|
||||
title: "",
|
||||
name: "",
|
||||
icon: "",
|
||||
department_ids: "",
|
||||
status: "",
|
||||
});
|
||||
|
||||
// 选中数据
|
||||
// const selectData = ref<any[]>([]);
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id);
|
||||
};
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData("");
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
// fetchFun: apiCateLists,
|
||||
params: queryParams,
|
||||
});
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true;
|
||||
// await nextTick();
|
||||
editRef.value?.open("add");
|
||||
};
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true;
|
||||
// await nextTick();
|
||||
editRef.value?.open("edit");
|
||||
editRef.value?.setFormData(data);
|
||||
};
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm("确定要删除?");
|
||||
// await apiFlowTypeDelete({ id });
|
||||
getLists();
|
||||
};
|
||||
// 状态
|
||||
const changeStatus = (row: any) => {
|
||||
// apiCateStatus({ id: row.id, status: row.status });
|
||||
};
|
||||
// getLists();
|
||||
</script>
|
191
src/views/examined/examinedFlow.vue
Normal file
191
src/views/examined/examinedFlow.vue
Normal file
@ -0,0 +1,191 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- <el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
inline
|
||||
>
|
||||
<el-form-item label="审批流名称" prop="name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入审批流名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="1固定审批,2授权审批人" prop="check_type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.check_type" clearable placeholder="请输入1固定审批,2授权审批人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应用模块,1假勤,2行政,3财务,4人事,5其他,6报销,7发票,8合同" prop="type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.type" clearable placeholder="请输入应用模块,1假勤,2行政,3财务,4人事,5其他,6报销,7发票,8合同" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应用审批类型id" prop="flow_cate">
|
||||
<el-input class="w-[280px]" v-model="queryParams.flow_cate" clearable placeholder="请输入应用审批类型id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应用部门ID(0为全部)1,2,3" prop="department_ids">
|
||||
<el-input class="w-[280px]" v-model="queryParams.department_ids" clearable placeholder="请输入应用部门ID(0为全部)1,2,3" />
|
||||
</el-form-item>
|
||||
<el-form-item label="抄送人ID" prop="copy_uids">
|
||||
<el-input class="w-[280px]" v-model="queryParams.copy_uids" clearable placeholder="请输入抄送人ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流程说明" prop="remark">
|
||||
<el-input class="w-[280px]" v-model="queryParams.remark" clearable placeholder="请输入流程说明" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流程数据序列化" prop="flow_list">
|
||||
<el-input class="w-[280px]" v-model="queryParams.flow_list" clearable placeholder="请输入流程数据序列化" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人ID" prop="admin_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.admin_id" clearable placeholder="请输入创建人ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态 1启用,0禁用" prop="status">
|
||||
<el-input class="w-[280px]" v-model="queryParams.status" clearable placeholder="请输入状态 1启用,0禁用" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除人ID" prop="delete_user_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.delete_user_id" clearable placeholder="请输入删除人ID" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card> -->
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['flow/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
v-perms="['flow/delete']"
|
||||
:disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)"
|
||||
>
|
||||
删除
|
||||
</el-button> -->
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="审批流名称" prop="name" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="1固定审批,2授权审批人" prop="check_type" show-overflow-tooltip /> -->
|
||||
<el-table-column label="应用模块" prop="type" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.type == 1">假勤</span>
|
||||
<span v-if="row.type == 2">行政</span>
|
||||
<span v-if="row.type == 3">财务</span>
|
||||
<span v-if="row.type == 4">人事</span>
|
||||
<span v-if="row.type == 5">其他</span>
|
||||
<span v-if="row.type == 6">报销</span>
|
||||
<span v-if="row.type == 7">发票</span>
|
||||
<span v-if="row.type == 8">合同</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="应用审批类型id" prop="flow_cate" show-overflow-tooltip />
|
||||
<el-table-column label="应用部门" prop="department" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column label="抄送人ID" prop="copy_uids" show-overflow-tooltip />
|
||||
<el-table-column label="流程说明" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="流程数据序列化" prop="flow_list" show-overflow-tooltip />
|
||||
<el-table-column label="创建人ID" prop="admin_id" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="状态" prop="status" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.status == 1">启用</span>
|
||||
<span v-if="row.status == 0">禁用</span>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="账号状态" min-width="100" v-perms="['auth.admin/edit']">
|
||||
<template #default="{ row }">
|
||||
<el-switch v-if="row.root != 1" v-model="row.status" :active-value="1" :inactive-value="0"
|
||||
@change="changeStatus(row)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="删除人ID" prop="delete_user_id" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['flow/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['flow/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="flowLists">
|
||||
import { usePaging } from "@/hooks/usePaging";
|
||||
import { useDictData } from "@/hooks/useDictOptions";
|
||||
// import { apiFlowLists, apiFlowDetil, apiFlowStatus } from "@/api/examined";
|
||||
import { timeFormat } from "@/utils/util";
|
||||
import feedback from "@/utils/feedback";
|
||||
import EditPopup from "./editFlow.vue";
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>();
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false);
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
name: "",
|
||||
check_type: "",
|
||||
type: "",
|
||||
flow_cate: "",
|
||||
department_ids: "",
|
||||
copy_uids: "",
|
||||
remark: "",
|
||||
flow_list: "",
|
||||
admin_id: "",
|
||||
status: "",
|
||||
delete_user_id: "",
|
||||
});
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([]);
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id);
|
||||
};
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData("");
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
// fetchFun: apiFlowLists,
|
||||
params: queryParams,
|
||||
});
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true;
|
||||
await nextTick();
|
||||
editRef.value?.open("add");
|
||||
};
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true;
|
||||
await nextTick();
|
||||
editRef.value?.open("edit");
|
||||
editRef.value?.setFormData(data);
|
||||
};
|
||||
// 状态
|
||||
const changeStatus = (row: any) => {
|
||||
console.log(row.status);
|
||||
// apiFlowStatus({ id: row.id, status: row.status });
|
||||
};
|
||||
|
||||
// 删除
|
||||
// const handleDelete = async (id: number | any[]) => {
|
||||
// await feedback.confirm("确定要删除?");
|
||||
// await apiFlowDelete({ id });
|
||||
// getLists();
|
||||
// };
|
||||
|
||||
// getLists();
|
||||
</script>
|
@ -61,7 +61,6 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiCustomDetail } from '@/api/custom'
|
||||
import type { PropType } from 'vue'
|
||||
import Overview from "./components/Overview.vue"
|
||||
import Business from "./components/Business.vue"
|
||||
import tender from "./components/tender.vue"
|
||||
@ -76,20 +75,11 @@ import documentation from "./components/documentation.vue"
|
||||
import Statistics from "./components/Statistics.vue"
|
||||
|
||||
const activeName = ref('demo-1')
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
|
||||
|
||||
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user