| | |
| | | <template> |
| | | <GlobalWindow |
| | | width="50%" |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="创建人编码" prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="更新人编码" prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="更新时间" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="是否删除0否 1是" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="info"> |
| | | <el-input v-model="form.info" placeholder="请输入备注" v-trim/> |
| | | </el-form-item> |
| | | <h3 style="margin: 0 0 20px 0;">设备信息</h3> |
| | | <el-form-item label="设备编号" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请输入设备编号" v-trim/> |
| | | </el-form-item> |
| | |
| | | <el-form-item label="通讯地址" prop="linkAddr"> |
| | | <el-input v-model="form.linkAddr" placeholder="请输入通讯地址" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="状态 0未绑定 1在位 2借出" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请输入状态 0未绑定 1在位 2借出" v-trim/> |
| | | <el-form-item label="端口号" prop="port"> |
| | | <el-input v-model="form.port" placeholder="请输入端口号" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="端口" prop="port"> |
| | | <el-input v-model="form.port" placeholder="请输入端口" v-trim/> |
| | | <el-form-item label="设备管理员" prop="managerIdList"> |
| | | <el-select v-model="form.managerIdList" filterable multiple placeholder="请选择设备管理员"> |
| | | <el-option |
| | | v-for="item in memberList" |
| | | :key="item.id" |
| | | :label="item.name+'-'+item.companyName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="设备管理员编码(关联member)" prop="managerId"> |
| | | <el-input v-model="form.managerId" placeholder="请输入设备管理员编码(关联member)" v-trim/> |
| | | <el-form-item label="使用时长" prop="useTime"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input v-model="form.useTime" placeholder="请输入单次拿取钥匙可使用时长" v-trim style="flex: 1;"/> |
| | | <span style="margin-left: 20px;">单位:分钟</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="使用时长(秒)" prop="useTime"> |
| | | <el-input v-model="form.useTime" placeholder="请输入使用时长(秒)" v-trim/> |
| | | <el-form-item label="双重验证" prop="doubleAuth"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-switch |
| | | v-model="form.doubleAuth" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="1" |
| | | :inactive-value="0"> |
| | | </el-switch> |
| | | <span style="margin-left: 20px; color: #999999;">开启双重认证后,钥匙领取时先校验验证人身份,再校验司机身份</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="是否双重验证 0否 1是" prop="doubleAuth"> |
| | | <el-input v-model="form.doubleAuth" placeholder="请输入是否双重验证 0否 1是" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="验证人编码(关联member)" prop="authMemberId"> |
| | | <el-input v-model="form.authMemberId" placeholder="请输入验证人编码(关联member)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="排数" prop="rowNum"> |
| | | <el-input v-model="form.rowNum" placeholder="请输入排数" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="列数" prop="columnNum"> |
| | | <el-input v-model="form.columnNum" placeholder="请输入列数" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="最后通讯时间" prop="haertTime"> |
| | | <el-date-picker v-model="form.haertTime" value-format="yyyy-MM-dd" placeholder="请输入最后通讯时间"></el-date-picker> |
| | | <el-form-item label="验证人" prop="authMemberIdList"> |
| | | <el-select v-model="form.authMemberIdList" filterable multiple placeholder="请选择验证人"> |
| | | <el-option |
| | | v-for="item in memberList" |
| | | :key="item.id" |
| | | :label="item.name+'-'+item.companyName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="所在位置" prop="lacation"> |
| | | <el-input v-model="form.lacation" placeholder="请输入所在位置" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="经度" prop="longitude"> |
| | | <el-input v-model="form.longitude" placeholder="请输入经度" v-trim/> |
| | | <el-form-item label="经纬度" prop="longitude"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input v-model="form.longitude" placeholder="请输入经纬度" v-trim/> |
| | | <a style="margin-left: 20px; flex-shrink: 0;" href="https://lbs.amap.com/tools/picker" target="_blank">经纬度在线拾取地址</a> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="维度" prop="latitude"> |
| | | <el-input v-model="form.latitude" placeholder="请输入维度" v-trim/> |
| | | <el-form-item label="状态" prop="status"> |
| | | <el-switch |
| | | v-model="form.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="0" |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="编码方式 0自动编码 1手动编码" prop="noType"> |
| | | <el-input v-model="form.noType" placeholder="请输入编码方式 0自动编码 1手动编码" v-trim/> |
| | | <h3 style="margin: 20px 0;">柜组信息</h3> |
| | | <el-form-item label="排列" prop="rowNum"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input v-model="form.rowNum" :disabled="form.id" type="number" placeholder="请输入排数" v-trim> |
| | | <template slot="append">排</template> |
| | | </el-input> |
| | | <span style="margin: 0 20px;">x</span> |
| | | <el-input v-model="form.columnNum" :disabled="form.id" type="number" placeholder="请输入列数" v-trim> |
| | | <template slot="append">列</template> |
| | | </el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="编码前缀" prop="noPrefix"> |
| | | <el-input v-model="form.noPrefix" placeholder="请输入编码前缀" v-trim/> |
| | | <el-form-item label="编码" prop="noType"> |
| | | <el-radio-group v-model="form.noType" @change="changeNoType"> |
| | | <el-radio :label="0">自动编码</el-radio> |
| | | <el-radio :label="1">手动编码</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="编码位数" prop="noLength"> |
| | | <el-input v-model="form.noLength" placeholder="请输入编码位数" v-trim/> |
| | | <el-form-item label="前缀" prop="noPrefix" v-if="form.noType === 1"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input style="flex: 1;" v-model="form.noPrefix" placeholder="请输入数字或字母" v-trim/> |
| | | <span style="margin: 0 20px;">位数</span> |
| | | <el-input style="flex: 1;" v-model="form.noLength" placeholder="请输入数字" v-trim/> |
| | | <span style="margin: 0 20px;">起始编号</span> |
| | | <el-input style="flex: 1;" v-model="form.noIndex" placeholder="请输入数字" v-trim/> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="起始编码" prop="noIndex"> |
| | | <el-input v-model="form.noIndex" placeholder="请输入起始编码" v-trim/> |
| | | <el-form-item label="排列顺序" prop="sortType" v-if="form.noType === 1"> |
| | | <el-radio-group v-model="form.sortType" :disabled="form.id"> |
| | | <el-radio :label="0">从左往右</el-radio> |
| | | <el-radio :label="1">从上向下</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { allList } from '@/api/business/member' |
| | | export default { |
| | | name: 'OperaJkCabinetWindow', |
| | | extends: BaseOpera, |
| | |
| | | // 表单数据 |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | info: '', |
| | | code: '', |
| | | name: '', |
| | | devId: '', |
| | | serialNo: '', |
| | | linkAddr: '', |
| | | status: '', |
| | | status: 0, |
| | | port: '', |
| | | managerId: '', |
| | | managerIdList: '', |
| | | useTime: '', |
| | | doubleAuth: '', |
| | | authMemberId: '', |
| | | doubleAuth: 0, |
| | | authMemberIdList: '', |
| | | rowNum: '', |
| | | columnNum: '', |
| | | haertTime: '', |
| | | lacation: '', |
| | | longitude: '', |
| | | latitude: '', |
| | | noType: '', |
| | | noType: 0, |
| | | noPrefix: '', |
| | | noLength: '', |
| | | noIndex: '' |
| | | noIndex: '', |
| | | sortType: 0 |
| | | }, |
| | | // 验证规则 |
| | | rules: { |
| | | } |
| | | code: [ |
| | | { required: true, message: '请输入设备编号', trigger: 'blur' } |
| | | ], |
| | | name: [ |
| | | { required: true, message: '请输入设备名称', trigger: 'blur' } |
| | | ], |
| | | devId: [ |
| | | { required: true, message: '请输入设备ID', trigger: 'blur' } |
| | | ], |
| | | linkAddr: [ |
| | | { required: true, message: '请输入通讯地址', trigger: 'blur' } |
| | | ], |
| | | port: [ |
| | | { required: true, message: '请输入端口号', trigger: 'blur' } |
| | | ], |
| | | managerIdList: [ |
| | | { required: true, message: '请选择设备管理员', trigger: 'blur' } |
| | | ], |
| | | authMemberIdList: [ |
| | | { required: true, message: '请选择验证人', trigger: 'blur' } |
| | | ], |
| | | rowNum: [ |
| | | { required: true, message: '请输入排列', trigger: 'blur' } |
| | | ], |
| | | noType: [ |
| | | { required: true, message: '请选择编码', trigger: 'blur' } |
| | | ], |
| | | noPrefix: [ |
| | | { required: true, message: '请输入前缀', trigger: 'blur' } |
| | | ], |
| | | sortType: [ |
| | | { required: true, message: '请输入排列顺序', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | memberList: [] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | api: '/business/jkCabinet', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.loadMember() |
| | | this.visible = true |
| | | // 新建 |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // 编辑 |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | }) |
| | | }, |
| | | loadMember () { |
| | | allList({ |
| | | type: 2 |
| | | }).then(res => { |
| | | this.memberList = res |
| | | }) |
| | | }, |
| | | changeNoType() { |
| | | if (this.form.noType === 0) { |
| | | this.form.noPrefix = '' |
| | | this.form.noLength = '' |
| | | this.form.noIndex = '' |
| | | this.form.sortType = 0 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |