From ab8a6b1911453eb12140973ad3a311ea824f61a5 Mon Sep 17 00:00:00 2001
From: zmj <1493694146@qq.com>
Date: Wed, 29 May 2024 14:42:32 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E5=A4=9A=E4=B8=AA?=
 =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8F=8A=E7=BB=84=E4=BB=B6=EF=BC=8C=E5=8C=85?=
 =?UTF-8?q?=E6=8B=AC=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B=E6=98=BE=E7=A4=BA?=
 =?UTF-8?q?=E6=96=B9=E5=BC=8F=E3=80=81=E4=BA=BA=E5=91=98=E9=80=89=E6=8B=A9?=
 =?UTF-8?q?=E5=99=A8=E7=AD=89=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/components/generateForm/index.vue       |   4 +-
 src/components/personnelselector/index.vue  |   6 +-
 src/components/personnelselector/index1.vue | 366 --------------------
 src/views/oa_Initiate/edit.vue              |   7 +-
 src/views/oa_Initiate/form/jq/cc.vue        |  70 ++++
 src/views/oa_Initiate/form/jq/jb.vue        |  70 ++++
 src/views/oa_Initiate/form/jq/qj.vue        |  78 +++++
 src/views/oa_Initiate/form/jq/wc.vue        |  75 ++++
 src/views/oa_Initiate/form/xz/gwlz.vue      |  92 +++++
 src/views/oa_Initiate/form/xz/hysyd.vue     |  72 ++++
 src/views/oa_Initiate/form/xz/wpwx.vue      | 115 ++++++
 src/views/oa_Initiate/form/xz/yc.vue        |  85 +++++
 src/views/oa_Initiate/form/xz/ycgh.vue      |  70 ++++
 src/views/oa_Initiate/form/xz/yz.vue        |  92 +++++
 src/views/oa_Initiate/form/xz/zzjy.vue      | 162 +++++++++
 src/views/oa_flow_type/edit.vue             |  12 +
 src/views/organization/department/edit.vue  |   3 +-
 17 files changed, 1008 insertions(+), 371 deletions(-)
 delete mode 100644 src/components/personnelselector/index1.vue
 create mode 100644 src/views/oa_Initiate/form/jq/cc.vue
 create mode 100644 src/views/oa_Initiate/form/jq/jb.vue
 create mode 100644 src/views/oa_Initiate/form/jq/qj.vue
 create mode 100644 src/views/oa_Initiate/form/jq/wc.vue
 create mode 100644 src/views/oa_Initiate/form/xz/gwlz.vue
 create mode 100644 src/views/oa_Initiate/form/xz/hysyd.vue
 create mode 100644 src/views/oa_Initiate/form/xz/wpwx.vue
 create mode 100644 src/views/oa_Initiate/form/xz/yc.vue
 create mode 100644 src/views/oa_Initiate/form/xz/ycgh.vue
 create mode 100644 src/views/oa_Initiate/form/xz/yz.vue
 create mode 100644 src/views/oa_Initiate/form/xz/zzjy.vue

diff --git a/src/components/generateForm/index.vue b/src/components/generateForm/index.vue
index c4fc059..95449d5 100644
--- a/src/components/generateForm/index.vue
+++ b/src/components/generateForm/index.vue
@@ -57,10 +57,12 @@ const props = defineProps({
         required: true
     },
     type: {
-        type: Number,
+        type: Number || Object,
+        default: null
     },
     extend: {
         type: Object,
+        default: {}
     }
 })
 
diff --git a/src/components/personnelselector/index.vue b/src/components/personnelselector/index.vue
index 171aadc..42bcfc4 100644
--- a/src/components/personnelselector/index.vue
+++ b/src/components/personnelselector/index.vue
@@ -205,6 +205,10 @@ const props = defineProps({
     type: {
         type: String || Number,//1:单选 2.多选
         default: () => ({})
+    },
+    query: {
+        type: Object,
+        default: {}
     }
 })
 const emits = defineEmits(['confirm'])
@@ -223,7 +227,7 @@ const radionum = ref([])
 
 // 获取全部人员
 const getlist = () => {
-    getAdminsByAll().then((res) => {
+    getAdminsByAll({ ...props.query }).then((res) => {
         Object.assign(uesrlist, res)
     })
 }
diff --git a/src/components/personnelselector/index1.vue b/src/components/personnelselector/index1.vue
deleted file mode 100644
index db9acf0..0000000
--- a/src/components/personnelselector/index1.vue
+++ /dev/null
@@ -1,366 +0,0 @@
-<template>
-    <div class="edit-popup">
-        <el-dialog v-model="dialogVisible" title="人员选择器" width="600px" :before-close="handleClose">
-            <div>
-                <el-radio-group v-model="isCollapse" style="margin-bottom: 20px">
-                    <el-radio-button :label="1">全部人员</el-radio-button>
-                    <el-radio-button :label="2">按部门筛选</el-radio-button>
-                    <el-radio-button :label="3">按岗位筛选</el-radio-button>
-                    <el-button class="ml-[200px]" v-show="isCollapse != 1 && (!isshow || !isshow1)"
-                        @click="(isshow = true), (isshow1 = true)">返回</el-button>
-                </el-radio-group>
-                <div v-if="type == 1">
-                    <div v-if="isCollapse == 1" style="margin-bottom: 20px">
-                        <div style="margin-top: 20px">
-                            <el-radio-group v-model="radionum">
-                                <el-radio :label="item" v-for="(item, i) in uesrlist" :key="i" style="margin-bottom: 40px;">
-                                    <div class="radio-con">
-                                        <div class="radioa">
-                                            <img :src="item.avatar" alt="" />
-                                        </div>
-                                        <div class="radiob">
-                                            <div class="radiob_a">{{ item.name }}</div>
-                                            <div class="radiob_b">
-                                                <text v-if="item.org_name.length > 0">{{ item.org_name }}</text>
-                                                <text v-if="item.dept_name.length > 0">/{{ item.dept_name }}</text>
-                                                <text v-if="item.job_name.length > 0">/{{ item.job_name }}</text>
-
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-radio><br />
-                            </el-radio-group>
-                        </div>
-                    </div>
-                    <div v-if="isCollapse == 2">
-                        <!-- 返回上一级别 -->
-                        <div v-if="isshow">
-                            <div class="lad" v-for="(item, i) in deparmetlist" :key="i">
-                                <div class="lad">{{ i }}</div>
-                                <div class="flex " v-for="(items, k) in item" style="justify-content: space-between;"
-                                    @click="deparmetclck(items)">
-                                    <div>{{ items.name }}</div>
-                                    <div class="Collapsebj">{{ items.admin_num }}</div>
-                                </div>
-                            </div>
-                        </div>
-                        <div v-else>
-                            <el-radio-group v-model="radionum">
-                                <el-radio :label="item" v-for="(item, i) in deparmetlist1" :key="i"
-                                    style="margin-bottom: 20px;">
-                                    <div class="radio-con">
-                                        <div class="radioa">
-                                            <img :src="item.avatar" alt="" />
-                                        </div>
-                                        <div class="radiob">
-                                            <div class="radiob_a">{{ item.name }}</div>
-                                            <div class="radiob_b">
-                                                <text v-if="item.org_name.length > 0">{{ item.org_name }}</text>
-                                                <text v-if="item.dept_name.length > 0">/{{ item.dept_name }}</text>
-                                                <text v-if="item.job_name.length > 0">/{{ item.job_name }}</text>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-radio><br />
-                            </el-radio-group>
-                        </div>
-                    </div>
-                    <div v-if="isCollapse == 3">
-                        <div class="lad " v-if="isshow1">
-                            <div class="flex " v-for="(item, j) in jobslist" :key="j"
-                                style="justify-content: space-between;" @click="gwclck(item)">
-                                <div>{{ item.name }}</div>
-                                <div class="Collapsebj">{{ item.admin_num }}</div>
-                            </div>
-                        </div>
-                        <div v-else>
-                            <el-radio-group v-model="radionum">
-                                <el-radio :label="item" v-for="(item, i) in jobslist1" :key="i"
-                                    style="margin-bottom: 20px;">
-                                    <div class="radio-con">
-                                        <div class="radioa">
-                                            <img :src="item.avatar" alt="" />
-                                        </div>
-                                        <div class="radiob">
-                                            <div class="radiob_a">{{ item.name }}</div>
-                                            <div class="radiob_b">
-                                                <text v-if="item.org_name.length > 0">{{ item.org_name }}</text>
-                                                <text v-if="item.dept_name.length > 0">/{{ item.dept_name }}</text>
-                                                <text v-if="item.job_name.length > 0">/{{ item.job_name }}</text>
-
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-radio><br />
-                            </el-radio-group>
-                        </div>
-                    </div>
-
-                </div>
-                <div v-else>
-                    <div v-if="isCollapse == 1" style="margin-bottom: 20px">
-                        <div style="margin-top: 20px">
-                            <el-checkbox-group v-model="radiolist">
-                                <el-checkbox :label="item" v-for="(item, i) in uesrlist" :key="i"
-                                    style="margin-bottom: 20px;">
-                                    <div class="radio-con">
-                                        <div class="radioa">
-                                            <img :src="item.avatar" alt="" />
-                                        </div>
-                                        <div class="radiob">
-                                            <div class="radiob_a">{{ item.name }}</div>
-                                            <div class="radiob_b">
-                                                <text v-if="item.org_name.length > 0">{{ item.org_name }}</text>
-                                                <text v-if="item.dept_name.length > 0">/{{ item.dept_name }}</text>
-                                                <text v-if="item.job_name.length > 0">/{{ item.job_name }}</text>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-checkbox><br />
-                            </el-checkbox-group>
-                        </div>
-                    </div>
-                    <div v-if="isCollapse == 2">
-                        <div v-if="isshow">
-                            <div class="lad" v-for="(item, i) in deparmetlist" :key="i">
-                                <div class="lad">{{ i }}</div>
-                                <div class="flex " v-for="(items, k) in item" style="justify-content: space-between;"
-                                    @click="deparmetclck(items)">
-                                    <div>{{ items.name }}</div>
-                                    <div class="Collapsebj">{{ items.admin_num }}</div>
-                                </div>
-                            </div>
-                        </div>
-                        <div v-else>
-                            <el-checkbox-group v-model="radiolist">
-                                <el-checkbox :label="item" v-for="(item, i) in deparmetlist1" :key="i"
-                                    style="margin-bottom: 20px;">
-                                    <div class="radio-con">
-                                        <div class="radioa">
-                                            <img :src="item.avatar" alt="" />
-                                        </div>
-                                        <div class="radiob">
-                                            <div class="radiob_a">{{ item.name }}</div>
-                                            <div class="radiob_b">
-                                                <text v-if="item.org_name.length > 0">{{ item.org_name }}</text>
-                                                <text v-if="item.dept_name.length > 0">/{{ item.dept_name }}</text>
-                                                <text v-if="item.job_name.length > 0">/{{ item.job_name }}</text>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-checkbox><br />
-                            </el-checkbox-group>
-                        </div>
-                    </div>
-                    <div v-if="isCollapse == 3">
-                        <div class="lad " v-if="isshow1">
-                            <div class="flex " v-for="(item, j) in jobslist" :key="j"
-                                style="justify-content: space-between;" @click="gwclck(item)">
-                                <div>{{ item.name }}</div>
-                                <div class="Collapsebj">{{ item.admin_num }}</div>
-                            </div>
-                        </div>
-                        <div v-else>
-                            <el-checkbox-group v-model="radiolist">
-                                <el-checkbox :label="item" v-for="(item, i) in jobslist1" :key="i"
-                                    style="margin-bottom: 20px;">
-                                    <div class="radio-con">
-                                        <div class="radioa">
-                                            <img :src="item.avatar" alt="" />
-                                        </div>
-                                        <div class="radiob">
-                                            <div class="radiob_a">{{ item.name }}</div>
-                                            <div class="radiob_b">
-                                                <text v-if="item.org_name.length > 0">{{ item.org_name }}</text>
-                                                <text v-if="item.dept_name.length > 0">/{{ item.dept_name }}</text>
-                                                <text v-if="item.job_name.length > 0">/{{ item.job_name }}</text>
-
-                                            </div>
-                                        </div>
-                                    </div>
-                                </el-checkbox><br />
-                            </el-checkbox-group>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <template #footer>
-                <span class="dialog-footer">
-                    <el-button @click="dialogVisible = false">取消</el-button>
-                    <el-button type="primary" @click="userclick" v-if="type == 1">确认</el-button>
-                    <el-button type="primary" @click="userclick" v-else> {{ radiolist.length > 0 ? '已选' : '未选' }}
-                        <text v-if="radiolist.length > 0">{{ radiolist.length }}</text></el-button>
-                </span>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-
-<script lang="ts" setup name="projectPreSalesMembersEdit">
-import { reactive } from 'vue'
-import { getAdminsByAll, getAllDept, getAllJobs, getAdminsByDept, getAdminsByJob } from '@/api/common'
-import { defineEmits } from "vue"
-const leixin = ref('0')
-const props = defineProps({
-    type: {
-        type: String || Number,//1:单选 2.多选
-        default: 1
-    }
-})
-const emits = defineEmits(['confirm'])
-
-const dialogVisible = ref(false)
-const isCollapse = ref(1);
-const uesrlist = reactive([])
-const deparmetlist = reactive({})
-const deparmetlist1 = reactive([])
-const jobslist = reactive({})
-const jobslist1 = reactive([])
-const isshow = ref(true);
-const isshow1 = ref(true);
-const radiolist = ref([])
-const radionum = ref([])
-
-// 获取全部人员
-const getlist = () => {
-    getAdminsByAll().then((res) => {
-        Object.assign(uesrlist, res)
-    })
-}
-
-//获取所有部门
-const deparmet = () => {
-    getAllDept().then((res) => {
-        Object.assign(deparmetlist, res)
-    })
-}
-//获取部门下的人员
-const deparmetclck = (item: { id: any }) => {
-    getAdminsByDept({ 'dept_id': item.id }).then((res) => {
-        if (res.length > 0) {
-            Object.assign(deparmetlist1, res)
-            isshow.value = false
-        }
-
-    })
-}
-
-//获取岗位
-
-const Jobs = () => {
-    getAllJobs().then((res) => {
-        Object.assign(jobslist, res)
-    })
-}
-
-//获取岗位下的人员
-const gwclck = (item: { id: any }) => {
-
-    getAdminsByJob({ 'job_id': item.id }).then((res) => {
-        if (res.length > 0) {
-            Object.assign(jobslist1, res)
-            isshow1.value = false
-        }
-
-    })
-}
-
-
-//打开弹窗
-const open = (e: any) => {
-    getlist()
-    deparmet()
-    Jobs()
-    leixin.value = e
-    dialogVisible.value = true
-
-}
-//获取选择的数据
-const userclick = () => {
-    dialogVisible.value = false
-    if (props.type == 1) {
-        emits("confirm", radionum.value);
-    } else {
-        emits("confirm", radiolist.value);
-    }
-
-}
-
-defineExpose({
-    open,
-    userclick
-})
-
-</script>
-
-<style lang="scss">
-.userlist {
-    display: flex;
-
-    img {
-        width: 40px;
-        height: 40px;
-        border-radius: 50%;
-    }
-
-    text-align: center;
-
-    .userlist-con {
-        margin-right: 10px;
-    }
-}
-
-.user {
-    img {
-        width: 40px;
-        height: 40px;
-        border-radius: 50%;
-    }
-}
-
-.radio-con {
-    display: flex;
-    width: 500px;
-    align-items: center;
-
-    .radioa {
-        img {
-            margin-right: 20px;
-            width: 40px;
-            height: 40px;
-            border-radius: 50%;
-        }
-    }
-
-    .radiob {
-        .radiob_a {
-            margin-bottom: 10px;
-            margin-top: 3px;
-
-        }
-
-        .radiob_b {}
-
-    }
-}
-
-.lad {
-    padding: 10px 0;
-    border-bottom: 1px solid #f7f7f7;
-
-    div {
-        margin: 10px 0;
-    }
-
-    .Collapsebj {
-        background-color: #3e8ef7;
-        height: 20px;
-        width: 20px;
-        line-height: 20px;
-        text-align: center;
-        border-radius: 6px;
-        color: #f7f7f7;
-
-    }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/edit.vue b/src/views/oa_Initiate/edit.vue
index c1917ab..58ce003 100644
--- a/src/views/oa_Initiate/edit.vue
+++ b/src/views/oa_Initiate/edit.vue
@@ -5,8 +5,9 @@
                 <template #header>
                     审批内容
                 </template>
-                <generateForm :config="formData.data" :extend="extend" :form-data="formData.extends" :type="type">
-                </generateForm>
+                <!-- <generateForm :config="formData.data" :extend="extend" :form-data="formData.extends" :type="type"> -->
+                <zzjy></zzjy>
+                <!-- </generateForm> -->
             </el-card>
             <oaFlow :form-data="formData" :flow_cate="formData.id"></oaFlow>
         </popup>
@@ -18,6 +19,8 @@ import generateForm from './../../components/generateForm/index.vue'
 import Popup from "@/components/popup/index.vue";
 import { apiOaoaApproveAdd } from "@/api/oa_Initiate"
 
+import zzjy from './form/xz/zzjy.vue'
+
 
 
 defineProps({
diff --git a/src/views/oa_Initiate/form/jq/cc.vue b/src/views/oa_Initiate/form/jq/cc.vue
new file mode 100644
index 0000000..bf40a86
--- /dev/null
+++ b/src/views/oa_Initiate/form/jq/cc.vue
@@ -0,0 +1,70 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <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="请选择开始时间">
+                    </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="请选择结束时间">
+                    </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-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="出差事由" prop="ccsy">
+                    <el-input v-model="formData.ccsy" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+import uploadAnnex from './../../../components/uploadAnnex/index.vue'
+const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    ccsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/jq/jb.vue b/src/views/oa_Initiate/form/jq/jb.vue
new file mode 100644
index 0000000..e703185
--- /dev/null
+++ b/src/views/oa_Initiate/form/jq/jb.vue
@@ -0,0 +1,70 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <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="请选择开始时间">
+                    </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="请选择结束时间">
+                    </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-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="加班事由" prop="jbsy">
+                    <el-input v-model="formData.jbsy" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+import uploadAnnex from './../../../components/uploadAnnex/index.vue'
+const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jbsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/jq/qj.vue b/src/views/oa_Initiate/form/jq/qj.vue
new file mode 100644
index 0000000..cd42153
--- /dev/null
+++ b/src/views/oa_Initiate/form/jq/qj.vue
@@ -0,0 +1,78 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <el-col :span="8">
+                <el-form-item label="请假类型" prop="qjlx">
+                    <el-select v-model="formData.qjlx" 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="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="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>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="请假天数">
+                    <el-input v-model="formData.qjts" clearable placeholder="请输入请假天数" />
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="请假事由" prop="qjsy">
+                    <el-input v-model="formData.qjsy" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+import uploadAnnex from './../../../components/uploadAnnex/index.vue'
+const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    qjsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/jq/wc.vue b/src/views/oa_Initiate/form/jq/wc.vue
new file mode 100644
index 0000000..86d254e
--- /dev/null
+++ b/src/views/oa_Initiate/form/jq/wc.vue
@@ -0,0 +1,75 @@
+<template>
+    <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>
+            </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="请选择开始时间">
+                    </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="请选择结束时间">
+                    </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-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="外出事由" prop="wcsy">
+                    <el-input v-model="formData.wcsy" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+import uploadAnnex from './../../../components/uploadAnnex/index.vue'
+const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    wcsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/gwlz.vue b/src/views/oa_Initiate/form/xz/gwlz.vue
new file mode 100644
index 0000000..5455ef6
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/gwlz.vue
@@ -0,0 +1,92 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <el-col :span="8">
+                <el-form-item label="文件名称">
+                    <el-input v-model="formData.wjmc" clearable placeholder="请输入文件名称" />
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="来文单位">
+                    <el-input v-model="formData.lwdw" clearable placeholder="请输入来文单位" />
+                </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="wjzy">
+                    <el-input v-model="formData.wjzy" clearable placeholder="请输入文件摘要" type="textarea" />
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="备注">
+                    <el-input v-model="formData.bz" clearable placeholder="请输入备注" type="textarea" />
+                </el-form-item>
+            </el-col>
+        </el-row>
+
+    </el-form>
+</template>
+
+<script setup>
+import uploadAnnex from './../../../components/uploadAnnex/index.vue'
+const qjlxList = reactive(['普通', '紧急', '特急'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    wjmc: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    lwdw: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    lwrq: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    wjzy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jbsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/hysyd.vue b/src/views/oa_Initiate/form/xz/hysyd.vue
new file mode 100644
index 0000000..017269d
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/hysyd.vue
@@ -0,0 +1,72 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <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>
+                    </el-select>
+                </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="请选择开始时间">
+                    </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="请选择结束时间">
+                    </el-date-picker>
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="备注">
+                    <el-input v-model="formData.bz" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+const qjlxList = reactive(['会议室一', '会议室二', '会议室三'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    hysxz: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jbsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/wpwx.vue b/src/views/oa_Initiate/form/xz/wpwx.vue
new file mode 100644
index 0000000..a29b74e
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/wpwx.vue
@@ -0,0 +1,115 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <el-col :span="8">
+                <el-form-item label="故障设备名称" prop="gzsbmc">
+                    <el-input v-model="formData.gzsbmc" clearable placeholder="请输入故障设备名称" />
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="预计维修费用" prop="yjwxfy">
+                    <el-input v-model="formData.yjwxfy" clearable placeholder="请输入预计维修费用" />
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="报修日期" prop="bxrq">
+                    <el-date-picker class="flex-1 !flex" v-model="formData.bxrq" 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="gzms">
+                    <el-input v-model="formData.gzms" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+import uploadAnnex from './../../../components/uploadAnnex/index.vue'
+const qjlxList = reactive(['普通', '紧急', '特急'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    gzsbmc: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    yjwxfy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    bxrq: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    gzms: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+
+
+
+
+
+
+    lwdw: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    lwrq: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    wjzy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jbsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/yc.vue b/src/views/oa_Initiate/form/xz/yc.vue
new file mode 100644
index 0000000..8507e24
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/yc.vue
@@ -0,0 +1,85 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <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="请选择开始时间">
+                    </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="请选择结束时间">
+                    </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-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="请输入用车目的地" />
+                </el-form-item>
+            </el-col>
+
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+
+            <el-col :span="8">
+                <el-form-item label="用车事由" prop="ccsy">
+                    <el-input v-model="formData.ccsy" clearable placeholder="请输入请假事由" type="textarea" />
+                </el-form-item>
+            </el-col>
+
+        </el-row>
+
+    </el-form>
+</template>
+
+<script setup>
+const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    ccsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/ycgh.vue b/src/views/oa_Initiate/form/xz/ycgh.vue
new file mode 100644
index 0000000..6a2aca4
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/ycgh.vue
@@ -0,0 +1,70 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <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>
+                    </el-select>
+                </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="请选择开始时间">
+                    </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-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="用车后公里数">
+                    <el-input v-model="formData.qjts1" clearable placeholder="请输入用车后公里数" />
+                </el-form-item>
+            </el-col>
+
+            <el-col :span="8">
+                <el-form-item label="备注">
+                    <el-input v-model="formData.bz" clearable placeholder="请输入备注" type="textarea" />
+                </el-form-item>
+            </el-col>
+        </el-row>
+
+    </el-form>
+</template>
+
+<script setup>
+const qjlxList = reactive(['事假', '年假', '调休假', '病假', '婚假', '产假', '陪产假', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    ccsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/yz.vue b/src/views/oa_Initiate/form/xz/yz.vue
new file mode 100644
index 0000000..b9de7b0
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/yz.vue
@@ -0,0 +1,92 @@
+<template>
+    <el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
+        <el-row>
+            <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="请选择用印日期">
+                    </el-date-picker>
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="文件名称" prop="ycmdd">
+                    <el-input v-model="formData.ycmdd" clearable placeholder="请输入文件名称" />
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="文件份数" prop="wjfs">
+                    <el-input v-model="formData.wjfs" clearable placeholder="请输入文件份数" />
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="用印事由" prop="jbsy">
+                    <el-input v-model="formData.jbsy" 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>
+
+    </el-form>
+</template>
+
+<script setup>
+const qjlxList = reactive(['公章', '合同章', '法人章', '其他'])
+const qjlxList1 = reactive(['公告类', '规则制度类', '合同类', '资质更新类', '员工证明', '其他'])
+const formData = ref({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    qjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    kssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jssj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jbsy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+    wjlx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+
+
+})
+
+
+</script>
\ No newline at end of file
diff --git a/src/views/oa_Initiate/form/xz/zzjy.vue b/src/views/oa_Initiate/form/xz/zzjy.vue
new file mode 100644
index 0000000..195dcfe
--- /dev/null
+++ b/src/views/oa_Initiate/form/xz/zzjy.vue
@@ -0,0 +1,162 @@
+<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="jyrsj">
+                    <el-input v-model="formData.jyrsj" clearable placeholder="请输入借用人手机" />
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <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>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="所借档案用途" prop="sjdayt">
+                    <el-input v-model="formData.sjdayt" clearable placeholder="请输所借档案用途" type="textarea" />
+                </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"
+                        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"
+                        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="jydamx">
+                    <el-input v-model="formData.jydamx" clearable placeholder="请输入借用档案明细" type="textarea" />
+                </el-form-item>
+            </el-col>
+            <el-col :span="8">
+                <el-form-item label="备注">
+                    <el-input v-model="formData.bz" 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";
+
+const deptList = ref([])
+const getDeptList = async () => {
+    const res = await deptLists()
+    deptList.value = res.lists
+}
+getDeptList()
+
+const qjlxList = reactive(['原件', '扫描件', '复印件'])
+const qjlxList1 = reactive(['公司资质', '人员资质', '离职/清退人员资质', '注册人员执业印章', '劳动合同', '社保缴费记录', '收入证明', '其他'])
+const formData = reactive({})
+const formRef = ref(null)
+
+// 表单验证
+const formRules = reactive({
+    jyr: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jyrsj: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    sjdayt: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jyrq: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+    nghrq: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    jydamx: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+
+
+    yjwxfy: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    bxrq: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+    gzms: [{
+        required: true,
+        message: '不可为空',
+        trigger: ['blur']
+    }],
+
+
+})
+
+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>
\ No newline at end of file
diff --git a/src/views/oa_flow_type/edit.vue b/src/views/oa_flow_type/edit.vue
index 6de0f6d..30cf3a3 100644
--- a/src/views/oa_flow_type/edit.vue
+++ b/src/views/oa_flow_type/edit.vue
@@ -62,6 +62,7 @@
                                     <el-option label="人员选择器" value="3" />
                                     <el-option label="文本域" value="4" />
                                     <el-option label="文件上传" value="5" />
+                                    <el-option label="下拉框" value="6" />
                                 </el-select>
                             </el-form-item>
                         </el-col>
@@ -75,6 +76,13 @@
                                 删除
                             </el-button>
                         </el-col>
+                        <el-row v-if="item.type == 6">
+                            <el-col :span="6">
+                                <el-form-item label="下拉框值" v-for="(el, index) in item.select">
+                                    <el-input placeholder="下拉框值" v-model="el.name" class="w-[280px]" />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
                     </el-row>
                 </el-card>
             </el-form>
@@ -106,6 +114,7 @@ defineProps({
 
 });
 
+const a = ref('')
 // console.log(Pinyin.getCamelChars("你干嘛"))
 const emit = defineEmits(["success", "close"]);
 const formRef = shallowRef<FormInstance>();
@@ -214,6 +223,9 @@ const handAdd = () => {
 
 // 提交按钮
 const handleSubmit = async () => {
+
+    console.log(formData.data)
+    return
     await formRef.value?.validate();
     const data = { ...formData };
     data.department_ids = data.department_ids.join(",");
diff --git a/src/views/organization/department/edit.vue b/src/views/organization/department/edit.vue
index 4aa6781..00624db 100644
--- a/src/views/organization/department/edit.vue
+++ b/src/views/organization/department/edit.vue
@@ -27,7 +27,8 @@
                 </el-form-item>
             </el-form>
         </popup>
-        <personnelSelector v-if="showDiolg" ref="personnel" type="1" @confirm="submituser" />
+        <personnelSelector v-if="showDiolg" ref="personnel" type="1" @confirm="submituser"
+            :query="{ org_id: formData.org_id }" />
 
     </div>
 </template>