更新多个页面及组件,包括审批流程显示方式、人员选择器等。

This commit is contained in:
zmj 2024-05-29 18:46:16 +08:00
parent 0c3ed3cf3a
commit ebb2746b7a
18 changed files with 315 additions and 82 deletions

View File

@ -33,9 +33,9 @@ const getNums = async () => {
}
setInterval(() => {
getNums()
}, 5000);
// setInterval(() => {
// getNums()
// }, 5000);
getNums()
</script>

View File

@ -5,9 +5,37 @@
<template #header>
审批内容
</template>
<generateForm :config="formData.data" :extend="extend" :form-data="formData.extends" :type="type" />
<!-- <tysp></tysp> -->
<!-- </generateForm> -->
<qj v-if="type == '请假'"></qj>
<cc v-if="type == '出差'"></cc>
<wc v-if="type == '外出'"></wc>
<jb v-if="type == '加班'"></jb>
<hysyd v-if="type == '会议室预定'"></hysyd>
<gwlz v-if="type == '公文流转'"></gwlz>
<wpwx v-if="type == '物品维修'"></wpwx>
<zzjy v-if="type == '资质借用'"></zzjy>
<yz v-if="type == '用章'"></yz>
<yc v-if="type == '用车'"></yc>
<ycgh v-if="type == '用车归还'"></ycgh>
<jk v-if="type == '借款'"></jk>
<fk v-if="type == '付款'"></fk>
<jl v-if="type == '奖励'"></jl>
<cg v-if="type == '采购'"></cg>
<hdjf v-if="type == '活动经费'"></hdjf>
<rz v-if="type == '入职'"></rz>
<zz v-if="type == '转正'"></zz>
<lz v-if="type == '离职'"></lz>
<zg v-if="type == '转岗'"></zg>
<zpxq v-if="type == '招聘需求'"></zpxq>
<tysp v-if="type == '通用审批'"></tysp>
</el-card>
<oaFlow :form-data="formData" :flow_cate="formData.id"></oaFlow>
</popup>
@ -18,19 +46,42 @@
import generateForm from './../../components/generateForm/index.vue'
import Popup from "@/components/popup/index.vue";
import { apiOaoaApproveAdd } from "@/api/oa_Initiate"
import qj from './form/jq/qj.vue'
import cc from './form/jq/cc.vue'
import wc from './form/jq/wc.vue'
import jb from './form/jq/jb.vue'
import hysyd from './form/xz/hysyd.vue'
import gwlz from './form/xz/gwlz.vue'
import wpwx from './form/xz/wpwx.vue'
import zzjy from './form/xz/zzjy.vue'
import yz from './form/xz/yz.vue'
import yc from './form/xz/yc.vue'
import ycgh from './form/xz/ycgh.vue'
import jk from './form/cw/jk.vue'
import fk from './form/cw/fk.vue'
import jl from './form/cw/jl.vue'
import cg from './form/cw/cg.vue'
import hdjf from './form/cw/hdjf.vue'
import rz from './form/rs/rz.vue'
import zz from './form/rs/zz.vue'
import lz from './form/rs/lz.vue'
import zg from './form/rs/zg.vue'
import zpxq from './form/rs/zpxq.vue'
import tysp from './form/qt/tysp.vue'
defineProps({
let props = defineProps({
type: {
type: Number,
type: String,
}
})
const emit = defineEmits(["success", "close"]);
const formRef = shallowRef<FormInstance>();
const popupRef = shallowRef<InstanceType<typeof Popup>>();

View File

@ -50,11 +50,18 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
jlje: [{
@ -74,11 +81,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
jbsy: [{
required: true,
message: '不可为空',

View File

@ -4,14 +4,14 @@
<el-col :span="8">
<el-form-item label="开始时间" prop="kssj">
<el-date-picker class="flex-1 !flex" v-model="formData.kssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="jssj">
<el-date-picker class="flex-1 !flex" v-model="formData.jssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
@ -36,11 +36,20 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
qjlx: [{
@ -53,11 +62,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
ccsy: [{
required: true,
message: '不可为空',
@ -65,5 +80,14 @@ const formRules = reactive({
}],
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = 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
}
}
</script>

View File

@ -4,14 +4,14 @@
<el-col :span="8">
<el-form-item label="开始时间" prop="kssj">
<el-date-picker class="flex-1 !flex" v-model="formData.kssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="jssj">
<el-date-picker class="flex-1 !flex" v-model="formData.jssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
@ -36,11 +36,20 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
qjlx: [{
@ -53,11 +62,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
jbsy: [{
required: true,
message: '不可为空',
@ -66,4 +81,14 @@ const formRules = reactive({
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = 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
}
}
</script>

View File

@ -12,20 +12,20 @@
<el-col :span="8">
<el-form-item label="开始时间" prop="kssj">
<el-date-picker class="flex-1 !flex" v-model="formData.kssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="jssj">
<el-date-picker class="flex-1 !flex" v-model="formData.jssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="请假天数">
<el-input v-model="formData.qjts" clearable placeholder="请输入请假天数" />
<el-input v-model="formData.qjts" clearable placeholder="系统自动计算" readonly />
</el-form-item>
</el-col>
<el-col :span="8">
@ -44,11 +44,19 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
qjlx: [{
@ -61,11 +69,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
qjsy: [{
required: true,
message: '不可为空',
@ -73,5 +87,18 @@ const formRules = reactive({
}],
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = 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
}
}
</script>

View File

@ -2,21 +2,21 @@
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="wcdd">
<el-input v-model="formData.qjts" clearable placeholder="请输入请假天数" />
<el-form-item label="外出地点">
<el-input v-model="formData.wcdd" clearable placeholder="请输入外出地点" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开始时间" prop="kssj">
<el-date-picker class="flex-1 !flex" v-model="formData.kssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="jssj">
<el-date-picker class="flex-1 !flex" v-model="formData.jssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间">
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" @change="calcDay">
</el-date-picker>
</el-form-item>
</el-col>
@ -41,11 +41,19 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
qjlx: [{
@ -58,11 +66,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
wcsy: [{
required: true,
message: '不可为空',
@ -70,5 +84,14 @@ const formRules = reactive({
}],
})
const calcDay = () => {
const date1 = formData.kssj;
const date2 = 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
}
}
</script>

View File

@ -39,11 +39,21 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
hysxz: [{
@ -56,11 +66,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
jbsy: [{
required: true,
message: '不可为空',
@ -69,4 +85,6 @@ const formRules = reactive({
})
</script>

View File

@ -35,7 +35,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" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item.name" :value="item.id" v-for="(item, index) in carLists" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -52,11 +52,24 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
const formData = reactive({})
const formRef = ref(null)
import { apiOaCarCateLists } from '@/api/oa_car_cate'
let carLists = ref([])
apiOaCarCateLists().then(res => {
carLists.value = res.lists
})
const checkDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.jssj) < new Date(formData.kssj)) {
callback(new Error('结束时间不能早于开始时间'))
} else {
callback()
}
}
//
const formRules = reactive({
qjlx: [{
@ -69,11 +82,17 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
jssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
ccsy: [{
required: true,
message: '不可为空',
@ -82,4 +101,5 @@ const formRules = reactive({
})
</script>

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" :value="index" v-for="(item, index) in qjlxList" :key="index">
<el-option :label="item.name" :value="item.id" v-for="(item, index) in carLists" :key="index">
</el-option>
</el-select>
</el-form-item>
@ -41,7 +41,11 @@
const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
const formData = ref({})
const formRef = ref(null)
import { apiOaCarCateLists } from '@/api/oa_car_cate'
let carLists = ref([])
apiOaCarCateLists().then(res => {
carLists.value = res.lists
})
//
const formRules = reactive({
qjlx: [{

View File

@ -49,7 +49,8 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
const qjlxList = reactive(['公章', '合同章', '法人章', '其他'])
const qjlxList1 = reactive(['公告类', '规则制度类', '合同类', '资质更新类', '员工证明', '其他'])
const formData = ref({})
@ -89,4 +90,5 @@ const formRules = reactive({
})
</script>

View File

@ -41,15 +41,15 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="借用日期" prop="jyrq">
<el-date-picker class="flex-1 !flex" v-model="formData.jyrq" clearable type="datetime"
<el-form-item label="借用日期" prop="kssj">
<el-date-picker class="flex-1 !flex" v-model="formData.kssj" 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="nghrq">
<el-date-picker class="flex-1 !flex" v-model="formData.nghrq" clearable type="datetime"
<el-form-item label="拟归还日期" prop="jssj">
<el-date-picker class="flex-1 !flex" v-model="formData.jssj" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择拟归还日期">
</el-date-picker>
</el-form-item>
@ -73,7 +73,7 @@
</el-form>
</template>
<script setup>
<script setup lang="ts">
import { deptLists } from "@/api/org/department";
const deptList = ref([])
@ -88,6 +88,16 @@ const qjlxList1 = 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)) {
callback(new Error('拟归还日期不能早于借用日期'))
} else {
callback()
}
}
//
const formRules = reactive({
jyr: [{
@ -121,9 +131,6 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
yjwxfy: [{
required: true,
message: '不可为空',
@ -139,6 +146,25 @@ const formRules = reactive({
message: '不可为空',
trigger: ['blur']
}],
kssj: [{
required: true,
message: '不可为空',
trigger: ['blur']
}],
jssj: [
{
required: true,
message: '不可为空',
trigger: ['blur']
},
{
validator: checkDate,
trigger: ['blur']
}
],
})

View File

@ -7,7 +7,7 @@
<div v-for="(item, index) in lists.filter(e => e.children.length > 0)" :key="index" class="tit">
{{ item.name }}
<div class="tit-content">
<div v-for="(e, i) in item.children" :key="i" class="tit-li" @click="handleEdit(e.id, item.value)">{{
<div v-for="(e, i) in item.children" :key="i" class="tit-li" @click="handleEdit(e.id, e.title)">{{
e.title }}
</div>
</div>

View File

@ -53,7 +53,7 @@
</el-button>
<el-button type="primary" link @click="handPayment(row.id)"
v-if="row.check_status_text != '已打款'">
已打款
标记为已打款
</el-button>
</template>
</el-table-column>