k94314517
2024-05-21 12e8eb9e345adea19972c34df471b28b51fa71dd
admin/src/views/business/visitorSources.vue
@@ -1,6 +1,13 @@
<template>
    <div class="box">
        <el-form :model="form" ref="form" label-width="140px">
            <div><span style="font-size: 15px;font-weight: bold">人员授权配置:</span></div>
          <el-form-item label="" prop="frezzDays" label-width="50px">
            人员门禁授权冻结:连续
            <el-input style="width: 50px;" type="text" v-model="form.frezzDays" placeholder="" v-trim/>
            天,无门禁/车辆闸机事件
          </el-form-item>
            <div><span style="font-size: 15px;font-weight: bold">访客配置:</span></div>
            <el-form-item label="来访预约方式:" prop="reservationWay">
                <el-radio-group v-model="form.reservationWay">
                    <el-radio :label="0">预约免登记</el-radio>
@@ -19,6 +26,15 @@
                    <el-radio :label="1">是</el-radio>
                </el-radio-group>
            </el-form-item>
            <el-form-item label="允许自选门禁组:" prop="doorsVisitRequired">
                <el-switch
                    v-model="form.doorsVisitRequired"
                    active-color="#13ce66"
                    inactive-color="#ff4949"
                    :active-value="1"
                    :inactive-value="0">
                </el-switch>
            </el-form-item>
            <el-form-item label="访客是否答题:" prop="isAnswer">
                <el-switch
                    v-model="form.isAnswer"
@@ -34,6 +50,15 @@
            <el-form-item label="访客答题说明:" prop="description">
                <el-input style="width: 50%;" type="textarea" v-model="form.description" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="入厂须知:" prop="visitNotice">
                <el-tiptap style="width: 50%;" v-model="form.visitNotice" :extensions="extensions" />
            </el-form-item>
            <el-form-item label="访客预约指南:" prop="visitNotice">
                <el-tiptap style="width: 50%;" v-model="form.visitTips" :extensions="extensions" />
            </el-form-item>
            <el-form-item label="访客入园导览图:" prop="visitNotice">
                <el-tiptap style="width: 50%;" v-model="form.visitMap" :extensions="extensions" />
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="submit">保存配置项</el-button>
            </el-form-item>
@@ -43,6 +68,31 @@
<script>
import { getVisitConfigDTO, updateVisitConfig } from '@/api/system/common'
import {
  // necessary extensions
  Doc,
  Text,
  Paragraph,
  Heading,
  Bold,
  Underline,
  Italic,
  Strike,
  ListItem,
  BulletList,
  OrderedList,
  Image,
  Blockquote,
  TextAlign,
  Indent,
  Table,
  TableHeader,
  TableCell,
  TableRow,
  TextColor,
  HorizontalRule
} from 'element-tiptap'
import { upload } from '@/api/system/common'
export default {
  name: 'visitorSources',
@@ -54,9 +104,46 @@
        reservationWay: 0,
        healthCard: 0,
        isAnswer: 0,
        doorsVisitRequired: '',
        theme: '',
        description: ''
      }
        description: '',
        visitNotice: '',
        visitMap: '',
        visitTips: '',
        frezzDays: null
      },
      extensions: [
        new Doc(),
        new Text(),
        new Paragraph(),
        new Heading({ level: 5 }),
        new Bold({ bubble: true }),
        new Underline({ bubble: true, menubar: false }),
        new Italic(),
        new Strike(),
        new ListItem(),
        new BulletList(),
        new OrderedList(),
        new Image({
          uploadRequest (file) {
            const fd = new FormData()
            fd.append('folder', 'visit/')
            fd.append('file', file)
            return upload(fd).then(res => {
              return res.url
            })
          }
        }),
        new Blockquote(),
        new TextAlign(),
        new Indent(),
        new Table(),
        new TableHeader(),
        new TableCell(),
        new TableRow(),
        new HorizontalRule(),
        new TextColor()
      ]
    }
  },
@@ -74,6 +161,11 @@
          this.form.isAnswer = res.isAnswer
          this.form.reservationWay = res.reservationWay
          this.form.theme = res.theme
          this.form.doorsVisitRequired = res.doorsVisitRequired
          this.form.visitNotice = res.visitNotice
          this.form.visitTips = res.visitTips
          this.form.visitMap = res.visitMap
          this.form.frezzDays = res.frezzDays
        })
    },
    submit () {
@@ -83,7 +175,12 @@
        checkVisit: this.form.checkVisit,
        reservationWay: this.form.reservationWay,
        description: this.form.description,
        theme: this.form.theme
        theme: this.form.theme,
        visitNotice: this.form.visitNotice,
        visitTips: this.form.visitTips,
        frezzDays: this.form.frezzDays,
        visitMap: this.form.visitMap,
        doorsVisitRequired: this.form.doorsVisitRequired
      }).then(res => {
        this.$message.success('保存成功')
        this.getData()
@@ -96,7 +193,6 @@
<style lang="scss" scoped>
    .box {
        width: 100%;
        height: 100%;
        padding: 30px;
        box-sizing: border-box;
        background: #ffffff;