|
@@ -0,0 +1,135 @@
|
|
|
+<script setup>
|
|
|
+import { userInfo } from "~/store/user";
|
|
|
+import dateTimePicker from './dateTImePicker.vue'
|
|
|
+import { showFailToast, showToast } from 'vant'
|
|
|
+
|
|
|
+const { uo_type } = userInfo;
|
|
|
+const isBureau = ref(false); // 当前用户是否局端
|
|
|
+isBureau.value = uo_type === "1";
|
|
|
+
|
|
|
+const router = useRouter()
|
|
|
+
|
|
|
+let transParams = $ref({
|
|
|
+ xxw_sqsj: '',
|
|
|
+ xxw_qjr: '',
|
|
|
+ xxw_wcmd: '',
|
|
|
+ xxw_kssj: '',
|
|
|
+ xxw_yjfhsj: '',
|
|
|
+ xxw_sjfhsj: '',
|
|
|
+ xxw_spr: '',
|
|
|
+ xxw_bz: ''
|
|
|
+})
|
|
|
+const sqsjRef = $ref()
|
|
|
+const kssjRef = $ref()
|
|
|
+const yjfhsjRef = $ref()
|
|
|
+const sjfhsjRef = $ref()
|
|
|
+const onSubmit = () => {
|
|
|
+ transParams.xxw_sqsj = sqsjRef.getResult()
|
|
|
+ transParams.xxw_kssj = kssjRef.getResult()
|
|
|
+ transParams.xxw_yjfhsj = yjfhsjRef.getResult()
|
|
|
+ transParams.xxw_sjfhsj = sjfhsjRef.getResult()
|
|
|
+ if (transParams.xxw_qjr === transParams.xxw_spr) {
|
|
|
+ showFailToast('请假人和审批人不能为同一人')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ request({ url: '/xdbg/xzfw_wcgl/add', data: { xdbg_xzfw_wcgl: transParams } }).then(res => {
|
|
|
+ if (res.code == '1') {
|
|
|
+ showToast(res.msg);
|
|
|
+ router.go(0);
|
|
|
+ }
|
|
|
+ })
|
|
|
+};
|
|
|
+
|
|
|
+const dateResult = ref('');
|
|
|
+const showDatePicker = ref(false);
|
|
|
+const onDateConfirm = ({ selectedValues }) => {
|
|
|
+ dateResult.value = selectedValues.join('/');
|
|
|
+ showDatePicker.value = false;
|
|
|
+ showTimePicker.value = true
|
|
|
+};
|
|
|
+
|
|
|
+const currentTime = ref(['12', '00', '00']);
|
|
|
+const columnsType = ['hour', 'minute', 'second'];
|
|
|
+
|
|
|
+const timeResult = ref('');
|
|
|
+const showTimePicker = ref(false);
|
|
|
+const onTimeConfirm = ({ selectedValues }) => {
|
|
|
+ timeResult.value = selectedValues.join(':');
|
|
|
+ showTimePicker.value = false;
|
|
|
+};
|
|
|
+
|
|
|
+let userList = $ref([])
|
|
|
+const { dept_id } = userInfo;
|
|
|
+request({
|
|
|
+ url: '/user/main/index',
|
|
|
+ data: {
|
|
|
+ dept_id: dept_id,
|
|
|
+ all: '1',
|
|
|
+ page: 1,
|
|
|
+ limit: 99999
|
|
|
+ }
|
|
|
+}).then(res => {
|
|
|
+ if (res.code == 1) {
|
|
|
+ let tempArray = [];
|
|
|
+ res.data.page_data.forEach((item) => {
|
|
|
+ tempArray.push({
|
|
|
+ text: item.user_realname,
|
|
|
+ value: item.user_id,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ userList = tempArray;
|
|
|
+ }
|
|
|
+})
|
|
|
+let qjr = $ref('')
|
|
|
+const showQjrUserPicker = ref(false);
|
|
|
+const onQjrUserConfirm = ({ selectedValues, selectedOptions }) => {
|
|
|
+ qjr = selectedOptions[0].text
|
|
|
+ transParams.xxw_qjr = selectedValues[0];
|
|
|
+ showQjrUserPicker.value = false;
|
|
|
+};
|
|
|
+
|
|
|
+let spr = $ref('')
|
|
|
+const showSprUserPicker = ref(false);
|
|
|
+const onSprUserConfirm = ({ selectedValues, selectedOptions }) => {
|
|
|
+ spr = selectedOptions[0].text
|
|
|
+ transParams.xxw_spr = selectedValues[0];
|
|
|
+ showSprUserPicker.value = false;
|
|
|
+};
|
|
|
+
|
|
|
+</script>
|
|
|
+<template>
|
|
|
+ <div v-show="isBureau">
|
|
|
+ <div style="width: 100%;text-align: center;"><span style="font-size: 20px;">本功能仅对校端用户开放</span></div>
|
|
|
+ </div>
|
|
|
+ <div v-show="!isBureau">
|
|
|
+ <van-form @submit="onSubmit">
|
|
|
+ <van-cell-group inset>
|
|
|
+ <dateTimePicker ref="sqsjRef" label="申请时间" />
|
|
|
+ <van-field v-model="qjr" is-link readonly name="picker" label="请假人" placeholder="请选择请假人"
|
|
|
+ @click="showQjrUserPicker = true" :rules="[{ required: true, message: '请选择请假人' }]" />
|
|
|
+ <van-popup v-model:show="showQjrUserPicker" position="bottom">
|
|
|
+ <van-picker :columns="userList" @confirm="onQjrUserConfirm" @cancel="showQjrUserPicker = false" />
|
|
|
+ </van-popup>
|
|
|
+ <dateTimePicker ref="kssjRef" label="开始时间" />
|
|
|
+ <dateTimePicker ref="yjfhsjRef" label="预计返回时间" />
|
|
|
+ <dateTimePicker ref="sjfhsjRef" label="实际返回时间" />
|
|
|
+ <van-field v-model="transParams.xxw_wcmd" name="外出目的" label="外出目的" placeholder="请输入外出目的"
|
|
|
+ :rules="[{ required: true, message: '请输入外出目的' }]" />
|
|
|
+ <van-field v-model="transParams.xxw_bz" name="备注" label="备注" placeholder="请输入备注"
|
|
|
+ :rules="[{ required: true, message: '请输入备注' }]" />
|
|
|
+
|
|
|
+ <van-field v-model="spr" is-link readonly name="picker" label="审批人" placeholder="请选择审批人"
|
|
|
+ @click="showSprUserPicker = true" :rules="[{ required: true, message: '请选择审批人' }]" />
|
|
|
+ <van-popup v-model:show="showSprUserPicker" position="bottom">
|
|
|
+ <van-picker :columns="userList" @confirm="onSprUserConfirm" @cancel="showSprUserPicker = false" />
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
+ </van-cell-group>
|
|
|
+ <div style="margin: 16px;">
|
|
|
+ <van-button round block type="primary" native-type="submit">
|
|
|
+ 提交
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+ </div>
|
|
|
+</template>
|