|  |  |  | 
|---|
|  |  |  | <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" style="height:100%;overflow-y: auto" > | 
|---|
|  |  |  | <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, | 
|---|
|  |  |  | 
|---|
|  |  |  | import { upload } from '@/api/system/common' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'visitorSources', | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data () { | 
|---|
|  |  |  | components: { | 
|---|
|  |  |  | RichEditor | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | form: { | 
|---|
|  |  |  | id: null, | 
|---|
|  |  |  | 
|---|
|  |  |  | doorsVisitRequired: '', | 
|---|
|  |  |  | theme: '', | 
|---|
|  |  |  | description: '', | 
|---|
|  |  |  | visitNotice: '' | 
|---|
|  |  |  | visitNotice: '', | 
|---|
|  |  |  | visitMap: '', | 
|---|
|  |  |  | visitTips: '', | 
|---|
|  |  |  | frezzDays: null | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | styleEditor:'border: 1px solid #ccc;display: inline-block;', | 
|---|
|  |  |  | extensions: [ | 
|---|
|  |  |  | new Doc(), | 
|---|
|  |  |  | new Text(), | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }), | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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('保存成功') | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss" scoped> | 
|---|
|  |  |  | .box { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | padding: 30px; | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .el-container /deep/  .el-main{ | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | overflow-y: auto  !important ; | 
|---|
|  |  |  | height: calc(100% - 94px); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /deep/ .el-main{ | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | //height: 100%; | 
|---|
|  |  |  | overflow-y: auto  !important ; | 
|---|
|  |  |  | height: calc(100% - 94px); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .box { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | padding: 30px; | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|