Browse Source

Merge branch 'fix-请假leave' of psychological_camera/cpdm_pc into master

将leave 合并到 master
plg 3 months ago
parent
commit
87e6b7b69a

+ 30 - 0
src/api/login.ts

@@ -10,6 +10,11 @@ const userLoginUrl = '/system/login'
 const homeUrl = ''
 const updatePasUrl = '/system/updatePassword'
 const getPositionUrl = '/param/findAllByType'
+
+const subLeaveUrl = '/leave/saveRecord'
+//请假列表
+const leaveRecordUrl = '/leave/findAllByCurrentUser'
+const updateLeaveUrl = '/leave/updateRecord'
 //首页API
 export const homeApi = (val: any) => {
     return http<any>(
@@ -66,4 +71,29 @@ export const getPositionApi = () => {
             url: `${getPositionUrl}?type=1`,
 
         })
+}
+//提交请假表单
+export const subLeaveApi = (val: any) => {
+    return http<any>({
+        method: 'post',
+        url: subLeaveUrl,
+        data: { ...val }
+    })
+}
+
+//修改请假表单
+export const updateLeaveApi = (val: any) => {
+    return http<any>({
+        method: 'post',
+        url: updateLeaveUrl,
+        data: { ...val }
+    })
+}
+
+//提交请假列表
+export const leaveRecordApi = (val: any) => {
+    return http<any>({
+        method: 'get',
+        url: `${leaveRecordUrl}?pageNum=${val.pageNum}&pageSize=${val.pageSize}`,
+    })
 }

BIN
src/assets/footer/noPass.png


BIN
src/assets/footer/pass.png


BIN
src/assets/zs/top_leave.png


+ 611 - 0
src/components/CpdmLeave.vue

@@ -0,0 +1,611 @@
+<script lang="ts" setup>
+import { ref, reactive, defineExpose } from 'vue'
+import { ElMessage, formatter, type ComponentSize, type FormInstance, type FormRules } from 'element-plus'
+import { leaveRecordApi, subLeaveApi } from '@/api/login';
+//格式化时间格式
+import { format } from 'date-fns/format';
+import CpdmLeaveEdit from './CpdmLeaveEdit.vue';
+const editFlag = ref<any>()
+
+const leave_visible = ref<boolean>(false)
+
+
+
+const open = () => {
+    leave_visible.value = true;
+}
+
+const type = ref<string>('1')
+
+//************表单数据******************/
+//设置表单大小
+const formSize = ref<ComponentSize>('default')
+const ruleFormRef = ref<any>()
+
+interface RuleForm {
+    leaveType: string
+    userPhone: string
+    monitorName: string
+    dormitory: string
+    destination: string
+    reason: string
+    isKnow: string
+    companionsPhone: string
+    motherPhone: string
+    fatherPhone: string
+    travelMode: string
+
+    startTime: string
+    endTime: string
+}
+
+const ruleForm = reactive<RuleForm>({
+    //是否离郑
+    leaveType: '0',
+    //本人手机号
+    userPhone: '',
+    //班长姓名
+    monitorName: '',
+    //宿舍:
+    dormitory: '',
+    //出行方式
+    destination: '',
+    //请假原因
+    reason: '',
+    //父母是否知情
+    isKnow: '1',
+    //同行人电话
+    companionsPhone: '',
+    //家长电话
+    motherPhone: '',
+    //紧急联系人电话
+    fatherPhone: '',
+    //出行方式
+    travelMode: '',
+    //请假时间
+    startTime: '',
+    //返校时间
+    endTime: ''
+
+})
+const rules = reactive<FormRules<RuleForm>>({
+    leaveType: [
+        { required: true, message: '请填写是否离郑', trigger: 'blur' },
+    ],
+    userPhone: [
+        { required: true, message: '请填写手机号', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+
+    monitorName: [
+        { required: false, message: '请填写班长姓名', trigger: 'blur' },
+    ],
+    dormitory: [
+        { required: true, message: '请填写宿舍信息', trigger: 'blur' },
+        { min: 1, max: 200, message: '宿舍信息不能超过200字', trigger: 'blur' },
+    ],
+    destination: [
+        { required: true, message: '请填写出行目的', trigger: 'blur' },
+        { min: 1, max: 200, message: '出行目的不能超过200字', trigger: 'blur' },
+    ],
+    reason: [
+        { required: true, message: '请填写请假原因', trigger: 'blur' },
+        { min: 1, max: 20, message: '请假原因不能超过200字', trigger: 'blur' },
+    ],
+    isKnow: [
+        { required: true, message: '请填写父母是否知情', trigger: 'blur' },
+    ],
+
+    companionsPhone: [
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+
+    motherPhone: [
+        { required: true, message: '请填写家长电话', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+    fatherPhone: [
+        { required: true, message: '请填写紧急联系人电话', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+    travelMode: [
+        { required: true, message: '请填写出行方式', trigger: 'blur' },
+    ],
+    startTime: [
+        { required: true, message: '请填写请假时间', trigger: 'change' },
+        {
+            validator: function (rule, value, callback) {
+                if (value !== '' && ruleForm.endTime !== '') {
+                    let startTime = new Date(value).getTime();
+                    let endTime = new Date(ruleForm.endTime).getTime()
+                    //先判断都不为空
+
+
+                    if (startTime >= endTime) {
+                        callback(new Error('请假时间应小于返校时间'))
+                    } else {
+                        callback()
+                    }
+                } else {
+                    callback()
+                }
+
+
+
+            }, trigger: 'change'
+        },
+    ],
+    endTime: [
+        { required: true, message: '请填写返校时间', trigger: 'change' },
+        {
+            validator: function (rule, value, callback) {
+                if (value !== '' && ruleForm.startTime !== '') {
+                    let startTime = new Date(ruleForm.startTime).getTime();
+
+                    let endTime = new Date(value).getTime()
+                    if (endTime <= startTime) {
+                        callback(new Error('返校时间应大于请假时间'))
+                    } else {
+                        callback()
+                    }
+                } else {
+                    callback()
+                }
+                //
+
+
+            }, trigger: 'change'
+        },
+    ],
+})
+//提交表单
+//按钮状态改变
+const buttonStatus = ref<boolean>(false)
+const submitForm = async (formEl: FormInstance | undefined) => {
+    buttonStatus.value = true
+    //设置单独校验的字段
+    if (!formEl) {
+        buttonStatus.value = false
+        return
+    }
+    await formEl.validate(async (valid, fields) => {
+        if (valid) {
+            console.log('submit!')
+            //调用用户提交信息的代码
+            //判断返校时间是否大于请假时间
+            let leaveTime = new Date()
+
+
+            subLeaveInfo()
+        } else {
+            buttonStatus.value = false
+            console.log('error submit!', fields)
+        }
+    })
+}
+
+//时间格式化
+
+
+
+//提交表单信息
+const subLeaveInfo = async () => {
+    //提交表单信息
+    //组装该用户需要提交的信息
+    let params = {}
+    //判断当前的状态是否离郑
+    //1是不离郑
+    if (ruleForm.leaveType == '0') {
+        params = {
+            userPhone: ruleForm.userPhone, //本人手机号
+            destination: ruleForm.destination,//出行目的地
+            dormitory: ruleForm.dormitory,//宿舍
+            endTime: format(ruleForm.endTime, 'yyyy-MM-dd HH:mm:ss'),//返校时间
+            fatherPhone: ruleForm.fatherPhone,//父亲手机号
+            isKnow: ruleForm.isKnow,//父母是否知情
+            leaveType: ruleForm.leaveType,//请假类型--离郑不离郑
+            // monitorName: ruleForm.monitorName,//班长名字
+            motherPhone: ruleForm.motherPhone,//家长电话
+            reason: ruleForm.reason,//请假原因
+            startTime: format(ruleForm.startTime, 'yyyy-MM-dd HH:mm:ss'),//请假开始时间
+            travelMode: ruleForm.travelMode,//出行方式
+            // companionsPhone: ruleForm.companionsPhone, //同行人电话
+
+        }
+    } else {
+        params = {
+            userPhone: ruleForm.userPhone, //本人手机号
+            destination: ruleForm.destination,//出行目的地
+            dormitory: ruleForm.dormitory,//宿舍
+            endTime: format(ruleForm.endTime, 'yyyy-MM-dd HH:mm:ss'),//返校时间
+            fatherPhone: ruleForm.fatherPhone,//父亲手机号
+            isKnow: ruleForm.isKnow,//父母是否知情
+            leaveType: ruleForm.leaveType,//请假类型--离郑不离郑
+            monitorName: ruleForm.monitorName,//班长名字
+            motherPhone: ruleForm.motherPhone,//家长电话
+            reason: ruleForm.reason,//请假原因
+            startTime: format(ruleForm.startTime, 'yyyy-MM-dd HH:mm:ss'),//请假开始时间
+            travelMode: ruleForm.travelMode,//出行方式
+            companionsPhone: ruleForm.companionsPhone, //同行人电话
+
+        }
+
+    }
+
+    let res: any = await subLeaveApi(params)
+    console.log(res)
+    //跳转测试记录
+    if (res.code == 200) {
+        //结束了
+        buttonStatus.value = false
+
+        ElMessage({
+            type: 'success',
+            message: '提交成功'
+        })
+        //跳转到请假记录
+        type.value = '2'
+        leaveRecord()
+        //开始查询请假记录的字段
+        //
+
+    } else {
+        buttonStatus.value = false
+
+    }
+}
+
+//清除表单的校验
+const resetData = (formEl: FormInstance | undefined) => {
+    if (!formEl) return
+    formEl.resetFields()
+
+}
+//是否离郑状态改变 
+const leaveStatus = (val: string) => {
+    // resetData(ruleFormRef)
+    if (val == '1') {
+        rules.monitorName = [
+            { required: true, message: '请填写班长姓名', trigger: 'blur' },
+        ]
+        rules.companionsPhone = [
+            { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+        ]
+        //这样回触发校验
+        // rules!.monitorName[0].required = true;
+        // rules!.companionsPhone[0].required = true
+    }
+    ruleFormRef.value.clearValidate()
+}
+
+//类型方法
+const typeFun = (val: string) => {
+    type.value = val;
+    if (val == '1') {
+        //清空表单
+        ruleFormRef.value.clearValidate()
+        ruleFormRef.value.resetFields()
+    } else {
+        //查询记录列表
+        leaveRecord()
+    }
+}
+//请假记录列表
+let tableData = ref<any>([])
+//第几页
+const pageNum = ref<number>(1)
+//每页多少条
+const pageSize = ref<number>(10)
+
+//总条数
+const total = ref<number>(0)
+const leaveRecord = async () => {
+    //leaveRecordApi
+    let params = {
+        pageNum: pageNum.value,
+        pageSize: pageSize.value
+    }
+    let res: any = await leaveRecordApi(params)
+    tableData.value = res.data.content
+    total.value = res.data.totalElements
+}
+//格式化是否离郑
+
+const leaveTypeFormatter = (val: any) => {
+    if (val.leaveType == '0') {
+        return '不离郑'
+    } else {
+        return '离郑'
+    }
+}
+//格式化父母是否知情
+const isKnowFormatter = (val: any) => {
+    if (val.isKnow == '1') {
+        return '知情'
+    } else {
+        return '不知情'
+    }
+}
+
+//格式审核状态状态
+const auditStatusFormatter = (val: any) => {
+    if (val.auditStatus == '0') {
+        return '待审批'
+    } else {
+        return '已审批'
+    }
+}
+
+//审核结果
+const auditResultFormatter = (val: any) => {
+    if (val.auditResult == null) {
+        return ''
+    } else {
+        if (val.auditResult == '0') {
+            return '驳回'
+        } else {
+            return '通过'
+        }
+    }
+
+}
+
+//分页显示
+const handleCurrentChange = (val: number) => {
+    pageNum.value = val
+    leaveRecord()
+}
+
+//需要重新编辑操作
+const editFun = (val: any, flag: boolean) => {
+    editFlag.value.open(val, flag)
+}
+const listFun = () => {
+    //刷新列表
+    leaveRecord()
+}
+defineExpose({ open })
+
+
+</script>
+
+<template>
+    <div class="outt"> <el-dialog v-model="leave_visible" :show-close="true" width="80%" top="5vh"
+            style="border-radius: 40px;  ">
+            <template #header="{ close, titleId, titleClass }">
+                <!-- <img src="../assets/zs/top_leave.png" alt="" > -->
+                <div class="leave_title"></div>
+                <div
+                    style="display: inline-flex;background-color: #EDEDED ;padding: 4px;border-radius: 40px;margin-left: 20px;">
+
+                    <span :class="{ button_leave_active: type == '1', button_leave_default: type == '2' }"
+                        @click="typeFun('1')">我要请假</span>
+                    <span :class="{ button_leave_active: type == '2', button_leave_default: type == '1' }"
+                        @click="typeFun('2')">请假记录</span>
+                </div>
+                <!-- <el-radio-group v-model="type" size="large" @change="typeFun" style="margin-left:20px">
+                    <el-radio-button label="我要请假" value="1" />
+                    <el-radio-button label="请假记录" value="2" />
+                </el-radio-group> -->
+                <div v-show="type == '1'" class="leave">
+                    <el-form ref="ruleFormRef" style="display: flex;flex-wrap: wrap;" :model="ruleForm" :rules="rules"
+                        :validate-on-rule-change=false label-width="auto" class="demo-ruleForm" :size="formSize"
+                        status-icon>
+                        <el-form-item label="是否离郑" prop="leaveType">
+                            <el-radio-group v-model="ruleForm.leaveType" @change="leaveStatus">
+                                <el-radio value="0">不离郑</el-radio>
+                                <el-radio value="1">离郑</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+
+                        <el-form-item label="本人手机号码" prop="userPhone">
+                            <el-input v-model="ruleForm.userPhone" placeholder="请输入本人手机号码" />
+                        </el-form-item>
+
+                        <el-form-item label="班长姓名" prop="monitorName" v-if="ruleForm.leaveType == '1'">
+                            <el-input v-model="ruleForm.monitorName" placeholder="请输入班长姓名" />
+                        </el-form-item>
+
+                        <el-form-item label="宿舍" prop="dormitory">
+                            <el-input v-model="ruleForm.dormitory" placeholder="例如松15-XXX" />
+                        </el-form-item>
+                        <el-form-item label="请假原因" prop="reason">
+                            <el-input v-model="ruleForm.reason" :rows="2" type="textarea" placeholder="一定要写清楚,例如拔牙" />
+                        </el-form-item>
+                        <el-form-item label="出行目的地" prop="destination">
+                            <el-input v-model="ruleForm.destination" :rows="2" type="textarea"
+                                placeholder="一定要写清楚,例如郑州市中原区高新区郑州中心医院" />
+                        </el-form-item>
+
+                        <el-form-item label="父母是否知情" prop="isKnow">
+
+                            <el-radio-group v-model="ruleForm.isKnow">
+                                <el-radio value="1">知情</el-radio>
+                                <el-radio value="0">不知情</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="同行人电话" prop="companionsPhone" v-if="ruleForm.leaveType == '1'">
+                            <el-input v-model="ruleForm.companionsPhone" placeholder="请输入同行人电话" />
+                        </el-form-item>
+
+                        <el-form-item label="家长电话" prop="motherPhone">
+                            <el-input v-model="ruleForm.motherPhone" placeholder="请输入家长电话" />
+                        </el-form-item>
+                        <el-form-item label="紧急联系人电话" prop="fatherPhone">
+                            <el-input v-model="ruleForm.fatherPhone" placeholder="请输入紧急联系人电话" />
+                        </el-form-item>
+                        <el-form-item label="出行方式" prop="travelMode">
+                            <el-input v-model="ruleForm.travelMode" placeholder="请输入出行方式" />
+                        </el-form-item>
+                        <el-form-item label="请假时间" prop="startTime">
+                            <el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="请输入请假时间"
+                                style="width: 100%;" />
+                        </el-form-item>
+                        <el-form-item label="返校时间" prop="endTime">
+                            <el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="请输入返校时间"
+                                style="width: 100%;" />
+                        </el-form-item>
+
+                    </el-form>
+                    <div class="reset_sub">
+                        <el-button @click="resetData(ruleFormRef)"
+                            style="border-radius: 40px;padding:10px 40px">重置</el-button>
+                        <el-button type="success" @click="submitForm(ruleFormRef)" :disabled="buttonStatus"
+                            style="border-radius: 40px;padding:10px 40px">提交</el-button>
+                    </div>
+                    <div class="leave_tip"> 温馨提示:(天气寒冷,晚上行人少,为保证大家安全,返校时间尽量在21:00之前。如需纸质假条,请到辅导员办公室办理。)
+                    </div>
+                </div>
+                <div v-show="type == '2'" style="padding:10px 20px">
+                    <el-table :data="tableData" style="width: 100%;height: 60vh;"
+                        :header-cell-style="{ background: '#F8F8F8', color: '#606266', 'font-family': 'Microsoft YaHei' }">
+                        <el-table-column fixed prop="leaveType" label="是否离郑" width="" :formatter="leaveTypeFormatter"
+                            align="center" />
+                        <el-table-column prop="userPhone" label="本人手机号" width="" show-overflow-tooltip align="center" />
+                        <!-- <el-table-column prop="monitorName" label="班长姓名" width="" /> -->
+                        <!-- <el-table-column prop="dormitory" label="宿舍" width="" /> -->
+                        <el-table-column prop="reason" label="请假原因" width="" align="center" />
+                        <el-table-column prop="destination" label="出行目的地" width="" show-overflow-tooltip
+                            align="center" />
+                        <!-- <el-table-column prop="isKnow" label="父母是否知情" width="" :formatter="isKnowFormatter" /> -->
+                        <!-- <el-table-column prop="companionsPhone" label="同行人电话" width="" /> -->
+                        <!-- <el-table-column prop="motherPhone" label="家长电话" width="" />
+                        <el-table-column prop="fatherPhone" label="紧急联系人电话" width="" /> -->
+                        <el-table-column prop="travelMode" label="出行方式" width="" show-overflow-tooltip align="center" />
+                        <el-table-column prop="startTime" label="请假时间" width="" show-overflow-tooltip align="center" />
+                        <el-table-column prop="endTime" label="返校时间" width="" show-overflow-tooltip align="center" />
+                        <el-table-column fixed="right" prop="auditSuggest" label="审核建议" width="" align="center"
+                            show-overflow-tooltip />
+                        <el-table-column fixed="right" prop="auditStatus" label="审核状态" width="" align="center"
+                            :formatter="auditStatusFormatter" />
+                        <!-- :formatter="auditStatusFormatter" -->
+                        <el-table-column fixed="right" prop="auditResult" label="审核结果" width="" align="center">
+                            <template #default="scoped">
+                                <div style="display: flex;justify-content: center;align-items: center;"
+                                    v-show="scoped.row.auditResult == '1'">
+                                    <img style="width: 14px;" src="../assets/footer/pass.png" alt="">&nbsp;
+                                    <div>通过</div>
+
+                                </div>
+                                <div style="display: flex;justify-content: center;align-items: center;"
+                                    v-show="scoped.row.auditResult == '0'">
+                                    <img style="width: 14px;" src="../assets/footer/noPass.png" alt="">&nbsp;
+                                    <div>驳回</div>
+
+                                </div>
+                            </template>
+                        </el-table-column>
+                        <!-- <el-table-column fixed="right" prop="auditResult" label="审核结果" width="" align="center"
+                            :formatter="auditResultFormatter" /> -->
+                        <el-table-column fixed="right" label="操作" min-width="" align="center">
+                            <template #default="scoped">
+                                <el-button v-show="scoped.row.auditResult == null" link type="primary" size="small"
+                                    @click="editFun(scoped.row, false)">重新编辑</el-button>
+                                <el-button link type="primary" size="small" style="margin-left: 0px;"
+                                    @click="editFun(scoped.row, true)">查看</el-button>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <div style="display: flex;justify-content: center;margin-top:10px">
+                        <el-pagination background v-model:current-page="pageNum" :page-size="pageSize"
+                            layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" />
+
+                    </div>
+
+                </div>
+            </template>
+            <CpdmLeaveEdit ref="editFlag" @search='listFun' />
+        </el-dialog></div>
+
+
+</template>
+
+<style lang="scss" scoped>
+.button_leave_active {
+    background-color: #ffffff;
+    padding: 6px 12px;
+    border-radius: 40px;
+    font-size: 16px;
+    color: #222222;
+}
+
+.button_leave_default {
+    padding: 6px 12px;
+    border-radius: 40px;
+    font-size: 16px;
+    color: #999999;
+}
+
+.outt {
+    :deep(.el-dialog) {
+        padding: 0px !important;
+    }
+
+    :deep(.el-dialog__header.show-close) {
+        padding-right: 0px !important;
+    }
+
+    :deep(.el-dialog__headerbtn .el-dialog__close) {
+        color: #ffffff !important;
+    }
+}
+
+.leave {
+    padding: 10px 20px;
+
+    :deep(.el-form) {
+        justify-content: space-between;
+    }
+
+    :deep(.el-form-item) {
+        width: 48% !important;
+        margin-top: 10px;
+    }
+
+    :deep(.el-input__wrapper) {
+        align-items: center;
+        background-color: #F7F7F7 !important;
+        border-radius: 40px !important;
+
+        // border: none;
+        // outline: none !important;
+        box-shadow: none;
+    }
+
+    :deep(.el-form-item__content) {
+        align-items: flex-start !important;
+        // align-items: center !important;
+    }
+}
+
+
+
+.reset_sub {
+    display: flex;
+    justify-content: space-around;
+}
+
+.leave_tip {
+    margin-top: 20px;
+    color: #5c5c5c;
+    text-align: center;
+    font-size: 12px;
+}
+
+
+
+
+.leave_title {
+    background: url(../assets/zs/top_leave.png) no-repeat;
+    background-size: 100% 100%;
+    // border-radius: 40px;
+    border-top-left-radius: 40px;
+    border-top-right-radius: 40px;
+    height: 40px;
+    text-align: center;
+    color: #333333;
+    font-weight: 700;
+    font-size: 16px;
+    margin-bottom: 20px;
+}
+</style>

+ 463 - 0
src/components/CpdmLeaveEdit.vue

@@ -0,0 +1,463 @@
+<script lang="ts" setup>
+import { ref, reactive, defineExpose, defineEmits } from 'vue'
+import { ElMessage, formatter, type ComponentSize, type FormInstance, type FormRules } from 'element-plus'
+import { leaveRecordApi, subLeaveApi, updateLeaveApi } from '@/api/login';
+//格式化时间格式
+import { format } from 'date-fns/format';
+const leave_visible = ref<boolean>(false)
+
+const emit = defineEmits(['search'])
+const flagView = ref<boolean>(false)
+//返回的数据
+const detailData = ref<any>({})
+const open = (val: any, flag: boolean) => {
+    flagView.value = flag
+    detailData.value = val
+    leave_visible.value = true;
+    //回显数据
+    ruleForm.leaveType = val.leaveType
+    ruleForm.userPhone = val.userPhone
+    ruleForm.monitorName = val.monitorName
+    ruleForm.dormitory = val.dormitory
+    ruleForm.destination = val.destination
+    ruleForm.reason = val.reason
+    ruleForm.isKnow = val.isKnow
+    ruleForm.companionsPhone = val.companionsPhone
+    ruleForm.motherPhone = val.motherPhone
+    ruleForm.fatherPhone = val.fatherPhone
+    ruleForm.travelMode = val.travelMode
+    ruleForm.startTime = val.startTime
+    ruleForm.endTime = val.endTime
+    ruleFormRef.value.clearValidate()
+}
+
+const type = ref<string>('1')
+
+//************表单数据******************/
+//设置表单大小
+const formSize = ref<ComponentSize>('default')
+const ruleFormRef = ref<any>()
+
+const ruleForm = reactive<any>({
+    //是否离郑
+    leaveType: '0',
+    //本人手机号
+    userPhone: '',
+    //班长姓名
+    monitorName: '',
+    //宿舍:
+    dormitory: '',
+    //出行方式
+    destination: '',
+    //请假原因
+    reason: '',
+    //父母是否知情
+    isKnow: '1',
+    //同行人电话
+    companionsPhone: '',
+    //家长电话
+    montherPhone: '',
+    //紧急联系人电话
+    fatherPhone: '',
+    //出行方式
+    travelMode: '',
+    //请假时间
+    startTime: '',
+    //返校时间
+    endTime: ''
+
+})
+const rules = reactive<FormRules<any>>({
+    leaveType: [
+        { required: true, message: '请填写是否离郑', trigger: 'blur' },
+    ],
+    userPhone: [
+        { required: true, message: '请填写手机号', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+
+    monitorName: [
+        { required: false, message: '请填写班长姓名', trigger: 'blur' },
+    ],
+    dormitory: [
+        { required: true, message: '请填写宿舍信息', trigger: 'blur' },
+    ],
+    destination: [
+        { required: true, message: '请填写出行目的', trigger: 'blur' },
+    ],
+    reason: [
+        { required: true, message: '请填写请假原因', trigger: 'blur' },
+    ],
+    isKnow: [
+        { required: true, message: '请填写父母是否知情', trigger: 'blur' },
+    ],
+
+    companionsPhone: [
+        { required: false, message: '请填写同行人电话', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+
+    motherPhone: [
+        { required: true, message: '请填写家长电话', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+    fatherPhone: [
+        { required: true, message: '请填写紧急联系人电话', trigger: 'blur' },
+        { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+    ],
+    travelMode: [
+        { required: true, message: '请填写出行方式', trigger: 'blur' },
+    ],
+    startTime: [
+        { required: true, message: '请填写请假时间', trigger: 'change' },
+        {
+            validator: function (rule, value, callback) {
+                if (value !== '' && ruleForm.endTime !== '') {
+                    let startTime = new Date(value).getTime();
+                    let endTime = new Date(ruleForm.endTime).getTime()
+                    //先判断都不为空
+
+
+                    if (startTime >= endTime) {
+                        callback(new Error('请假时间应小于返校时间'))
+                    } else {
+                        callback()
+                    }
+                } else {
+                    callback()
+                }
+            }, trigger: 'change'
+        },
+
+    ],
+    endTime: [
+        { required: true, message: '请填写返校时间', trigger: 'change' },
+        {
+            validator: function (rule, value, callback) {
+                if (value !== '' && ruleForm.startTime !== '') {
+                    let startTime = new Date(ruleForm.startTime).getTime();
+
+                    let endTime = new Date(value).getTime()
+                    if (endTime <= startTime) {
+                        callback(new Error('返校时间应大于请假时间'))
+                    } else {
+                        callback()
+                    }
+                } else {
+                    callback()
+                }
+            }, trigger: 'change'
+        },
+    ],
+})
+//提交表单
+//按钮状态改变
+const buttonStatus = ref<boolean>(false)
+const submitForm = async (formEl: FormInstance | undefined) => {
+    buttonStatus.value = true
+    //设置单独校验的字段
+    if (!formEl) {
+        buttonStatus.value = false
+        return
+    }
+    await formEl.validate(async (valid, fields) => {
+        if (valid) {
+            console.log('submit!')
+            //调用用户提交信息的代码
+            subLeaveInfo()
+        } else {
+            buttonStatus.value = false
+            console.log('error submit!', fields)
+        }
+    })
+}
+
+//时间格式化
+
+
+
+//提交表单信息
+const subLeaveInfo = async () => {
+    //提交表单信息
+    //组装该用户需要提交的信息
+    let params = {}
+    let tmpData = detailData.value
+    //判断当前的状态是否离郑
+    //1是不离郑
+    if (ruleForm.leaveType == '0') {
+        tmpData.userPhone = ruleForm.userPhone;
+        tmpData.destination = ruleForm.destination;
+        tmpData.dormitory = ruleForm.dormitory;
+        tmpData.endTime = format(ruleForm.endTime, 'yyyy-MM-dd HH:mm:ss');
+        tmpData.fatherPhone = ruleForm.fatherPhone;
+        tmpData.isKnow = ruleForm.isKnow
+        tmpData.leaveType = ruleForm.leaveType
+        tmpData.motherPhone = ruleForm.motherPhone
+        tmpData.reason = ruleForm.reason
+        tmpData.startTime = format(ruleForm.startTime, 'yyyy-MM-dd HH:mm:ss')
+        tmpData.travelMode = ruleForm.travelMode
+        params = {
+            ...tmpData
+            // userPhone: ruleForm.userPhone, //本人手机号
+            // destination: ruleForm.destination,//出行目的地
+            // dormitory: ruleForm.dormitory,//宿舍
+            // endTime: format(ruleForm.endTime, 'yyyy-MM-dd HH:mm:ss'),//返校时间
+            // fatherPhone: ruleForm.fatherPhone,//父亲手机号
+            // isKnow: ruleForm.isKnow,//父母是否知情
+            // leaveType: ruleForm.leaveType,//请假类型--离郑不离郑
+            // // monitorName: ruleForm.monitorName,//班长名字
+            // motherPhone: ruleForm.motherPhone,//家长电话
+            // reason: ruleForm.reason,//请假原因
+            // startTime: format(ruleForm.startTime, 'yyyy-MM-dd HH:mm:ss'),//请假开始时间
+            // travelMode: ruleForm.travelMode,//出行方式
+            // companionsPhone: ruleForm.companionsPhone, //同行人电话
+
+        }
+    } else {
+        tmpData.userPhone = ruleForm.userPhone;
+        tmpData.destination = ruleForm.destination;
+        tmpData.dormitory = ruleForm.dormitory;
+        tmpData.endTime = format(ruleForm.endTime, 'yyyy-MM-dd HH:mm:ss');
+        tmpData.fatherPhone = ruleForm.fatherPhone;
+        tmpData.isKnow = ruleForm.isKnow
+        tmpData.leaveType = ruleForm.leaveType
+        tmpData.monitorName = ruleForm.monitorName
+        tmpData.motherPhone = ruleForm.motherPhone
+        tmpData.companionsPhone = ruleForm.companionsPhone
+        tmpData.reason = ruleForm.reason
+        tmpData.startTime = format(ruleForm.startTime, 'yyyy-MM-dd HH:mm:ss')
+        tmpData.travelMode = ruleForm.travelMode
+        params = {
+            ...tmpData
+            // userPhone: ruleForm.userPhone, //本人手机号
+            // destination: ruleForm.destination,//出行目的地
+            // dormitory: ruleForm.dormitory,//宿舍
+            // endTime: format(ruleForm.endTime, 'yyyy-MM-dd HH:mm:ss'),//返校时间
+            // fatherPhone: ruleForm.fatherPhone,//父亲手机号
+            // isKnow: ruleForm.isKnow,//父母是否知情
+            // leaveType: ruleForm.leaveType,//请假类型--离郑不离郑
+            // monitorName: ruleForm.monitorName,//班长名字
+            // motherPhone: ruleForm.motherPhone,//家长电话
+            // reason: ruleForm.reason,//请假原因
+            // startTime: format(ruleForm.startTime, 'yyyy-MM-dd HH:mm:ss'),//请假开始时间
+            // travelMode: ruleForm.travelMode,//出行方式
+            // companionsPhone: ruleForm.companionsPhone, //同行人电话
+
+        }
+
+    }
+
+    let res: any = await updateLeaveApi(params)
+    console.log(res)
+    //跳转测试记录
+    if (res.code == 200) {
+        //结束了
+        buttonStatus.value = false
+
+        ElMessage({
+            type: 'success',
+            message: '修改成功'
+        })
+        //跳转到请假记录
+        //要关闭自己
+        leave_visible.value = false
+        emit('search')
+        //开始查询请假记录的字段
+        //
+
+    } else {
+        buttonStatus.value = false
+
+    }
+}
+
+//清除表单的校验
+const resetData = (formEl: any) => {
+    // if (!formEl) return
+    ruleForm.leaveType = ''
+    ruleForm.userPhone = ''
+    ruleForm.monitorName = ''
+    ruleForm.dormitory = ''
+    ruleForm.destination = ''
+    ruleForm.reason = ''
+    ruleForm.isKnow = ''
+    ruleForm.companionsPhone = ''
+    ruleForm.motherPhone = ''
+    ruleForm.fatherPhone = ''
+    ruleForm.travelMode = ''
+    ruleForm.startTime = ''
+    ruleForm.endTime = ''
+    formEl.clearValidate()
+
+}
+//是否离郑状态改变 
+const leaveStatus = (val: string) => {
+    // resetData(ruleFormRef)
+
+
+    if (val == '1') {
+        rules.monitorName = [
+            { required: true, message: '请填写班长姓名', trigger: 'blur' },
+        ]
+        rules.companionsPhone = [
+            { required: false, message: '请填写同行人电话', trigger: 'blur' },
+            { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
+        ]
+        //这样回触发校验
+        // rules!.monitorName[0].required = true;
+        // rules!.companionsPhone[0].required = true
+    }
+    ruleFormRef.value.clearValidate()
+}
+
+
+
+
+
+
+defineExpose({ open })
+
+
+</script>
+
+<template>
+
+    <el-dialog v-model="leave_visible" :show-close="true" width="80%" height="1000px" top="5vh"
+        style="border-radius: 40px;  ">
+        <template #header="{ close, titleId, titleClass }">
+            <div class="leave_title"></div>
+            <div v-show="type == '1'" class="leave">
+                <el-form ref="ruleFormRef" style="display: flex;flex-wrap: wrap;" :model="ruleForm" :rules="rules"
+                    :validate-on-rule-change=false label-width="auto" class="demo-ruleForm" :size="formSize"
+                    status-icon>
+                    <el-form-item label="是否离郑" prop="leaveType">
+                        <el-radio-group v-model="ruleForm.leaveType" @change="leaveStatus" :disabled="flagView">
+                            <el-radio value="0">不离郑</el-radio>
+                            <el-radio value="1">离郑</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+
+                    <el-form-item label="本人手机号码" prop="userPhone">
+                        <el-input v-model="ruleForm.userPhone" placeholder="请输入本人手机号码" :disabled="flagView" />
+                    </el-form-item>
+
+                    <el-form-item label="班长姓名" prop="monitorName" v-if="ruleForm.leaveType == '1'">
+                        <el-input v-model="ruleForm.monitorName" placeholder="请输入班长姓名" :disabled="flagView" />
+                    </el-form-item>
+
+                    <el-form-item label="宿舍" prop="dormitory">
+                        <el-input v-model="ruleForm.dormitory" placeholder="例如松15-XXX" :disabled="flagView" />
+                    </el-form-item>
+                    <el-form-item label="请假原因" prop="reason">
+                        <el-input v-model="ruleForm.reason" type="textarea" placeholder="一定要写清楚,例如拔牙"
+                            :disabled="flagView" />
+                    </el-form-item>
+                    <el-form-item label="出行目的地" prop="destination">
+                        <el-input v-model="ruleForm.destination" type="textarea" :disabled="flagView"
+                            placeholder="一定要写清楚,例如郑州市中原区高新区郑州中心医院" />
+                    </el-form-item>
+
+                    <el-form-item label="父母是否知情" prop="isKnow">
+
+                        <el-radio-group v-model="ruleForm.isKnow" :disabled="flagView">
+                            <el-radio value="1">知情</el-radio>
+                            <el-radio value="0">不知情</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                    <el-form-item label="同行人电话" prop="companionsPhone" v-if="ruleForm.leaveType == '1'">
+                        <el-input v-model="ruleForm.companionsPhone" placeholder="请输入同行人电话" :disabled="flagView" />
+                    </el-form-item>
+
+                    <el-form-item label="家长电话" prop="motherPhone">
+                        <el-input v-model="ruleForm.motherPhone" placeholder="请输入家长电话" :disabled="flagView" />
+                    </el-form-item>
+                    <el-form-item label="紧急联系人电话" prop="fatherPhone">
+                        <el-input v-model="ruleForm.fatherPhone" placeholder="请输入紧急联系人电话" :disabled="flagView" />
+                    </el-form-item>
+                    <el-form-item label="出行方式" prop="travelMode">
+                        <el-input v-model="ruleForm.travelMode" placeholder="请输入出行方式" :disabled="flagView" />
+                    </el-form-item>
+                    <el-form-item label="请假时间" prop="startTime">
+                        <el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="请输入请假时间"
+                            style="width: 100%;" :disabled="flagView" />
+                    </el-form-item>
+                    <el-form-item label="返校时间" prop="endTime">
+                        <el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="请输入返校时间"
+                            style="width: 100%;" :disabled="flagView" />
+                    </el-form-item>
+
+                </el-form>
+                <div class="reset_sub" v-show="!flagView">
+                    <el-button @click="resetData(ruleFormRef)"
+                        style="border-radius: 40px;padding:10px 40px">重置</el-button>
+                    <el-button type="success" @click="submitForm(ruleFormRef)" :disabled="buttonStatus"
+                        style="border-radius: 40px;padding:10px 40px">提交</el-button>
+                </div>
+                <div class="leave_tip"> 温馨提示:(天气寒冷,晚上行人少,为保证大家安全,返校时间尽量在21:00之前。如需纸质假条,请到辅导员办公室办理。)
+                </div>
+            </div>
+        </template>
+    </el-dialog>
+
+</template>
+
+<style lang="scss" scoped>
+.leave {
+    padding: 10px 20px;
+
+    :deep(.el-form-item) {
+        width: 48% !important;
+        margin-top: 10px;
+    }
+
+    :deep(.el-form) {
+        justify-content: space-between;
+    }
+
+    :deep(.el-input__wrapper) {
+        align-items: center;
+        background-color: #F7F7F7 !important;
+        border-radius: 40px !important;
+
+        // border: none;
+        // outline: none !important;
+        box-shadow: none;
+    }
+
+    :deep(.el-form-item__content) {
+        align-items: flex-start !important;
+    }
+}
+
+
+
+.reset_sub {
+    display: flex;
+    justify-content: space-around;
+}
+
+.leave_tip {
+    margin-top: 20px;
+    color: #5c5c5c;
+    text-align: center;
+    font-size: 12px;
+}
+
+
+
+
+.leave_title {
+    background: url(../assets/zs/top_leave.png) no-repeat;
+    background-size: 100% 100%;
+    // border-radius: 40px;
+    border-top-left-radius: 40px;
+    border-top-right-radius: 40px;
+    height: 40px;
+    text-align: center;
+    color: #333333;
+    font-weight: 700;
+    font-size: 16px;
+    margin-bottom: 20px;
+
+}
+</style>

+ 14 - 2
src/components/CpmdHeader.vue

@@ -4,6 +4,9 @@ import { useRouter } from 'vue-router'
 const router = useRouter()
 
 import { menuStatusStore, userInfoStore } from '@/stores';
+
+import CpdmLeave from '../components/CpdmLeave.vue'
+const leave = ref()
 // import url from '../assets/home/trademark.png';
 //选中的索引
 const userInfo = userInfoStore()
@@ -76,9 +79,14 @@ const formatterName = (val: string) => {
         return val
     }
 }
+//打开弹出框--显示弹出框
+const leaveFun = () => {
+    leave.value.open()
+}
 </script>
 
 <template>
+
     <!-- :style="{ backgroundColor: activeIndex == '1' ? '#ffffff' : '' }" -->
     <div class="header_qp" :style="{ backgroundColor: activeIndex == '1' ? '#ffffff' : '' }">
         <div class="header_p">
@@ -122,6 +130,9 @@ const formatterName = (val: string) => {
                         <div class="update_pass" @click="updatePassFun">
                             修改密码
                         </div>
+                        <div class="exit_login" @click="leaveFun">
+                            我的请假
+                        </div>
                         <div class="exit_login" @click="exitFun">
                             退出登录
                         </div>
@@ -154,7 +165,7 @@ const formatterName = (val: string) => {
             </el-dialog>
         </div>
     </div>
-
+    <CpdmLeave ref="leave" />
 </template>
 <style scoped>
 :deep(.dig_kg> .el-dialog__header) {
@@ -315,7 +326,8 @@ const formatterName = (val: string) => {
                 width: 80%;
                 position: absolute;
                 background-color: #ffffff;
-                bottom: -105px;
+                // bottom: -105px;
+                bottom: -145px;
                 margin-left: calc(10% - 20px);
                 z-index: 200;
                 color: #000000;

+ 10 - 1
src/components/CpmdQuestionnaire.vue

@@ -52,7 +52,16 @@ const questionList = ref<any>()
 const queryQuestion = async (planId: string) => {
     //
     questionList.value = [];
-    let list: any = await queryQuestionApi('0')
+    console.log(userInfo.userInfo.roleType)
+    let paramsNum = ''
+    if (userInfo.userInfo.roleType == '2') {
+        paramsNum = '1'
+    }
+    if (userInfo.userInfo.roleType == '1') {
+        paramsNum = '0'
+    }
+    //查询当前用户登录类型
+    let list: any = await queryQuestionApi(paramsNum)
     for (let i = 0; i < list.data.length; i++) {
         let obj = {
             quesId: list.data[i].id,

+ 1 - 0
src/router/index.ts

@@ -122,6 +122,7 @@ const routes = [
 ]
 const router = createRouter({
   history: createWebHistory(import.meta.env.BASE_URL),
+  // history: createWebHistory('/pc/'),
   routes
 })
 //页面滚动到最顶部

+ 3 - 1
src/utils/http.ts

@@ -28,7 +28,9 @@ const menuStatus = menuStatusStore()
 // const base_url = 'http://129.211.221.44:8089'
 
 //锦泓服务器
-const base_url = 'http://146.56.226.174:8089'
+// const base_url = 'http://146.56.226.174:8089'
+//新服务器
+const base_url = 'http://123.57.18.29:8089'
 
 
 //设置axios 默认访问路径

+ 72 - 17
src/views/Register.vue

@@ -13,7 +13,8 @@ import { useRoute, useRouter } from 'vue-router'
 
 // 加一个锁表示不能重复点击
 const isLock = ref<boolean>(false)
-
+//账号角色
+const roleType = ref<string>('1')
 //定义账号
 const account = ref<string>('')
 //定义密码
@@ -81,14 +82,19 @@ const registerFun = async () => {
         isLock.value = false
         return
     }
-    if (position.value == '') {
-        ElMessage({
-            message: '请选择职务',
-            type: 'warning'
-        })
-        isLock.value = false
-        return
+
+    if (roleType.value == '1') {
+        if (position.value == '') {
+            ElMessage({
+                message: '请选择职务',
+                type: 'warning'
+            })
+            isLock.value = false
+            return
+        }
     }
+
+
     if (account.value == '') {
         ElMessage({
             message: '请填写账号',
@@ -171,8 +177,8 @@ const registerFun = async () => {
         userName: name.value,
         gender: sex.value,
         password: md5(password.value),
-        position: parseInt(position.value),
-        roleType: '1'
+        position: roleType.value == '2' ? -1 : parseInt(position.value),
+        roleType: roleType.value
     }
     //如果都通过开始调用方法注册的方法
     const res: any = await userRegisterApi(params)
@@ -215,7 +221,13 @@ const userGroupFun = async () => {
     //增加字段的方法
     //先判断返回的是否有数据
     if (res.data.length > 0) {
-        let resAdd = addPro(res.data)
+        //判断当前是  教师还是学生
+        console.log('组织架构信息')
+        console.log(res.data)
+
+        let list = roleTypeFilter(res.data)
+
+        let resAdd = addPro(list)
         ppData.value = JSON.parse(JSON.stringify(resAdd))
         let forRes = arrToTree(resAdd)
         let resultRes = deleteChildren(forRes)
@@ -229,6 +241,25 @@ const userGroupFun = async () => {
     //得到值后开始组装数据
 
 }
+
+//过滤数据进行测试
+const roleTypeFilter = (val: any) => {
+    let data = JSON.parse(JSON.stringify(val))
+    let list = []
+    if (roleType.value == '1') {
+        list = data.filter((item: any) => {
+            return item.orgNo.length != 12 || (item.orgNo.length == 12 && item.extend != '-1')
+        })
+    } else
+        if (roleType.value == '2') {
+            list = data.filter((item: any) => {
+                return (item.orgNo.length != 12) || item.orgNo.length == 12 && item.extend == '-1'
+            })
+        }
+
+    return list
+}
+
 //给数据增加两个字段的方法
 const addPro = (val: any) => {
     let data = JSON.parse(JSON.stringify(val))
@@ -273,7 +304,14 @@ const deleteChildren = (arr: any) => {
 onUnmounted(() => {
 
 })
-
+const roleTypeChange = (val: string) => {
+    //切换角色时
+    //当角色是2时要筛选角色是教师的组织架构
+    //当角色是1时要筛选角色是学生的组织架构
+    //清空选项
+    group.value = ''
+    userGroupFun()
+}
 
 
 
@@ -293,6 +331,20 @@ onUnmounted(() => {
         <div class="kply">
             <div class="kply_inner">
                 <div style="padding: 10px 100px;">
+                    <div style="margin-top:20px;display: flex;">
+
+
+                        <div style="flex: 1;">
+                            <div class="user_account" style="width: 100%;">用户类型:</div>
+                            <div class="input_cus" style="width: 100%;"> <el-radio-group size="large"
+                                    @change="roleTypeChange" v-model="roleType">
+                                    <el-radio value="2" size="large">我是教师</el-radio>
+                                    <el-radio value="1" size="large">我是学生</el-radio>
+                                </el-radio-group>
+                            </div>
+                        </div>
+
+                    </div>
                     <div style="margin-top:20px">
                         <div class="user_account">所属组织架构:</div>
                         <div class="input_cus">
@@ -301,20 +353,23 @@ onUnmounted(() => {
                         </div>
                     </div>
                     <div style="margin-top:20px;display: flex;">
-                        <div style="flex: 1;">
+                        <div style="flex: 1;" v-show="roleType == '1'">
                             <div class="user_account">职务:</div>
                             <div class="input_cus">
 
-                                <el-select v-model="position" placeholder="请选择职务" size="large" style="width: 90%;">
+                                <el-select v-model="position" placeholder="请选择职务" size="large">
                                     <el-option v-for="item in listPosition" :key="item.paramValue"
                                         :label="item.paramName" :value="item.paramValue" />
                                 </el-select>
                             </div>
                         </div>
                         <div style="flex: 1;display: flex;flex-direction: column;justify-content: end;">
-                            <div class="user_account" style="width: 90%;margin-left: 10%">账号(学号):</div>
-                            <div class="input_cus"> <el-input v-model="account" style="width: 90%;margin-left: 10%"
-                                    placeholder="请输入账号" />
+                            <div class="user_account"
+                                :style="{ width: roleType == '1' ? '90%' : '100%', marginLeft: roleType == '1' ? '10%' : '0%' }">
+                                学号/编号:</div>
+                            <div class="input_cus"> <el-input v-model="account"
+                                    :style="{ width: roleType == '1' ? '90%' : '100%', marginLeft: roleType == '1' ? '10%' : '0%' }"
+                                    placeholder="请输入学号/编号" />
                             </div>
                         </div>
 

+ 3 - 3
src/views/UpdatePas.vue

@@ -173,7 +173,7 @@ const loginFun = async () => {
 
 </template>
 <style lang="scss" scoped>
-:deep(.el-input__wrapper) {
+:deep(.kply_inner .el-input__wrapper) {
     align-items: center;
     border-radius: 60px !important;
     border: 2px solid #B2F2D2 !important;
@@ -181,11 +181,11 @@ const loginFun = async () => {
 
 }
 
-:deep(.el-input__wrapper .is-fous) {
+:deep(.kply_inner .el-input__wrapper .is-fous) {
     box-shadow: none
 }
 
-:deep(.el-input__inner) {
+:deep(.kply_inner .el-input__inner) {
     height: 36px;
     font-size: 16px;
 }

+ 1 - 0
vite.config.ts

@@ -6,6 +6,7 @@ import vueJsx from '@vitejs/plugin-vue-jsx'
 
 // https://vitejs.dev/config/
 export default defineConfig({
+  // base: '/pc/',
   css: {
     preprocessorOptions: {
       scss: {