根据以上 git diff 信息,我们可以生成以下 commit message:

更新多个页面及组件,包括审批流程显示方式、人员选择器等。
This commit is contained in:
zmj 2024-05-29 22:36:38 +08:00
parent b6ababd6b9
commit 27713a1295
48 changed files with 481 additions and 163 deletions

View File

@ -29,7 +29,6 @@
import { defineProps } from "vue"
import { timeFormat } from '@/utils/util'
import useUserStore from "@/stores/modules/user";
let props = defineProps({
flag: Boolean,
formData: Object,

View File

@ -1,25 +1,19 @@
<template>
<div class="detail-popup">
<popup ref="popupRef" :showFootBtn="false" title="审批详情" :async="true" width="60vw">
<popup ref="popupRef" :showFootBtn="false" title="审批详情" :async="true" width="60vw" @close='hdClose'>
<el-card>
<template #header>审批内容</template>
<el-descriptions :column="3" border>
<el-descriptions-item v-for="item in formData.extends" :label="item.label" label-align="left"
<el-descriptions-item v-for="(item,value) in fromValue" :label="item" label-align="left"
align="left">
{{ item.text || item.value }}
{{formData.extends[value]}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border v-if='formData.extends?.annex'>
<el-descriptions-item label="附件" label-align="left" align="left">
<annexLink :annex='formData.extends.annex'></annexLink>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card>
<template #header>审批流程</template>
@ -113,13 +107,95 @@
</template>
<script lang="ts" setup name="customdetail">
import annexLink from './../../components/annexLink/index.vue'
import Popup from '@/components/popup/index.vue'
import { apiOaoaApproveCheck } from "@/api/oa_initiate"
import useUserStore from "@/stores/modules/user";
import { Clock } from '@element-plus/icons-vue'
import feedback from './../../utils/feedback'
import {ref,reactive} from "vue"
import qja from './form/jq/qja.js'
import cca from './form/jq/cca.js'
import wca from './form/jq/wca.js'
import jba from './form/jq/jba.js'
import hysyda from './form/xz/hysyda.js'
import gwlza from './form/xz/gwlza.js'
import wpwxa from './form/xz/wpwxa.js'
import zzjya from './form/xz/zzjya.js'
import yza from './form/xz/yza.js'
import yca from './form/xz/yca.js'
import ycgha from './form/xz/ycgha.js'
import jka from './form/cw/jka.js'
import fka from './form/cw/fka.js'
import jla from './form/cw/jla.js'
import cga from './form/cw/cga.js'
import hdjfa from './form/cw/hdjfa.js'
import rza from './form/rs/rza.js'
import zza from './form/rs/zza.js'
import lza from './form/rs/lza.js'
import zga from './form/rs/zga.js'
import zpxqa from './form/rs/zpxqa.js'
import tyspa from './form/qt/tyspa.js'
let props = defineProps({
typeName: {
type: String,
}
})
let fromValue=ref({})
const getFormValue=()=>{
if(props.typeName=='请假')fromValue.value=qja;
if(props.typeName=='出差')fromValue.value=cca;
if(props.typeName=='外出')fromValue.value=wca;
if(props.typeName=='加班')fromValue.value=jba;
if(props.typeName=='会议室预定')fromValue.value=hysyda;
if(props.typeName=='公文流转')fromValue.value=gwlza;
if(props.typeName=='物品维修')fromValue.value=wpwxa;
if(props.typeName=='资质借用')fromValue.value=zzjya;
if(props.typeName=='用章')fromValue.value=yza;
if(props.typeName=='用车')fromValue.value=yca;
if(props.typeName=='用车归还')fromValue.value=ycgha;
if(props.typeName=='借款')fromValue.value=jka;
if(props.typeName=='付款')fromValue.value=fka;
if(props.typeName=='奖励')fromValue.value=cga;
if(props.typeName=='采购')fromValue.value=qja;
if(props.typeName=='活动经费')fromValue.value=hdjfa;
if(props.typeName=='入职')fromValue.value=rza;
if(props.typeName=='转正')fromValue.value=zza;
if(props.typeName=='离职')fromValue.value=lza;
if(props.typeName=='转岗')fromValue.value=zga;
if(props.typeName=='招聘需求')fromValue.value=zpxqa;
if(props.typeName=='通用审批')fromValue.value=tyspa;
console.log(fromValue.value)
}
getFormValue()
const emit = defineEmits(['close', 'reEdit'])
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const showPerDialog = ref(false);
@ -196,6 +272,11 @@ const handleClose = () => {
emit('close')
}
const hdClose=()=>{
emit('close')
}
//
const handCheck = async () => {

View File

@ -1,32 +1,34 @@
<template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit"
@close="handleClose">
<el-card>
<template #header>
审批内容
</template>
<qj ref="forms" v-if="type == '请假'"></qj>
<cc ref="forms" v-if="type == '出差'"></cc>
<wc ref="forms" v-if="type == '外出'"></wc>
<jb ref="forms" v-if="type == '加班'"></jb>
<hysyd ref="forms" v-if="type == '会议室预定'"></hysyd>
<gwlz ref="forms" v-if="type == '公文流转'"></gwlz>
<wpwx ref="forms" v-if="type == '物品维修'"></wpwx>
<zzjy ref="forms" v-if="type == '资质借用'"></zzjy>
<yz ref="forms" v-if="type == '用章'"></yz>
<yc ref="forms" v-if="type == '用车'"></yc>
<ycgh ref="forms" v-if="type == '用车归还'"></ycgh>
<jk ref="forms" v-if="type == '借款'"></jk>
<fk ref="forms" v-if="type == '付款'"></fk>
<jl ref="forms" v-if="type == '奖励'"></jl>
<cg ref="forms" v-if="type == '采购'"></cg>
<hdjf ref="forms" v-if="type == '活动经费'"></hdjf>
<rz ref="forms" v-if="type == '入职'"></rz>
<zz ref="forms" v-if="type == '转正'"></zz>
<lz ref="forms" v-if="type == '离职'"></lz>
<zg ref="forms" v-if="type == '转岗'"></zg>
<zpxq ref="forms" v-if="type == '招聘需求'"></zpxq>
<tysp ref="forms" v-if="type == '通用审批'"></tysp>
<qj :formData=formData.extends ref="forms" v-if="type == '请假'"></qj>
<cc ref="forms" :formData=formData.extends v-if="type == '出差'"></cc>
<wc ref="forms" :formData=formData.extends v-if="type == '外出'"></wc>
<jb ref="forms" :formData=formData.extends v-if="type == '加班'"></jb>
<hysyd ref="forms" :formData=formData.extends v-if="type == '会议室预定'"></hysyd>
<gwlz ref="forms" :formData=formData.extends v-if="type == '公文流转'"></gwlz>
<wpwx ref="forms" :formData=formData.extends v-if="type == '物品维修'"></wpwx>
<zzjy ref="forms" :formData=formData.extends v-if="type == '资质借用'"></zzjy>
<yz ref="forms" :formData=formData.extends v-if="type == '用章'"></yz>
<yc ref="forms" :formData=formData.extends v-if="type == '用车'"></yc>
<ycgh ref="forms" :formData=formData.extends v-if="type == '用车归还'"></ycgh>
<jk ref="forms" :formData=formData.extends v-if="type == '借款'"></jk>
<fk ref="forms" :formData=formData.extends v-if="type == '付款'"></fk>
<jl ref="forms" :formData=formData.extends v-if="type == '奖励'"></jl>
<cg ref="forms" :formData=formData.extends v-if="type == '采购'"></cg>
<hdjf ref="forms" :formData=formData.extends v-if="type == '活动经费'"></hdjf>
<rz ref="forms" :formData=formData.extends v-if="type == '入职'"></rz>
<zz ref="forms" :formData=formData.extends v-if="type == '转正'"></zz>
<lz ref="forms" :formData=formData.extends v-if="type == '离职'"></lz>
<zg ref="forms" :formData=formData.extends v-if="type == '转岗'"></zg>
<zpxq ref="forms" :formData=formData.extends v-if="type == '招聘需求'"></zpxq>
<tysp ref="forms" :formData=formData.extends v-if="type == '通用审批'"></tysp>
<!-- <generateForm></generateForm> -->
</el-card>
@ -75,10 +77,8 @@ let props = defineProps({
const forms = ref('')
const emit = defineEmits(["success", "close"]);
const formRef = shallowRef<FormInstance>();
const popupRef = shallowRef<InstanceType<typeof Popup>>();
const mode = ref("add");
const showDialog = ref(false)
const extend = ref({})
//

View File

@ -50,7 +50,10 @@
<script setup>
const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
const formData = ref({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
//

View File

@ -0,0 +1,9 @@
const cga = {
wpmc: "物品名称",
kssj: "期望交互日期",
chsl: "采购数量",
chje: "采购金额",
jlsy: "采购事由",
bz: "备注",
}
export default cga

View File

@ -9,7 +9,7 @@
<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 :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -66,7 +66,10 @@
let list = ['jkje', 'jjlx', 'jyr', 'yhzh', 'khh', "bz"]
const qjlxList = reactive(['银行卡', '现金', '汇票', '电汇', '贷记', '支票', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
//
@ -85,10 +88,6 @@ const setRules = () => {
setRules()
const showPerDialog = ref(false)
const personnel = ref(null)
const check = async () => {
await formRef.value?.validate();
}

View File

@ -0,0 +1,11 @@
const fka = {
wjmc: "付款金额",
jjlx: "付款方式",
lwrq: "付款日期",
jyr: "收款人全称",
yhzh: "银行账号",
yhzh: "开户行",
bz: "付款事由",
bz1: "备注",
}
export default fka

View File

@ -52,11 +52,14 @@
<script setup lang="ts">
const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()

View File

@ -0,0 +1,10 @@
const hdjfa = {
jlje: "活动名称",
jlje: "活动预算",
hdsm: "活动说明",
kssj: "开始时间",
jssj: "结束时间",
bz: "备注",
}
export default hdjfa

View File

@ -2,14 +2,14 @@
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="借款金额" prop="jkje">
<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="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 :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -35,7 +35,7 @@
<el-col :span="8">
<el-form-item label="开户行" prop="khh">
<el-input v-model="formData.yhzh" clearable placeholder="请输入开户行" />
<el-input v-model="formData.khh" clearable placeholder="请输入开户行" />
</el-form-item>
</el-col>
@ -61,7 +61,10 @@
let list = ['jkje', 'jjlx', 'jyr', 'yhzh', 'khh', "bz"]
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
//
@ -93,8 +96,8 @@ const userclick = async (val) => {
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
props.formData[value] = e.name
props.formData[value + "_id"] = e.id
showPerDialog.value = false
}

View File

@ -0,0 +1,12 @@
const jka = {
wjmc: "借款金额",
jjlx: "借款类型",
lwrq: "申请日期",
jyr: "借款人",
yhzh: "银行账号",
khh: "开户行",
bz: "借款事由",
bz1: "备注",
}
export default jka

View File

@ -37,8 +37,11 @@
</template>
<script setup>
let props = defineProps({
formData: Object,
})
const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
const formData = ref({})
const formRef = ref(null)
//

View File

@ -0,0 +1,7 @@
const jla = {
jlje: "奖励金额",
kssj: "奖励日期",
jlsy: "奖励事由",
bz: "备注",
}
export default jla

View File

@ -38,12 +38,15 @@
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
@ -81,12 +84,12 @@ const formRules = reactive({
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = formData?.jssj;
const date1 = props.formData.kssj;
const date2 = props.formData?.jssj;
if (date1 && date2) {
const timeDiff = new Date(date2).getTime() - new Date(date1).getTime();
const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
formData.qjts = daysDiff || 0
props.formData.qjts = daysDiff || 0
}
}
const check = async () => {

View File

@ -0,0 +1,7 @@
const cca = {
kssj: "开始时间",
jssj: "结束时间",
qjts: "出差天数",
ccsy: "出差事由",
}
export default cca

View File

@ -38,11 +38,14 @@
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
@ -82,12 +85,12 @@ const formRules = reactive({
const calcDay = () => {
const date1 = formData.kssj;
const date2 = formData?.jssj;
const date1 = props.formData.kssj;
const date2 = props.formData?.jssj;
if (date1 && date2) {
const timeDiff = new Date(date2).getTime() - new Date(date1).getTime();
const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
formData.qjts = daysDiff || 0
props.formData.qjts = daysDiff || 0
}
}

View File

@ -0,0 +1,7 @@
const jba = {
kssj: "开始时间",
jssj: "结束时间",
qjts: "加班天数",
jbsy: "加班事由",
}
export default jba

View File

@ -45,12 +45,17 @@
</template>
<script setup lang="ts">
let props = defineProps({
formData: Object,
})
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
@ -88,12 +93,12 @@ const formRules = reactive({
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = formData?.jssj;
const date1 = props.formData.kssj;
const date2 = props.formData?.jssj;
if (date1 && date2) {
const timeDiff = new Date(date2).getTime() - new Date(date1).getTime();
const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
formData.qjts = daysDiff || 0
props.formData.qjts = daysDiff || 0
}
}

View File

@ -1,5 +1,8 @@
const qja = {
name: "sdasd"
qjlx: "请假类型",
kssj: "开始时间",
jssj: "结束时间",
qjts: "请假天数",
qjsy: "请假事由",
}
export default qja

View File

@ -43,11 +43,14 @@
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
@ -85,12 +88,12 @@ const formRules = reactive({
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = formData?.jssj;
const date1 = props.formData.kssj;
const date2 = props.formData?.jssj;
if (date1 && date2) {
const timeDiff = new Date(date2).getTime() - new Date(date1).getTime();
const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
formData.qjts = daysDiff || 0
props.formData.qjts = daysDiff || 0
}
}
const check = async () => {

View File

@ -0,0 +1,8 @@
const wca = {
wcdd: "外出地点",
kssj: "开始时间",
jssj: "结束时间",
qjts: "外出天数",
wcsy: "外出事由",
}
export default wca

View File

@ -9,7 +9,7 @@
<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 :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -37,7 +37,10 @@
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw", 'lwrq1', 'jjlx', 'bz1']
const qjlxList = reactive(['普通', '紧急', '特急'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)

View File

@ -0,0 +1,7 @@
const tyspa = {
jyr: "审批内容",
jjlx: "紧急程度",
bz1: "详细描述",
}
export default tyspa

View File

@ -16,7 +16,7 @@
<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 :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -24,7 +24,7 @@
<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 :label="item.name" :value="item.name" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
@ -69,7 +69,10 @@ import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw", 'lwrq1', 'lwrq2', 'bz1']
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)

View File

@ -0,0 +1,11 @@
const lza = {
jyr: "员工姓名",
lwrq: "入职时间",
rzbm: "所在部门",
drzw: "担任职务",
lwrq1: "申请离职日期",
lwrq2: "预计离职日期",
bz1: "离职原因",
}
export default lza

View File

@ -21,15 +21,15 @@
<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-option label="男" value=""></el-option>
<el-option label="女" value=""></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 :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -37,7 +37,7 @@
<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 :label="item.name" :value="item.name" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
@ -62,7 +62,10 @@ import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw"]
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)

View File

@ -0,0 +1,11 @@
const rza = {
jyr: "员工姓名",
lwrq: "入职时间",
wjmc: "手机号码",
sex: "性别",
rzbm: "入职部门",
drzw: "担任职务",
bz1: "备注",
}
export default rza

View File

@ -16,7 +16,7 @@
<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 :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -24,7 +24,7 @@
<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 :label="item.name" :value="item.name" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
@ -32,7 +32,7 @@
<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 :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -40,7 +40,7 @@
<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 :label="item.name" :value="item.name" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
@ -62,7 +62,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="转原因" prop="bz1">
<el-form-item label="转原因" prop="bz1">
<el-input v-model="formData.bz1" clearable placeholder="请输入离职原因" type="textarea" />
</el-form-item>
</el-col>
@ -86,7 +86,9 @@ 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({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
@ -138,8 +140,8 @@ const userclick = async (val) => {
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
props.formData[value] = e.name
props.formData[value + "_id"] = e.id
showPerDialog.value = false
}

View File

@ -0,0 +1,13 @@
const zga = {
jyr: "员工姓名",
lwrq: "入职时间",
rzbm: "当前所在部门",
drzw: "担任职务",
rzbm1: "转岗后所在部门",
drzw1: "转刚后职务",
lwrq1: "申请转岗日期",
lwrq2: "预计转刚日期",
bz1: "转岗原因",
}
export default zga

View File

@ -4,7 +4,7 @@
<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 :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -19,7 +19,7 @@
<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 :label="item.name" :value="item.name" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
@ -42,20 +42,13 @@
<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>
@ -66,7 +59,9 @@ 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({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
@ -107,22 +102,6 @@ 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
}
const check = async () => {
await formRef.value?.validate();
}

View File

@ -0,0 +1,10 @@
const zpxqa = {
rzbm: "招聘部门",
lwrq1: "期望到岗日期",
drzw: "招聘岗位",
bz1: "招聘人数",
gwzz: "岗位职责",
rzyq: "任职要求",
}
export default zpxqa

View File

@ -16,7 +16,7 @@
<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 :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -24,7 +24,7 @@
<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 :label="item.name" :value="item.name" v-for="item in zwlist">
</el-option>
</el-select>
</el-form-item>
@ -54,7 +54,9 @@ import { jobsLists } from '@/api/org/post'
let list = ['jyr', 'lwrq', 'wjmc', 'sex', 'rzbm', "drzw"]
const qjlxList = reactive(['差旅费', '办公费', '招待费', '交通费', '通讯费', '采购付款', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
@ -106,8 +108,8 @@ const userclick = async (val) => {
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
props.formData[value] = e.name
props.formData[value + "_id"] = e.id
showPerDialog.value = false
}

View File

@ -0,0 +1,8 @@
const zza = {
jyr: "员工姓名",
lwrq: "转正日期",
rzbm: "所在部门",
drzw: "担任职务",
bz1: "试用期评价",
}
export default zza

View File

@ -9,7 +9,7 @@
<el-col :span="8">
<el-form-item label="紧急程度" prop="jjcd">
<el-select v-model="formData.jjcd" placeholder="请选择紧急程度" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -43,7 +43,9 @@
<script setup>
const qjlxList = reactive(['普通', '紧急', '特急'])
const formData = ref({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
//

View File

@ -0,0 +1,9 @@
const gwlza = {
wjmc: "文件名称",
jjcd: "紧急程度",
lwdw: "来文单位",
lwrq: "来文日期",
wjzy: "文件摘要",
bz: "备注",
}
export default gwlza

View File

@ -4,7 +4,7 @@
<el-col :span="8">
<el-form-item label="会议室选择" prop="hysxz">
<el-select v-model="formData.hysxz" placeholder="请选择会议室选择" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -41,12 +41,14 @@
<script setup lang="ts">
const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()

View File

@ -0,0 +1,7 @@
const hysyda = {
item: "会议室选择",
kssj: "开始时间",
jssj: "结束时间",
bz: "备注",
}
export default hysyda

View File

@ -9,7 +9,7 @@
<el-col :span="8">
<el-form-item label="紧急程度" prop="jjcd">
<el-select v-model="formData.jjcd" placeholder="请选择紧急程度" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -44,7 +44,9 @@
<script setup>
const qjlxList = reactive(['普通', '紧急', '特急'])
const formData = ref({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
//

View File

@ -0,0 +1,8 @@
const wpwxa = {
gzsbmc: "故障设备名称",
jjcd: "紧急程度",
yjwxfy: "预计维修费用",
bxrq: "报修日期",
gzms: "故障描述",
}
export default wpwxa

View File

@ -21,11 +21,6 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用车目的地">
<el-input v-model="formData.mdd" clearable placeholder="请输入用车目的地" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用车目的地">
<el-input v-model="formData.mdd" clearable placeholder="请输入用车目的地" />
@ -35,7 +30,7 @@
<el-col :span="8">
<el-form-item label="车辆选择" prop="clxz">
<el-select v-model="formData.clxz" placeholder="请选择车辆选择" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="(item, index) in carLists" :key="index">
<el-option :label="item.name" :value="item.name" v-for="(item, index) in carLists" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -54,7 +49,9 @@
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
import { apiOaCarCateLists } from '@/api/oa_car_cate'
let carLists = ref([])
@ -64,7 +61,7 @@ apiOaCarCateLists().then(res => {
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()

View File

@ -0,0 +1,9 @@
const yca = {
kssj: "开始时间",
jssj: "结束时间",
qjts: "用车天数",
mdd: "用车目的地",
clxz: "车辆选择",
ccsy: "用车事由",
}
export default yca

View File

@ -4,7 +4,7 @@
<el-col :span="8">
<el-form-item label="车辆选择" prop="clxz">
<el-select v-model="formData.clxz" placeholder="请选择车辆选择" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="(item, index) in carLists" :key="index">
<el-option :label="item.name" :value="item.name" v-for="(item, index) in carLists" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -39,7 +39,9 @@
<script setup>
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
import { apiOaCarCateLists } from '@/api/oa_car_cate'
let carLists = ref([])

View File

@ -0,0 +1,8 @@
const ycgha = {
clxz: "车辆选择",
kssj: "归还时间",
qjts: "用车公里数",
qjts1: "用车后公里数",
bz: "备注",
}
export default ycgha

View File

@ -11,7 +11,7 @@
<el-col :span="8">
<el-form-item label="印章类型" prop="jssj">
<el-select v-model="formData.jjcd" placeholder="请选择印章类型" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -24,7 +24,7 @@
<el-col :span="8">
<el-form-item label="文件类型" prop="wjlx">
<el-select v-model="formData.wjlx" placeholder="请选择印章类型" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList1" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList1" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -53,7 +53,9 @@
const qjlxList = reactive(['公章', '合同章', '法人章', '其他'])
const qjlxList1 = reactive(['公告类', '规则制度类', '合同类', '资质更新类', '员工证明', '其他'])
const formData = ref({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
//

View File

@ -0,0 +1,8 @@
const yza = {
kssj: "用印日期",
jjcd: "印章类型",
ycmdd: "文件名称",
wjlx: "文件类型",
jbsy: "用印事由",
}
export default yza

View File

@ -14,7 +14,7 @@
<el-col :span="8">
<el-form-item label="借用部门">
<el-select v-model="formData.jybm" placeholder="请选择" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
<el-option :label="item.name" :value="item.name" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
@ -22,7 +22,7 @@
<el-col :span="8">
<el-form-item label="借用类型" prop="jjcd">
<el-select v-model="formData.jylx" placeholder="请选择借用类型" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -30,7 +30,7 @@
<el-col :span="8">
<el-form-item label="档案类型" prop="dalx">
<el-select v-model="formData.dalx" placeholder="请选择档案类型" class="flex-1">
<el-option :label="item" :value="index" v-for="(item, index) in qjlxList1" :key="index">
<el-option :label="item" :value="item" v-for="(item, index) in qjlxList1" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -85,14 +85,16 @@ getDeptList()
const qjlxList = reactive(['原件', '扫描件', '复印件'])
const qjlxList1 = reactive(['公司资质', '人员资质', '离职/清退人员资质', '注册人员执业印章', '劳动合同', '社保缴费记录', '收入证明', '其他'])
const formData = reactive({})
let props = defineProps({
formData: Object,
})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
if (new Date(props.formData.jssj) < new Date(props.formData.kssj)) {
callback(new Error('拟归还日期不能早于借用日期'))
} else {
callback()
@ -180,8 +182,8 @@ const userclick = async (val) => {
personnel.value.open()
}
const submituser = (e) => {
formData[value] = e.name
formData[value + "_id"] = e.id
props.formData[value] = e.name
props.formData[value + "_id"] = e.id
showPerDialog.value = false
}

View File

@ -0,0 +1,12 @@
const zzjya = {
jyr: "借用人",
jyrsj: "借用人手机",
jybm: "借用部门",
jylx: "借用类型",
sjdayt: "所借档案用途",
kssj: "借用日期",
jssj: "拟归还日期",
jydamx: "借用档案明细",
bz: "备注",
}
export default zzjya

View File

@ -8,7 +8,7 @@
{{ item.name }}
<div class="tit-content">
<div v-for="(e, i) in item.children" :key="i" class="tit-li" @click="handleEdit(e.id, e.title)">{{
e.title }}
e.title }}
</div>
</div>
</div>
@ -43,7 +43,7 @@
<el-table-column label="审批状态" prop="check_status_text" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button link @click="handDetail(row.id)">
<el-button link @click="handDetail(row)">
详情
</el-button>
</template>
@ -55,13 +55,18 @@
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" @success="getLists" :type="type" @close="showEdit = false" />
<detailPopup v-if="showDetail" ref="detailRef" @reEdit="reEdit" @success="showDetail = false, getLists()"
@close="showDetail = false, getLists()" />
<div v-if="showDetail">
<detailPopup ref="detailRef" @reEdit="reEdit" @success="showDetail = false, getLists()"
@close="showDetail = false, getLists()" :typeName="typeName" />
</div>
</div>
</template>
<script lang="ts" setup >
<script lang="ts" setup>
import { ref, shallowRef, nextTick, reactive } from 'vue'
import { usePaging } from '@/hooks/usePaging';
import { apiOaFlowTypeLists, apiOaoaApproveLists, apiOaoaApproveDetail } from "@/api/oa_Initiate"
@ -70,6 +75,17 @@ import detailPopup from './detail.vue'
import { apiOaFlowTypeDetail } from '@/api/oa_flow_type'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
const showEdit = ref(false)
@ -78,6 +94,7 @@ const detailRef = ref(null)
//
const showDetail = ref(false)
const type = ref(1)
const typeName = ref('')
//
const queryParams = reactive({
@ -85,7 +102,6 @@ const queryParams = reactive({
})
//
const handleEdit = async (id: any, cate = '', extend = '') => {
type.value = cate
@ -99,8 +115,9 @@ const handleEdit = async (id: any, cate = '', extend = '') => {
}
}
const handDetail = async (id: any, data = {}) => {
let res = await apiOaoaApproveDetail({ id })
const handDetail = async (row: any, data = {}) => {
typeName.value = row.type_name
let res = await apiOaoaApproveDetail({ id: row.id })
showDetail.value = true
await nextTick()
detailRef.value?.open()