| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | width="50%" |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <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="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥è®¾å¤åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ID" prop="devId"> |
| | | <el-input v-model="form.devId" placeholder="请è¾å
¥è®¾å¤ID" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åºåå·" prop="serialNo"> |
| | | <el-input v-model="form.serialNo" 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="端å£å·" prop="port"> |
| | | <el-input v-model="form.port" placeholder="请è¾å
¥ç«¯å£å·" v-trim/> |
| | | </el-form-item> |
| | | <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="Number(item.id)"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <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="doubleAuth"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-switch |
| | | v-model="form.alcoholStatus" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="0" |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | <span style="margin-left: 20px; color: #999999;">å¼å¯åï¼éè¦é
ç²¾æ£æµéè¿åï¼æè½å¼é¨</span> |
| | | </div> |
| | | </el-form-item> |
| | | <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="éªè¯äºº" 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="Number(item.id)"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå¨ä½ç½®" prop="location"> |
| | | <el-input v-model="form.location" placeholder="请è¾å
¥æå¨ä½ç½®" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»çº¬åº¦" prop="jwd"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input v-model="form.jwd" 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="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="æ¿æ´»æä»¶" prop="activateFile"> |
| | | <el-upload |
| | | accept=".zip" |
| | | class="upload-demo" |
| | | :action="base" |
| | | :limit="1" |
| | | :data="{ folder: 'activate' }" |
| | | :file-list="fileList" |
| | | :on-success="getFile" |
| | | :on-remove="removeFile"> |
| | | <el-button size="small" type="primary">ç¹å»ä¸ä¼ </el-button> |
| | | <div slot="tip" class="el-upload__tip">åªè½ä¸ä¼ zipæä»¶</div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <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 ? true : false" 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 ? true : false" type="number" placeholder="请è¾å
¥åæ°" v-trim> |
| | | <template slot="append">å</template> |
| | | </el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " prop="noType"> |
| | | <el-radio-group v-model="form.noType" :disabled="form.id ? true : false" @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="noPrefix" v-if="form.noType === 1"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input style="flex: 1;" v-model="form.noPrefix" :disabled="form.id ? true : false" placeholder="请è¾å
¥æ°åæåæ¯" v-trim/> |
| | | <span style="margin: 0 20px;">使°</span> |
| | | <el-input style="flex: 1;" v-model="form.noLength" :disabled="form.id ? true : false" placeholder="请è¾å
¥æ°å" v-trim/> |
| | | <span style="margin: 0 20px;">èµ·å§ç¼å·</span> |
| | | <el-input style="flex: 1;" v-model="form.noIndex" :disabled="form.id ? true : false" placeholder="请è¾å
¥æ°å" v-trim/> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æå顺åº" prop="sortType" v-if="form.noType === 1"> |
| | | <el-radio-group v-model="form.sortType" :disabled="form.id ? true : false"> |
| | | <el-radio :label="0">ä»å·¦å¾å³</el-radio> |
| | | <el-radio :label="1">ä»ä¸åä¸</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { allList } from '@/api/business/member' |
| | | import { getInfoById } from '@/api/business/jkCabinet' |
| | | export default { |
| | | name: 'OperaJkCabinetWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | var validate = (rule, value, callback) => { |
| | | if (this.form.noType === 1 && this.form.noLength === '' || this.form.noIndex === '') { |
| | | callback(new Error('使°åèµ·å§ç¼å·ä¸è½ä¸ºç©ºï¼')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | base: process.env.VUE_APP_API_PREFIX + 'visitsAdmin/cloudService/public/upload', |
| | | fileList: [], |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | code: '', |
| | | name: '', |
| | | devId: '', |
| | | serialNo: '', |
| | | linkAddr: '', |
| | | status: 0, |
| | | port: '', |
| | | managerIdList: '', |
| | | location: '', |
| | | useTime: '', |
| | | doubleAuth: 0, |
| | | authMemberIdList: '', |
| | | rowNum: '', |
| | | columnNum: '', |
| | | jwd: '', |
| | | latitude: '', |
| | | noType: 0, |
| | | noPrefix: '', |
| | | noLength: '', |
| | | noIndex: '', |
| | | sortType: 0, |
| | | activateFile: null, |
| | | alcoholStatus: 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, validator: validate, trigger: 'blur' } |
| | | ], |
| | | sortType: [ |
| | | { required: true, message: '请è¾å
¥æå顺åº', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | memberList: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/jkCabinet', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | getFile(response) { |
| | | this.fileList = [{ |
| | | name: response.data.originname, |
| | | fileurl: response.data.imgaddr, |
| | | ...response.data |
| | | }] |
| | | this.form.activateFile = { |
| | | name: response.data.originname, |
| | | fileurl: response.data.imgaddr, |
| | | ...response.data |
| | | } |
| | | }, |
| | | removeFile() { |
| | | this.form.activateFile = null |
| | | this.fileList = [] |
| | | }, |
| | | open (title, target) { |
| | | this.title = title |
| | | this.loadMember() |
| | | if (target) { |
| | | getInfoById(target.id) |
| | | .then(res => { |
| | | res.managerIdList = res.managerIdList.map(item => Number(item)) |
| | | res.authMemberIdList = res.authMemberIdList.map(item => Number(item)) |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = res[key] |
| | | } |
| | | if (res.activateFile) { |
| | | this.fileList = [{ |
| | | name: res.activateFile.name, |
| | | url: res.activateFile.fileurlFull, |
| | | ...res.activateFile |
| | | }] |
| | | } |
| | | this.visible = true |
| | | }) |
| | | }) |
| | | } else { |
| | | this.$nextTick(() => { |
| | | this.form = { |
| | | id: null, |
| | | code: '', |
| | | name: '', |
| | | devId: '', |
| | | serialNo: '', |
| | | linkAddr: '', |
| | | status: 0, |
| | | port: '', |
| | | managerIdList: '', |
| | | useTime: '', |
| | | doubleAuth: 0, |
| | | authMemberIdList: '', |
| | | rowNum: '', |
| | | columnNum: '', |
| | | jwd: '', |
| | | latitude: '', |
| | | noType: 0, |
| | | noPrefix: '', |
| | | noLength: '', |
| | | noIndex: '', |
| | | sortType: 0 |
| | | } |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | this.visible = true |
| | | } |
| | | }, |
| | | 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> |