3 changed files with 321 additions and 173 deletions
@ -1,171 +0,0 @@ |
|||||
<template> |
|
||||
<div class="app-container"> |
|
||||
<!-- 搜索栏 --> |
|
||||
<div class="head-container"> |
|
||||
<el-row type="flex"> |
|
||||
<el-col :span="20" class="col_flex"> |
|
||||
<div class="form_item"> |
|
||||
<span>设备ID</span> |
|
||||
<el-input v-model="query.blurry" clearable size="small" placeholder="请输入设备ID" style="width: 200px" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|
||||
</div> |
|
||||
<div class="form_item"> |
|
||||
<span>设备名称</span> |
|
||||
<el-input v-model="query.blurry" clearable size="small" placeholder="请输入设备名称" style="width: 200px" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|
||||
</div> |
|
||||
<rrOperation /> |
|
||||
</el-col> |
|
||||
<el-col class="page_add" :span="4"> |
|
||||
<el-button class="setting_btn" type="primary" icon="el-icon-setting">配置</el-button> |
|
||||
<el-button class="table_add" type="primary" icon="el-icon-delete" disabled>清空</el-button> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
</div> |
|
||||
<el-row :gutter="15"> |
|
||||
<el-col> |
|
||||
<el-card class="box-card" shadow="never"> |
|
||||
<el-table style="width: 100%;" :data="tableData"> |
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="55" /> |
|
||||
<el-table-column prop="id" label="设备ID" align="center" /> |
|
||||
<el-table-column prop="account" label="设备账号" align="center" /> |
|
||||
<el-table-column prop="name" label="设备名称" align="center" /> |
|
||||
<el-table-column prop="orientation" label="设备方向" align="center" /> |
|
||||
<el-table-column prop="period" label="配置周期" align="center" width="300" /> |
|
||||
<el-table-column prop="cover" label="启动画面" align="center"> |
|
||||
<template slot-scope="scope"> |
|
||||
<el-image class="cover_img" :src="scope.row.cover" /> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
<el-table-column prop="date" label="创建时间" align="center" width="200" /> |
|
||||
<el-table-column fixed="right" label="操作" align="center"> |
|
||||
<template slot-scope="scope"> |
|
||||
<el-button type="primary" icon="el-icon-edit" @click="edit(scope.$index, scope.row)" /> |
|
||||
<el-button type="info" icon="el-icon-info" /> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
</el-table> |
|
||||
<!--分页组件--> |
|
||||
<pagination /> |
|
||||
</el-card> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
<!-- 编辑设备 --> |
|
||||
<div class="layer"> |
|
||||
<el-dialog title="配置" :close-on-click-modal="false" :visible.sync="addFromVisible" width="600px"> |
|
||||
<el-form ref="form" inline="true" :model="form" :rules="rules" label-width="100px"> |
|
||||
<el-form-item label="开机时间" prop="uptime"> |
|
||||
<span>设置时间:</span> |
|
||||
<el-radio-group v-model="form.time"> |
|
||||
<el-radio label="每天" /> |
|
||||
<el-radio label="每周" /> |
|
||||
</el-radio-group> |
|
||||
<!-- <el-form-item label="活动性质" prop="type"> |
|
||||
<el-checkbox-group v-model="ruleForm.type"> |
|
||||
<el-checkbox label="美食/餐厅线上活动" name="type" /> |
|
||||
<el-checkbox label="地推活动" name="type" /> |
|
||||
<el-checkbox label="线下主题活动" name="type" /> |
|
||||
<el-checkbox label="单纯品牌曝光" name="type" /> |
|
||||
</el-checkbox-group> |
|
||||
</el-form-item> --> |
|
||||
<el-checkbox-group v-model="form.week"> |
|
||||
<el-checkbox label="周一" name="week" /> |
|
||||
<el-checkbox label="周二" name="week" /> |
|
||||
<el-checkbox label="周三" name="week" /> |
|
||||
<el-checkbox label="周四" name="week" /> |
|
||||
<el-checkbox label="周五" name="week" /> |
|
||||
<el-checkbox label="周六" name="week" /> |
|
||||
<el-checkbox label="周日" name="week" /> |
|
||||
</el-checkbox-group> |
|
||||
</el-form-item> |
|
||||
<!-- el-form-item label="设备名称" prop="name"><el-input v-model="form.name" style="width: 200px" /></el-form-item> |
|
||||
<el-form-item label="设备方向" prop="orientation"> |
|
||||
<el-select v-model="form.orientation" size="small" class="filter-item" style="width: 200px"> |
|
||||
<el-option v-for="item in deviceData" :key="item.key" :label="item.name" :value="item.key" /> |
|
||||
</el-select> |
|
||||
</el-form-item> --> |
|
||||
</el-form> |
|
||||
<div slot="footer" class="dialog-footer"> |
|
||||
<el-button @click="addFromVisible = false">取 消</el-button> |
|
||||
<el-button type="primary" @click="submitForm('form')">确 定</el-button> |
|
||||
</div> |
|
||||
</el-dialog> |
|
||||
</div> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import crudUser from '@/api/system/user' |
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|
||||
import rrOperation from '@crud/RR.operation' |
|
||||
import pagination from '@crud/Pagination' |
|
||||
const defaultForm = { |
|
||||
time: null, |
|
||||
week: [], |
|
||||
orientation: null |
|
||||
} |
|
||||
export default { |
|
||||
name: 'DeviceConfig', |
|
||||
components: { rrOperation, pagination }, |
|
||||
cruds() { |
|
||||
return CRUD({ |
|
||||
title: '用户', |
|
||||
url: 'api/users', |
|
||||
crudMethod: { ...crudUser } |
|
||||
}) |
|
||||
}, |
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|
||||
data() { |
|
||||
return { |
|
||||
addFromVisible: false, |
|
||||
tableData: [ |
|
||||
{ |
|
||||
id: 'XXXXXXXXX', |
|
||||
account: '13476289682', |
|
||||
name: 'GCXR2', |
|
||||
orientation: '竖屏', |
|
||||
period: '每周(一/二/三/四/五)- 开机 - 8:00-18:00', |
|
||||
cover: 'https://qiniu.aiyxlib.com/1636076789085.png', |
|
||||
date: '2021-09-14 16:35' |
|
||||
} |
|
||||
], |
|
||||
stateData: [{ key: '0', name: '全部' }, { key: '1', name: '在线' }, { key: '2', name: '离线' }], |
|
||||
deviceData: [{ key: '0', name: '竖屏' }, { key: '1', name: '横屏' }], |
|
||||
rules: { |
|
||||
name: [{ required: true, message: '请输入设备名称', trigger: 'blur' }, { min: 2, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' }], |
|
||||
orientation: [{ required: true, message: '请选择设备方向', trigger: 'change' }] |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
computed: {}, |
|
||||
watch: {}, |
|
||||
methods: { |
|
||||
// 编辑 |
|
||||
edit(index, row) { |
|
||||
this.addFromVisible = true |
|
||||
this.form.account = row.account |
|
||||
this.form.name = row.name |
|
||||
}, |
|
||||
submitForm(formName) { |
|
||||
this.$refs[formName].validate(valid => { |
|
||||
if (valid) { |
|
||||
alert('submit!') |
|
||||
} else { |
|
||||
console.log('error submit!!') |
|
||||
return false |
|
||||
} |
|
||||
}) |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
<style lang="scss" scoped> |
|
||||
.col_flex { |
|
||||
display: flex; |
|
||||
} |
|
||||
.setting_btn{ |
|
||||
margin-right: 10px; |
|
||||
} |
|
||||
.cover_img{ |
|
||||
width: 65px; |
|
||||
} |
|
||||
|
|
||||
</style> |
|
@ -0,0 +1,319 @@ |
|||||
|
<template> |
||||
|
<div class="app-container"> |
||||
|
<!-- 搜索栏 --> |
||||
|
<div class="head-container"> |
||||
|
<el-row type="flex"> |
||||
|
<el-col :span="20" class="col_flex"> |
||||
|
<div class="form_item"> |
||||
|
<span>设备ID</span> |
||||
|
<el-input v-model="query.blurry" clearable size="small" placeholder="请输入设备ID" style="width: 200px" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
||||
|
</div> |
||||
|
<div class="form_item"> |
||||
|
<span>设备名称</span> |
||||
|
<el-input v-model="query.blurry" clearable size="small" placeholder="请输入设备名称" style="width: 200px" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
||||
|
</div> |
||||
|
<rrOperation /> |
||||
|
</el-col> |
||||
|
<el-col class="page_add" :span="4"> |
||||
|
<el-button class="setting_btn" type="primary" icon="el-icon-setting">配置</el-button> |
||||
|
<el-button class="table_add" type="primary" icon="el-icon-delete" :disabled="clearBtnDisabled">清空</el-button> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
<el-row :gutter="15"> |
||||
|
<el-col> |
||||
|
<el-card class="box-card" shadow="never"> |
||||
|
<el-table style="width: 100%;" :data="tableData" @selection-change="handleSelectionChange"> |
||||
|
<el-table-column type="selection" width="55" /> |
||||
|
<el-table-column prop="id" label="设备ID" align="center" /> |
||||
|
<el-table-column prop="account" label="设备账号" align="center" /> |
||||
|
<el-table-column prop="name" label="设备名称" align="center" /> |
||||
|
<el-table-column prop="orientation" label="设备方向" align="center" /> |
||||
|
<el-table-column prop="period" label="配置周期" align="center" width="300" /> |
||||
|
<el-table-column prop="cover" label="启动画面" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-image class="cover_img" :src="scope.row.cover" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="date" label="创建时间" align="center" width="200" /> |
||||
|
<el-table-column fixed="right" label="操作" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button type="primary" icon="el-icon-edit" @click="edit(scope.$index, scope.row)" /> |
||||
|
<el-button type="info" icon="el-icon-info" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<!--分页组件--> |
||||
|
<pagination /> |
||||
|
</el-card> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<!-- 编辑设备 --> |
||||
|
<div class="layer device_layer"> |
||||
|
<el-dialog title="配置" :close-on-click-modal="false" :visible.sync="addFromVisible" width="700px"> |
||||
|
<el-form ref="form" :model="form"> |
||||
|
<div class="setting_item"> |
||||
|
<h4>开机时间</h4> |
||||
|
<div class="setting_cont"> |
||||
|
<span>设置时间:</span> |
||||
|
<div> |
||||
|
<el-form-item |
||||
|
prop="ontime" |
||||
|
:rules="[ |
||||
|
{ required: true, message: '请选择开机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
:class="{'no_margin': form.ontime === '每周'}" |
||||
|
> |
||||
|
<el-radio-group v-model="form.ontime" @change="clearCheckbox()"> |
||||
|
<el-radio label="每天" value="everyday" /> |
||||
|
<el-radio label="每周" value="weekly" /> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
<el-form-item |
||||
|
v-if="form.ontime === '每周'" |
||||
|
:class="{'weekly_margin': form.ontime === '每周'}" |
||||
|
prop="onweek" |
||||
|
:rules="[ |
||||
|
{ required: true, message: '请选择每周开机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
> |
||||
|
<el-checkbox-group v-model="form.onweek"> |
||||
|
<el-checkbox label="周一" name="onweek" /> |
||||
|
<el-checkbox label="周二" name="onweek" /> |
||||
|
<el-checkbox label="周三" name="onweek" /> |
||||
|
<el-checkbox label="周四" name="onweek" /> |
||||
|
<el-checkbox label="周五" name="onweek" /> |
||||
|
<el-checkbox label="周六" name="onweek" /> |
||||
|
<el-checkbox label="周日" name="onweek" /> |
||||
|
</el-checkbox-group> |
||||
|
</el-checkbox-groupv-model="form.onweek"></el-form-item> |
||||
|
<el-form-item |
||||
|
prop="ontimeValue" |
||||
|
:rules="[ |
||||
|
{ type: 'date', required: true, message: '请选择具体开机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
> |
||||
|
<el-time-picker |
||||
|
v-model="form.ontimeValue" |
||||
|
:picker-options="{ |
||||
|
selectableRange: '00:00:00 - 23:59:59' |
||||
|
}" |
||||
|
placeholder="任意时间点" |
||||
|
value-format="HH:MM:SS" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="setting_item"> |
||||
|
<h4>关机时间</h4> |
||||
|
<div class="setting_cont"> |
||||
|
<span>设置时间:</span> |
||||
|
<div> |
||||
|
<el-form-item |
||||
|
prop="offtime" |
||||
|
:rules="[ |
||||
|
{ required: true, message: '请选择关机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
:class="{'no_margin': form.offtime === '每周'}" |
||||
|
> |
||||
|
<el-radio-group v-model="form.offtime" @change="clearCheckbox()"> |
||||
|
<el-radio label="每天" value="everyday" /> |
||||
|
<el-radio label="每周" value="weekly" /> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
<el-form-item |
||||
|
v-if="form.offtime === '每周'" |
||||
|
:class="{'weekly_margin': form.offtime === '每周'}" |
||||
|
prop="offweek" |
||||
|
:rules="[ |
||||
|
{ required: true, message: '请选择每周关机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
> |
||||
|
<el-checkbox-group v-model="form.offweek"> |
||||
|
<el-checkbox label="周一" name="offweek" /> |
||||
|
<el-checkbox label="周二" name="offweek" /> |
||||
|
<el-checkbox label="周三" name="offweek" /> |
||||
|
<el-checkbox label="周四" name="offweek" /> |
||||
|
<el-checkbox label="周五" name="offweek" /> |
||||
|
<el-checkbox label="周六" name="offweek" /> |
||||
|
<el-checkbox label="周日" name="offweek" /> |
||||
|
</el-checkbox-group> |
||||
|
</el-form-item> |
||||
|
<el-form-item |
||||
|
prop="offtimeValue" |
||||
|
:rules="[ |
||||
|
{ required: true, message: '请选择具体关机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
> |
||||
|
<el-time-picker |
||||
|
v-model="form.offtimeValue" |
||||
|
:picker-options="{ |
||||
|
selectableRange: '00:00:00 - 23:59:59' |
||||
|
}" |
||||
|
placeholder="任意时间点" |
||||
|
value-format="HH:MM:SS" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="setting_item"> |
||||
|
<h4>设备方向</h4> |
||||
|
<div class="setting_cont"> |
||||
|
<span>设备方向:</span> |
||||
|
<el-form-item |
||||
|
prop="orientation" |
||||
|
:rules="[ |
||||
|
{ required: true, message: '请选择具体关机时间', trigger: 'change' }, |
||||
|
]" |
||||
|
> |
||||
|
<el-select v-model="form.orientation" size="small" class="filter-item" style="width: 220px"> |
||||
|
<el-option v-for="item in deviceData" :key="item.key" :label="item.name" :value="item.key" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="setting_item"> |
||||
|
<h4>启动画面</h4> |
||||
|
</div> |
||||
|
</el-form> |
||||
|
<div slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="resetForm('form')">取 消</el-button> |
||||
|
<el-button type="primary" @click="submitForm('form')">确 定</el-button> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import crudUser from '@/api/system/user' |
||||
|
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
||||
|
import rrOperation from '@crud/RR.operation' |
||||
|
import pagination from '@crud/Pagination' |
||||
|
const defaultForm = { |
||||
|
ontime: null, |
||||
|
offtime: null, |
||||
|
onweek: [], |
||||
|
offweek: [], |
||||
|
orientation: null, |
||||
|
ontimeValue: '', |
||||
|
offtimeValue: '' |
||||
|
} |
||||
|
export default { |
||||
|
name: 'DeviceConfig', |
||||
|
components: { rrOperation, pagination }, |
||||
|
cruds() { |
||||
|
return CRUD({ |
||||
|
title: '用户', |
||||
|
url: 'api/users', |
||||
|
crudMethod: { ...crudUser } |
||||
|
}) |
||||
|
}, |
||||
|
mixins: [presenter(), header(), form(defaultForm), crud()], |
||||
|
data() { |
||||
|
return { |
||||
|
addFromVisible: false, |
||||
|
selectedList: [], |
||||
|
clearBtnDisabled: true, |
||||
|
tableData: [ |
||||
|
{ |
||||
|
id: 'XXXXXXXXX', |
||||
|
account: '13476289682', |
||||
|
name: 'GCXR2', |
||||
|
orientation: '竖屏', |
||||
|
period: '每周(一/二/三/四/五)- 开机 - 8:00-18:00', |
||||
|
cover: 'https://qiniu.aiyxlib.com/1636076789085.png', |
||||
|
date: '2021-09-14 16:35' |
||||
|
} |
||||
|
], |
||||
|
deviceData: [{ key: '0', name: '竖屏' }, { key: '1', name: '横屏' }] |
||||
|
} |
||||
|
}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
// 编辑 |
||||
|
edit(index, row) { |
||||
|
this.addFromVisible = true |
||||
|
}, |
||||
|
clearCheckbox() { |
||||
|
if (this.form.ontime === '每天') { |
||||
|
this.form.onweek = [] |
||||
|
} |
||||
|
if (this.form.offtime === '每天') { |
||||
|
this.form.offweek = [] |
||||
|
} |
||||
|
}, |
||||
|
resetForm(formName) { |
||||
|
this.addFromVisible = false |
||||
|
this.$refs[formName].resetFields() |
||||
|
}, |
||||
|
submitForm(formName) { |
||||
|
console.log(this.form) |
||||
|
this.$refs[formName].validate(valid => { |
||||
|
if (valid) { |
||||
|
alert('submit!') |
||||
|
} else { |
||||
|
console.log('error submit!!') |
||||
|
return false |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
handleSelectionChange(val) { |
||||
|
this.selectedList = val |
||||
|
if (val.length > 0) { |
||||
|
this.clearBtnDisabled = false |
||||
|
} else { |
||||
|
this.clearBtnDisabled = true |
||||
|
} |
||||
|
console.log(val) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
.col_flex { |
||||
|
display: flex; |
||||
|
} |
||||
|
.setting_btn{ |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
.cover_img{ |
||||
|
width: 65px; |
||||
|
} |
||||
|
.device_layer{ |
||||
|
::v-deep .el-dialog__body{ |
||||
|
padding: 0 20px; |
||||
|
} |
||||
|
.setting_cont{ |
||||
|
display: flex; |
||||
|
span{ |
||||
|
display: block; |
||||
|
width: 80px; |
||||
|
line-height: 32px; |
||||
|
} |
||||
|
.no_margin { |
||||
|
margin: 0; |
||||
|
} |
||||
|
.weekly_margin{ |
||||
|
margin-bottom: 6px; |
||||
|
::v-deep .el-form-item__error{ |
||||
|
top: 70%; |
||||
|
} |
||||
|
} |
||||
|
::v-deep .el-form-item--small.el-form-item:last-child{ |
||||
|
margin: 0; |
||||
|
} |
||||
|
::v-deep .el-radio-group{ |
||||
|
display: block; |
||||
|
// line-height: 32px; |
||||
|
.el-radio{ |
||||
|
line-height: 32px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue