From 43942a545271345ce26e40d82bb97138c5ea7611 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 28 六月 2024 13:54:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/components/business/operaVisitsReportWindow.vue | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 232 insertions(+), 0 deletions(-)
diff --git a/admin/src/components/business/operaVisitsReportWindow.vue b/admin/src/components/business/operaVisitsReportWindow.vue
new file mode 100644
index 0000000..c0976eb
--- /dev/null
+++ b/admin/src/components/business/operaVisitsReportWindow.vue
@@ -0,0 +1,232 @@
+<template>
+ <GlobalWindow
+ title="鏂板璁垮鎶ュ"
+ width="600px"
+ :visible.sync="isShowModal"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="param" ref="paramRef" :rules="rules">
+ <div class="title_tip">璁垮棰勭害</div>
+ <el-form-item label="琚浜�" prop="startTime">
+ {{ userInfo.realname }} {{ userInfo.company.companyNamePath }}
+ </el-form-item>
+ <el-form-item label="鍏ュ洯鏃堕棿" prop="starttime">
+ <el-date-picker
+ v-model="param.starttime"
+ format="yyyy-MM-dd HH:mm"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ default-time="08:00:00"
+ :picker-options="startPickerOptions"
+ @change="changeStarttime"
+ />
+ </el-form-item>
+ <el-form-item label="绂诲洯鏃堕棿" prop="endtime">
+ <el-date-picker
+ v-model="param.endtime"
+ format="yyyy-MM-dd HH:mm"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ default-time="08:00:00"
+ :picker-options="endPickerOptions"
+ />
+ </el-form-item>
+
+ <div class="title_tip">璁垮淇℃伅</div>
+ <el-form-item label="鑱旂郴浜�" prop="name">
+ <el-input
+ v-model="param.name"
+ placeholder="璇疯緭鍏ヨ仈绯讳汉鐨勫鍚�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="phone">
+ <el-input
+ v-model="param.phone"
+ placeholder="璇疯緭鍏ヨ仈绯讳汉鐨勬墜鏈哄彿"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏉ヨ鍗曚綅" prop="companyName">
+ <el-input
+ v-model="param.companyName"
+ placeholder="璇疯緭鍏ユ潵璁跨殑鍗曚綅鍏ㄧО"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鍏ュ洯杞﹁締" prop="carNos">
+ <el-input v-model="param.carNos" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input>
+ </el-form-item>
+ <el-form-item label="闅忚溅浜烘暟" prop="memberNum">
+ <el-input
+ v-model="param.memberNum"
+ placeholder="璇疯緭鍏ラ殢杞︿汉鍛樻�绘暟"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏉ヨ浜嬬敱" prop="reason">
+ <el-select v-model="param.reason" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in VisitReason"
+ :key="item.id"
+ :label="item.title"
+ :value="item.title"
+ />
+ </el-select>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadFaceImg from '@/components/common/UploadFaceImg'
+import dayjs from 'dayjs'
+import { createVisit, getVisitedVisitReason } from '@/api/business/visits'
+export default {
+ name: 'OperaVisitsHkWindow',
+ extends: BaseOpera,
+ components: {
+ GlobalWindow,
+ UploadFaceImg
+ },
+ data () {
+ return {
+ isShowModal: false,
+ param: {
+ type: 2,
+ starttime: '',
+ endtime: ''
+ },
+ userInfo: this.$store.state.userInfo,
+
+ VisitReason: [],
+ uploadData: {
+ folder: 'member'
+ },
+ startPickerOptions: {
+ disabledDate (time) {
+ return time.getTime() < Date.now() - 8.64e7 // 绂佺敤瓒呰繃褰撳墠鏃堕棿鐨勬棩鏈�
+ },
+ selectableRange: '00:00:00 - 23:59:59' // 杩欎釜鍔犱笂涔嬪悗锛屾椂鍒嗙涓婇潰鎵嶆湁绂佹閫夋嫨鍙樼伆锛屽鏋滀笉鍔狅紝涔熷彲浠ョ姝㈤�夋嫨锛屼絾鏄笉浼氬彉鐏�
+ },
+ endPickerOptions: {
+ disabledDate: (time) => {
+ if (this.param.starttime) {
+ return new Date(this.param.starttime).getTime() > time.getTime() + 8.64e7 // 绂佺敤瓒呰繃褰撳墠鏃堕棿鐨勬棩鏈�
+ }
+ },
+ selectableRange: '00:00:00 - 23:59:59'
+ },
+ rules: {
+ starttime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+ endtime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+ reason: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+ type: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+ idcardType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+
+ memberNum: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+ name: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+ idcardNo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+ companyName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+ phone: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+ carNos: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }],
+ constructionReason: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
+ }
+ }
+ },
+ created () {
+ this.initData()
+ this.$set(this.param, 'starttime', dayjs().format('YYYY-MM-DD HH:mm:ss'))
+ },
+ watch: {
+ 'param.starttime': {
+ handler (newValue, oldValue) {
+ if (newValue) {
+ const date = new Date()
+ // const min = date.getMinutes()
+ // date.setMinutes(min) // 杩欓噷鍔�1鍒嗛挓锛屾槸涓轰簡瑙e喅鍊兼敼鍙樺悗锛岀郴缁熺鏁板氨杩囨湡闄愬埗浜嗭紝鏃犳硶鐐瑰嚮鈥滄鍒烩�濇寜閽紝 濡傛灉鐩戝惉 鈥滅郴缁熸椂闂粹�濈殑鏀瑰彉锛屽垯浼氬奖鍝嶆�ц兘銆�
+ const nowDate = dayjs(date).format('HH:mm:ss')
+ let st = ''
+ if (dayjs(date).format('yyyy-MM-DD') === dayjs(newValue).format('yyyy-MM-DD')) {
+ const hh1 = dayjs(newValue).format('HH:mm:ss')
+ // if (hh1 < nowDate) {
+ // this.param.starttime = new Date()
+ // }
+ st = nowDate
+ } else {
+ st = '00:00:00'
+ }
+ this.$set(this.startPickerOptions, 'selectableRange', st + ' - 23:59:59')
+ // this.startPickerOptions = this.startPickerOptions
+ }
+ },
+ deep: true,
+ immediate: true
+ },
+ 'param.endtime': {
+ handler (newValue, oldValue) {
+ if (newValue) {
+ const nowDate = dayjs(this.param.starttime).format('HH:mm:ss')
+ let st = ''
+ if (dayjs(this.param.starttime).format('yyyy-MM-DD') === dayjs(newValue).format('yyyy-MM-DD')) {
+ st = nowDate
+ } else {
+ st = '00:00:00'
+ }
+ this.$set(this.endPickerOptions, 'selectableRange', st + ' - 23:59:59')
+ // this.startPickerOptions = this.startPickerOptions
+ }
+ },
+ deep: true,
+ immediate: true
+ }
+ },
+ methods: {
+ initData () {
+ getVisitedVisitReason({}).then(res => {
+ this.VisitReason = res || []
+ })
+ },
+ changeStarttime (e) {
+ this.$set(this.param, 'endtime', this.param.starttime)
+ },
+ uploadAvatarSuccess (file) {
+ this.$set(this.param, 'faceImg', file.imgurl)
+ this.$set(this.param, 'faceImgUrl', file.imgurlfull)
+ },
+ // 鍚屾淇℃伅
+ confirm () {
+ this.$refs.paramRef.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ createVisit({
+ ...this.param,
+ receptMemberId: this.userInfo.memberId,
+ receptMemberName: this.userInfo.realname
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鎻愪氦鎴愬姛')
+ this.$emit('success')
+ this.$emit('close')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ }
+}
+</script>
+<style lang="scss" scoped>
+.title_tip {
+ font-size: 18px;
+ font-weight: 600;
+ margin-bottom: 10px;
+}
+</style>
--
Gitblit v1.9.3