Преглед изворни кода

feat:新增外出服务,外出登记

coder пре 1 година
родитељ
комит
586494b57a

+ 1 - 1
public/config.js

@@ -29,7 +29,7 @@ function isWhich() {
   if (window.location.href.includes('localhost')) {
     return production
   } else if (window.location.href.includes('bozedu')) {
-    return development
+    return production
   } else {
     return production
   }

BIN
src/assets/index/jslswc.png


+ 56 - 0
src/pages/administrativeService/teacherTempGoOut/dateTImePicker.vue

@@ -0,0 +1,56 @@
+<script setup>
+
+const props = defineProps({
+  label: {
+    type: String,
+    default: '',
+  },
+})
+
+defineExpose({
+  getResult
+})
+function getResult() {
+  return result
+}
+let result = $ref('')
+let showDatePicker = $ref(false)
+let showTimePicker = $ref(false)
+
+const onDateConfirm = ({ selectedValues }) => {
+  result = selectedValues.join('/');
+  showDatePicker = false;
+  showTimePicker = true
+};
+const onTimeConfirm = ({ selectedValues }) => {
+  result = result + ' ' + selectedValues.join(':');
+  showTimePicker = false;
+};
+
+let oldResult = ''
+const clickPop = () => {
+  oldResult = result
+  showDatePicker = true
+}
+const clickCancel = () => {
+  result = oldResult
+  showDatePicker = false
+  showTimePicker = false
+
+}
+const currentTime = ref(['12', '00', '00']);
+const columnsType = ['hour', 'minute', 'second'];
+
+const minDate = new Date(2020, 0, 1)
+</script>
+<template>
+  <van-field v-model="result" is-link readonly name="datePicker" :label='props.label' placeholder="点击选择时间"
+    @click="clickPop" :rules="[{ required: true, message: '请选择时间' }]" />
+  <van-popup v-model:show="showDatePicker" position="bottom">
+    <van-date-picker :min-date="minDate" @confirm="onDateConfirm" @cancel="clickCancel" />
+  </van-popup>
+  <van-popup v-model:show="showTimePicker" position="bottom">
+    <van-time-picker @confirm="onTimeConfirm" @cancel="clickCancel" v-model="currentTime" title="选择时间"
+      :columns-type="columnsType" />
+  </van-popup>
+</template>

+ 135 - 0
src/pages/administrativeService/teacherTempGoOut/index.vue

@@ -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>

+ 7 - 0
src/pages/menuData.js

@@ -65,6 +65,13 @@ export const menuList = [
       { icon: getAssetsImages('index/xmzlk.png'), menuName: '项目资料库', path: '/projectManager/projectDatabase' },
     ],
   },
+  {
+    tag: 'xzfw',
+    title: '行政服务',
+    list: [
+      { icon: getAssetsImages('index/jslswc.png'), menuName: '教师临时外出', path: '/administrativeService/teacherTempGoOut' },
+    ],
+  },
   // {
   //   title: '学生竞赛管理',
   //   list: [

+ 34 - 34
src/store/produ/lwj.js

@@ -55,48 +55,48 @@ export default {
   "wx_last_token": null,
   "wx_last_login": null,
   "wx_graduation": "0",
-  "token": "17e1WC1ZAjWxU1WyT30j2NWYYpiGm51B8VO4X_bgeaDL4wgk_bK8zpBEoE30AKErEwBb6N0n_b0FzmtnqBaFSWTiLtu3iWAauG2tEDIGlS3O8U",
+  "token": "fac1ExFOBVIQYtl5q6h5t_azix2Wd5FRbjmjLhtifL3AD_ankZfsTCx2SjEU09POJzz9b_b2fJ_a1QSNmvMWq2pFFzAWBgbUHR8k0D4myXN5Kg07",
   "setting": {
-      "sitename": "景宁教育魔方",
-      "sitedomain": "http://60.188.226.44:8090/",
-      "site_icp": "浙ICP备05048509号-1",
-      "sitelogo": "http://60.188.226.44:8090/src/assets/image/public/logo3.png",
-      "siteqrcode": "http://60.188.226.44:8090/dev.qr.png",
-      "sitefavicon": "",
-      "user_failedlogin_max": "5"
+    "sitename": "景宁教育魔方",
+    "sitedomain": "http://60.188.226.44:8090/",
+    "site_icp": "浙ICP备05048509号-1",
+    "sitelogo": "http://60.188.226.44:8090/src/assets/image/public/logo3.png",
+    "siteqrcode": "http://60.188.226.44:8090/dev.qr.png",
+    "sitefavicon": "",
+    "user_failedlogin_max": "5"
   },
   "user_org": [
-      {
-          "uo_id": "323",
-          "uo_name": "景宁畲族自治县教育局",
-          "uo_master_username": "625cce3e63fae8144b719348,6268f6def6e7a89284f6d9d8",
-          "uo_type": "1"
-      },
-      {
-          "uo_id": "385",
-          "uo_name": "局机关",
-          "uo_master_username": "",
-          "uo_type": "1"
-      },
-      {
-          "uo_id": "386",
-          "uo_name": "督导室",
-          "uo_master_username": "62d8ea99f70a66ae698868dc,627b46e7f70a6617d1bec0d0",
-          "uo_type": "1"
-      }
+    {
+      "uo_id": "323",
+      "uo_name": "景宁畲族自治县教育局",
+      "uo_master_username": "625cce3e63fae8144b719348,6268f6def6e7a89284f6d9d8",
+      "uo_type": "1"
+    },
+    {
+      "uo_id": "385",
+      "uo_name": "局机关",
+      "uo_master_username": "",
+      "uo_type": "1"
+    },
+    {
+      "uo_id": "386",
+      "uo_name": "督导室",
+      "uo_master_username": "62d8ea99f70a66ae698868dc,627b46e7f70a6617d1bec0d0",
+      "uo_type": "1"
+    }
   ],
   "uo_id": "386",
   "uo_type": "1",
   "uo_name": "督导室",
   "dept_ids": [
-      "323",
-      "385",
-      "386"
+    "323",
+    "385",
+    "386"
   ],
   "dept_master": [
-      {
-          "uo_id": "386",
-          "uo_name": "督导室"
-      }
+    {
+      "uo_id": "386",
+      "uo_name": "督导室"
+    }
   ]
-}
+}