ll
liukangdong
2024-10-12 ac9336875dea20beef20a2fee481929b882d2a15
admin/src/views/business/visitorSources.vue
@@ -1,60 +1,113 @@
<template>
    <div class="box">
        <el-form :model="form" ref="form" label-width="140px">
            <el-form-item label="来访预约方式:" prop="reservationWay">
                <el-radio-group v-model="form.reservationWay">
                    <el-radio :label="0">预约免登记</el-radio>
                    <el-radio :label="1">预约后登记(需要配备访客机)</el-radio>
                </el-radio-group>
            </el-form-item>
            <el-form-item label="被访人校验方式:" prop="checkVisit">
                <el-radio-group v-model="form.checkVisit">
                    <el-radio :label="0">仅手机号</el-radio>
                    <el-radio :label="1">手机号&姓名</el-radio>
                </el-radio-group>
            </el-form-item>
            <el-form-item label="健康证是否必填:" prop="healthCard">
                <el-radio-group v-model="form.healthCard">
                    <el-radio :label="0">否</el-radio>
                    <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"
                    active-color="#13ce66"
                    inactive-color="#ff4949"
                    :active-value="1"
                    :inactive-value="0">
                </el-switch>
            </el-form-item>
            <el-form-item label="访客答题主题:" prop="theme">
                <el-input style="width: 50%;" type="textarea" v-model="form.theme" placeholder="请输入答题标题" v-trim/>
            </el-form-item>
            <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>
                <el-button type="primary" @click="submit">保存配置项</el-button>
            </el-form-item>
        </el-form>
    </div>
  <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="1">预约免登记</el-radio>
          <el-radio :label="0">预约后登记(需要配备访客机)</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="被访人校验方式:" prop="checkVisit">
        <el-radio-group v-model="form.checkVisit">
          <el-radio :label="0">仅手机号</el-radio>
          <el-radio :label="1">手机号&姓名</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="健康证是否必填:" prop="healthCard">
        <el-radio-group v-model="form.healthCard">
          <el-radio :label="0">否</el-radio>
          <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"
          active-color="#13ce66"
          inactive-color="#ff4949"
          :active-value="1"
          :inactive-value="0"
        >
        </el-switch>
      </el-form-item>
      <el-form-item label="访客答题主题:" prop="theme">
        <el-input
          style="width: 50%"
          type="textarea"
          v-model="form.theme"
          placeholder="请输入答题标题"
          v-trim
        />
      </el-form-item>
      <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"
        /> -->
        <RichEditor style="width: 70%" :richData="form.visitNotice" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
      </el-form-item>
      <el-form-item label="访客预约指南:" prop="visitNotice">
        <!-- <el-tiptap
          style="width: 50%"
          v-model="form.visitTips"
          :extensions="extensions"
        /> -->
        <RichEditor style="width: 70%" :richData="form.visitTips" :styleEditor="styleEditor" @getWangedditor="getWangedditor1" :readonly="false"/>
      </el-form-item>
      <el-form-item label="访客入园导览图:" prop="visitNotice">
        <!-- <el-tiptap
          style="width: 50%"
          v-model="form.visitMap"
          :extensions="extensions"
        /> -->
        <RichEditor style="width: 70%" :richData="form.visitMap" :styleEditor="styleEditor" @getWangedditor="getWangedditor2" :readonly="false"/>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submit">保存配置项</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
import { getVisitConfigDTO, updateVisitConfig } from '@/api/system/common'
import RichEditor from '@/components/common/RichEditor'
import {
  // necessary extensions
  Doc,
@@ -82,8 +135,10 @@
import { upload } from '@/api/system/common'
export default {
  name: 'visitorSources',
  data () {
  components: {
    RichEditor
  },
  data() {
    return {
      form: {
        id: null,
@@ -94,8 +149,12 @@
        doorsVisitRequired: '',
        theme: '',
        description: '',
        visitNotice: ''
        visitNotice: '',
        visitMap: '',
        visitTips: '',
        frezzDays: null
      },
      styleEditor:'border: 1px solid #ccc;display: inline-block;',
      extensions: [
        new Doc(),
        new Text(),
@@ -109,12 +168,12 @@
        new BulletList(),
        new OrderedList(),
        new Image({
          uploadRequest (file) {
          uploadRequest(file) {
            const fd = new FormData()
            fd.append('folder', 'visit/')
            fd.append('file', file)
            return upload(fd).then(res => {
              return res.prefixPath + res.folder + res.halfPath
              return res.url
            })
          }
        }),
@@ -131,12 +190,21 @@
    }
  },
  created () {
  created() {
    this.getData()
  },
  methods: {
    getData () {
    getWangedditor(val){
      this.form.visitNotice =val
    },
    getWangedditor1(val){
      this.form.visitTips =val
    },
    getWangedditor2(val){
      this.form.visitMap =val
    },
    getData() {
      getVisitConfigDTO({})
        .then(res => {
          this.form.checkVisit = res.checkVisit
@@ -147,9 +215,12 @@
          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 () {
    submit() {
      updateVisitConfig({
        isAnswer: this.form.isAnswer,
        healthCard: this.form.healthCard,
@@ -158,6 +229,9 @@
        description: this.form.description,
        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('保存成功')
@@ -169,10 +243,10 @@
</script>
<style lang="scss" scoped>
    .box {
        width: 100%;
        padding: 30px;
        box-sizing: border-box;
        background: #ffffff;
    }
.box {
  width: 100%;
  padding: 30px;
  box-sizing: border-box;
  background: #ffffff;
}
</style>