1 changed files with 239 additions and 0 deletions
			
			
		| @ -0,0 +1,239 @@ | |||||
|  | <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>状态</span> | ||||
|  |             <el-select v-model="query.state" size="small" class="filter-item" style="width: 120px"> | ||||
|  |               <el-option v-for="item in stateData" :key="item.key" :label="item.name" :value="item.key" /> | ||||
|  |             </el-select> | ||||
|  |           </div> | ||||
|  |           <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="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="organization" label="所属机构" align="center" /> | ||||
|  |             <el-table-column prop="isDel" label="设备状态" align="center"> | ||||
|  |               <template slot-scope="scope"> | ||||
|  |                 <div>{{ scope.row.isDel ? '在线' : '离线' }}</div> | ||||
|  |               </template> | ||||
|  |             </el-table-column> | ||||
|  |             <el-table-column prop="content" label="发布内容" align="center"> | ||||
|  |               <template slot-scope="scope"> | ||||
|  |                 <el-button type="text" size="small" @click="handleClick(scope.row)">查看</el-button> | ||||
|  |               </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="dialogTitle" :close-on-click-modal="false" :visible.sync="addFromVisible" width="400px"> | ||||
|  |         <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | ||||
|  |           <el-form-item label="设备账号" prop="account"><el-input v-model="form.account" autocomplete="off" disabled style="width: 200px" /></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 class="layer"> | ||||
|  |       <el-dialog title="发布内容" :close-on-click-modal="false" :visible.sync="contentVisible" width="720px"> | ||||
|  |         <div class="content_warp"> | ||||
|  |           <h4>图片</h4> | ||||
|  |           <ul class="item_list"> | ||||
|  |             <li class="item_cont"> | ||||
|  |               <img src="../../assets/images/background.jpg" alt=""> | ||||
|  |               <div class="item_info"> | ||||
|  |                 <div class="item_format"> | ||||
|  |                   <span class="item_type">JPG</span> | ||||
|  |                   <span class="item_time">30S</span> | ||||
|  |                 </div> | ||||
|  |                 <p class="item_name">1.3X2DD244</p> | ||||
|  |               </div> | ||||
|  |               <!-- 视频 --> | ||||
|  |               <div class="item_player">1</div> | ||||
|  |             </li> | ||||
|  |           </ul> | ||||
|  |           <h4>视频</h4> | ||||
|  |           <h4>音频</h4> | ||||
|  |         </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 = { | ||||
|  |   account: null, | ||||
|  |   name: null, | ||||
|  |   orientation: null | ||||
|  | } | ||||
|  | export default { | ||||
|  |   name: 'Device', | ||||
|  |   components: { rrOperation, pagination }, | ||||
|  |   cruds() { | ||||
|  |     return CRUD({ | ||||
|  |       title: '用户', | ||||
|  |       url: 'api/users', | ||||
|  |       crudMethod: { ...crudUser } | ||||
|  |     }) | ||||
|  |   }, | ||||
|  |   mixins: [presenter(), header(), form(defaultForm), crud()], | ||||
|  |   data() { | ||||
|  |     return { | ||||
|  |       dialogTitle: '', | ||||
|  |       addFromVisible: false, | ||||
|  |       contentVisible: false, | ||||
|  |       tableData: [ | ||||
|  |         { | ||||
|  |           id: 'XXXXXXXXX', | ||||
|  |           account: '13476289682', | ||||
|  |           name: 'GCXR2', | ||||
|  |           orientation: '竖屏', | ||||
|  |           organization: 'xx图书馆', | ||||
|  |           content: '', | ||||
|  |           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.dialogTitle = '编辑设备' | ||||
|  |       this.addFromVisible = true | ||||
|  |       this.form.account = row.account | ||||
|  |       this.form.name = row.name | ||||
|  |     }, | ||||
|  |     // 查看 | ||||
|  |     handleClick(row) { | ||||
|  |       console.log(row) | ||||
|  |       this.contentVisible = true | ||||
|  |     }, | ||||
|  |     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; | ||||
|  | } | ||||
|  | .layer { | ||||
|  |   ::v-deep .el-dialog__body { | ||||
|  |     padding: 0 0 30px 20px; | ||||
|  |   } | ||||
|  | } | ||||
|  | .item_list { | ||||
|  |   display: flex; | ||||
|  |   flex-wrap: wrap; | ||||
|  |   .item_cont { | ||||
|  |     position: relative; | ||||
|  |     width: 160px; | ||||
|  |     height: 100px; | ||||
|  |     overflow: hidden; | ||||
|  |     background-color: #f1f1f1; | ||||
|  |     margin: 0 10px 10px 0; | ||||
|  |     img { | ||||
|  |       display: block; | ||||
|  |       width: 160px; | ||||
|  |       height: 100px; | ||||
|  |     } | ||||
|  |     .item_info { | ||||
|  |       position: absolute; | ||||
|  |       left: 0; | ||||
|  |       right: 0; | ||||
|  |       bottom: 0; | ||||
|  |       .item_format { | ||||
|  |         display: flex; | ||||
|  |         span { | ||||
|  |           display: block; | ||||
|  |           padding: 2px 5px; | ||||
|  |           margin-right: 5px; | ||||
|  |           background: rgba(255, 255, 255, 0.5); | ||||
|  |           color: #fff; | ||||
|  |           font-size: 12px; | ||||
|  |           line-height: 12px; | ||||
|  |           border-radius: 4px; | ||||
|  |         } | ||||
|  |       } | ||||
|  |       .item_name { | ||||
|  |         padding: 2px 0; | ||||
|  |         margin: 5px 0 0 0; | ||||
|  |         background: rgba(255, 255, 255, 0.5); | ||||
|  |         color: #fff; | ||||
|  |       } | ||||
|  |     } | ||||
|  |     .item_player { | ||||
|  |       position: absolute; | ||||
|  |       top: 50%; | ||||
|  |       left: 50%; | ||||
|  |       width: 50px; | ||||
|  |       height: 50px; | ||||
|  |       background: rgba(255, 255, 255, 0.5); | ||||
|  |       border-radius: 50%; | ||||
|  |       margin: -25px 0 0 -25px; | ||||
|  |       z-index: 999; | ||||
|  |     } | ||||
|  |   } | ||||
|  | } | ||||
|  | </style> | ||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue