|  |  | 
 |  |  | <template> | 
 |  |  |     <div class="box"> | 
 |  |  |         <el-form :model="form" ref="form" label-width="140px"> | 
 |  |  |             <el-form-item label="来访预约方式:" prop="doorIds"> | 
 |  |  |                 <el-radio-group v-model="form.doorIds"> | 
 |  |  |                     <el-radio :label="3">预约免登记</el-radio> | 
 |  |  |                     <el-radio :label="6">预约后登记(需要配备访客机)</el-radio> | 
 |  |  |                 </el-radio-group> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="被访人校验方式:" prop="doorIds"> | 
 |  |  |                 <el-radio-group v-model="form.doorIds"> | 
 |  |  |                     <el-radio :label="3">仅手机号</el-radio> | 
 |  |  |                     <el-radio :label="6">手机号&姓名</el-radio> | 
 |  |  |                 </el-radio-group> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="健康证是否必填:" prop="doorIds"> | 
 |  |  |                 <el-radio-group v-model="form.doorIds"> | 
 |  |  |                     <el-radio :label="3">否</el-radio> | 
 |  |  |                     <el-radio :label="6">是</el-radio> | 
 |  |  |                 </el-radio-group> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="访客是否答题:" prop="doorIds"> | 
 |  |  |                 <el-switch | 
 |  |  |                     v-model="form.doorIds" | 
 |  |  |                     active-color="#13ce66" | 
 |  |  |                     inactive-color="#ff4949" | 
 |  |  |                     :active-value="1" | 
 |  |  |                     :inactive-value="0"> | 
 |  |  |                 </el-switch> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="访客答题主题:" prop="doorIds"> | 
 |  |  |                 <el-input style="width: 50%;" v-model="form.doorIds" placeholder="请输入答题标题" v-trim/> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="访客答题说明:" prop="doorIds"> | 
 |  |  |                 <el-input style="width: 50%;" type="textarea" v-model="form.doorIds" placeholder="请输入" v-trim/> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item> | 
 |  |  |                 <el-button type="primary">保存配置项</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, | 
 |  |  |   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', | 
 |  |  |  | 
 |  |  |   components: { | 
 |  |  |     RichEditor | 
 |  |  |   }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       form: { | 
 |  |  |         doorIds: '' | 
 |  |  |       } | 
 |  |  |         id: null, | 
 |  |  |         checkVisit: 0, | 
 |  |  |         reservationWay: 0, | 
 |  |  |         healthCard: 0, | 
 |  |  |         isAnswer: 0, | 
 |  |  |         doorsVisitRequired: '', | 
 |  |  |         theme: '', | 
 |  |  |         description: '', | 
 |  |  |         visitNotice: '', | 
 |  |  |         visitMap: '', | 
 |  |  |         visitTips: '', | 
 |  |  |         frezzDays: null | 
 |  |  |       }, | 
 |  |  |       styleEditor:'border: 1px solid #ccc;display: inline-block;', | 
 |  |  |       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() | 
 |  |  |       ] | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  |   created() { | 
 |  |  |     this.getData() | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  |   methods: { | 
 |  |  |     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 | 
 |  |  |           this.form.description = res.description | 
 |  |  |           this.form.healthCard = res.healthCard | 
 |  |  |           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() { | 
 |  |  |       updateVisitConfig({ | 
 |  |  |         isAnswer: this.form.isAnswer, | 
 |  |  |         healthCard: this.form.healthCard, | 
 |  |  |         checkVisit: this.form.checkVisit, | 
 |  |  |         reservationWay: this.form.reservationWay, | 
 |  |  |         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('保存成功') | 
 |  |  |         this.getData() | 
 |  |  |       }) | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> | 
 |  |  |     .box { | 
 |  |  |         width: 100%; | 
 |  |  |         height: 100%; | 
 |  |  |         padding: 30px; | 
 |  |  |         box-sizing: border-box; | 
 |  |  |         background: #ffffff; | 
 |  |  |     } | 
 |  |  | .box { | 
 |  |  |   width: 100%; | 
 |  |  |   padding: 30px; | 
 |  |  |   box-sizing: border-box; | 
 |  |  |   background: #ffffff; | 
 |  |  | } | 
 |  |  | </style> |