审批流程显示方式更新,多个视图页面及组件修改。

This commit is contained in:
zmj 2024-05-29 15:30:28 +08:00
parent 12baa264bf
commit 7d78205b59
7 changed files with 700 additions and 2 deletions

View File

@ -6,7 +6,7 @@
审批内容
</template>
<!-- <generateForm :config="formData.data" :extend="extend" :form-data="formData.extends" :type="type"> -->
<jk></jk>
<tysp></tysp>
<!-- </generateForm> -->
</el-card>
<oaFlow :form-data="formData" :flow_cate="formData.id"></oaFlow>
@ -19,7 +19,7 @@ import generateForm from './../../components/generateForm/index.vue'
import Popup from "@/components/popup/index.vue";
import { apiOaoaApproveAdd } from "@/api/oa_Initiate"
import jk from './form/jk/jk.vue'
import tysp from './form/qt/tysp.vue'

View File

@ -0,0 +1,66 @@
<template>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="审批内容" prop="jyr">
<el-input v-model="formData.jyr" clearable placeholder="请输入审批内容" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="紧急程度" prop="jjlx">
<el-select v-model="formData.jjlx" placeholder="请选择紧急程度" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="详细描述" prop="bz1">
<el-input v-model="formData.bz1" clearable placeholder="请输入详细描述" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<uploadAnnex :form-data="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
<div v-if="showPerDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</template>
<script setup>
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw", 'lwrq1', 'jjlx', 'bz1']
const qjlxList = reactive(['普通', '紧急', '特急'])
const formData = reactive({})
const formRef = ref(null)
//
const formRules = reactive({
})
const setRules = () => {
list.forEach(item => {
formRules[item] = [{
required: true,
message: '不可为空',
trigger: ['blur']
}]
})
}
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
</script>

View File

@ -0,0 +1,128 @@
<template>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="员工姓名" prop="jyr">
<el-input v-model="formData.jyr" clearable placeholder="请输入借用人" @click="userclick('jyr')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入职时间" prop="lwrq">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择入职时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在部门" prop="rzbm">
<el-select v-model="formData.rzbm" placeholder="请选择入职部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="担任职务" prop="drzw">
<el-select v-model="formData.drzw" placeholder="请选择担任职务" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请离职日期" prop="lwrq1">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq1" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择申请离职日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预计离职日期" prop="lwrq2">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq2" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择预计离职日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="离职原因" prop="bz1">
<el-input v-model="formData.bz1" clearable placeholder="请输入离职原因" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<uploadAnnex :form-data="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
<div v-if="showPerDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</template>
<script setup>
import { deptLists } from "@/api/org/department";
import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw", 'lwrq1', 'lwrq2', 'bz1']
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
const formRef = ref(null)
const deptList = ref([])
const getDeptList = async () => {
const res = await deptLists()
deptList.value = res.lists
}
getDeptList()
const zwlist = ref([])
const getzwlist = async () => {
const res = await jobsLists()
zwlist.value = res.lists
}
getzwlist()
//
const formRules = reactive({
})
const setRules = () => {
list.forEach(item => {
formRules[item] = [{
required: true,
message: '不可为空',
trigger: ['blur']
}]
})
}
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
let value
const userclick = async (val) => {
showPerDialog.value = true
value = val
await nextTick()
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
showPerDialog.value = false
}
</script>

View File

@ -0,0 +1,121 @@
<template>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="员工姓名" prop="jyr">
<el-input v-model="formData.jyr" clearable placeholder="请输入借用人" @click="userclick('jyr')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入职时间" prop="lwrq">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择入职时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号码" prop="wjmc">
<el-input v-model="formData.wjmc" clearable placeholder="请输入借款金额" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别" prop="sex">
<el-select v-model="formData.sex" placeholder="请选择性别" class="flex-1">
<el-option label="男" value="1"></el-option>
<el-option label="女" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入职部门" prop="rzbm">
<el-select v-model="formData.rzbm" placeholder="请选择入职部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="担任职务" prop="drzw">
<el-select v-model="formData.drzw" placeholder="请选择担任职务" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注">
<el-input v-model="formData.bz1" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
</el-row>
<div v-if="showPerDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</template>
<script setup>
import { deptLists } from "@/api/org/department";
import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw"]
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
const formRef = ref(null)
const deptList = ref([])
const getDeptList = async () => {
const res = await deptLists()
deptList.value = res.lists
}
getDeptList()
const zwlist = ref([])
const getzwlist = async () => {
const res = await jobsLists()
zwlist.value = res.lists
}
getzwlist()
//
const formRules = reactive({
})
const setRules = () => {
list.forEach(item => {
formRules[item] = [{
required: true,
message: '不可为空',
trigger: ['blur']
}]
})
}
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
let value
const userclick = async (val) => {
showPerDialog.value = true
value = val
await nextTick()
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
showPerDialog.value = false
}
</script>

View File

@ -0,0 +1,145 @@
<template>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="员工姓名" prop="jyr">
<el-input v-model="formData.jyr" clearable placeholder="请输入借用人" @click="userclick('jyr')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入职时间" prop="lwrq">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择入职时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="当前所在部门" prop="rzbm">
<el-select v-model="formData.rzbm" placeholder="请选择入职部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="担任职务" prop="drzw">
<el-select v-model="formData.drzw" placeholder="请选择担任职务" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="转岗后所在部门" prop="rzbm">
<el-select v-model="formData.rzbm1" placeholder="请选择入职部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="转刚后职务" prop="drzw">
<el-select v-model="formData.drzw1" placeholder="请选择担任职务" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请转岗日期" prop="lwrq1">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq1" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择申请离职日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预计转刚日期" prop="lwrq2">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq2" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择预计离职日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="转刚原因" prop="bz1">
<el-input v-model="formData.bz1" clearable placeholder="请输入离职原因" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<uploadAnnex :form-data="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
<div v-if="showPerDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</template>
<script setup>
import { deptLists } from "@/api/org/department";
import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw", 'lwrq1', 'lwrq2', 'bz1', 'rzbm1', 'drzw1']
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
const formRef = ref(null)
const deptList = ref([])
const getDeptList = async () => {
const res = await deptLists()
deptList.value = res.lists
}
getDeptList()
const zwlist = ref([])
const getzwlist = async () => {
const res = await jobsLists()
zwlist.value = res.lists
}
getzwlist()
//
const formRules = reactive({
})
const setRules = () => {
list.forEach(item => {
formRules[item] = [{
required: true,
message: '不可为空',
trigger: ['blur']
}]
})
}
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
let value
const userclick = async (val) => {
showPerDialog.value = true
value = val
await nextTick()
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
showPerDialog.value = false
}
</script>

View File

@ -0,0 +1,125 @@
<template>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="招聘部门" prop="rzbm">
<el-select v-model="formData.rzbm" placeholder="请选择入职部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期望到岗日期" prop="lwrq1">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq1" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择期望到岗日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招聘岗位" prop="drzw">
<el-select v-model="formData.drzw" placeholder="请选择招聘岗位" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招聘人数" prop="bz1">
<el-input v-model="formData.bz1" clearable placeholder="请输入招聘人数" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="岗位职责" prop="gwzz">
<el-input v-model="formData.gwzz" clearable placeholder="请输入岗位职责" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="任职要求" prop="rzyq">
<el-input v-model="formData.rzyq" clearable placeholder="请输入任职要求" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<uploadAnnex :form-data="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
<div v-if="showPerDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</template>
<script setup>
import { deptLists } from "@/api/org/department";
import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw", 'lwrq1', 'lwrq2', 'bz1', 'gwzz', 'rzyq']
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
const formRef = ref(null)
const deptList = ref([])
const getDeptList = async () => {
const res = await deptLists()
deptList.value = res.lists
}
getDeptList()
const zwlist = ref([])
const getzwlist = async () => {
const res = await jobsLists()
zwlist.value = res.lists
}
getzwlist()
//
const formRules = reactive({
})
const setRules = () => {
list.forEach(item => {
formRules[item] = [{
required: true,
message: '不可为空',
trigger: ['blur']
}]
})
}
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
let value
const userclick = async (val) => {
showPerDialog.value = true
value = val
await nextTick()
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
showPerDialog.value = false
}
</script>

View File

@ -0,0 +1,113 @@
<template>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="员工姓名" prop="jyr">
<el-input v-model="formData.jyr" clearable placeholder="请输入借用人" @click="userclick('jyr')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="转正日期" prop="lwrq">
<el-date-picker class="flex-1 !flex" v-model="formData.lwrq" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择转正日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在部门" prop="rzbm">
<el-select v-model="formData.rzbm" placeholder="请选择入职部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="担任职务" prop="drzw">
<el-select v-model="formData.drzw" placeholder="请选择担任职务" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试用期评价">
<el-input v-model="formData.bz1" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<uploadAnnex :form-data="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
<div v-if="showPerDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</template>
<script setup>
import { deptLists } from "@/api/org/department";
import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw"]
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
const formRef = ref(null)
const deptList = ref([])
const getDeptList = async () => {
const res = await deptLists()
deptList.value = res.lists
}
getDeptList()
const zwlist = ref([])
const getzwlist = async () => {
const res = await jobsLists()
zwlist.value = res.lists
}
getzwlist()
//
const formRules = reactive({
})
const setRules = () => {
list.forEach(item => {
formRules[item] = [{
required: true,
message: '不可为空',
trigger: ['blur']
}]
})
}
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
let value
const userclick = async (val) => {
showPerDialog.value = true
value = val
await nextTick()
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
showPerDialog.value = false
}
</script>