10 changed files with 567 additions and 36 deletions
			
			
		- 
					56src/assets/styles/adminIndex.scss
- 
					8src/router/routers.js
- 
					17src/views/dashboard/ThemeGallery.vue
- 
					2src/views/device/deviceConfig.vue
- 
					19src/views/materialContent/index.vue
- 
					1src/views/materialContent/materialList/index.vue
- 
					108src/views/publishContent/historyList/index.vue
- 
					52src/views/publishContent/index.vue
- 
					131src/views/publishContent/publishList/index.vue
- 
					209src/views/publishContent/urgentMessage/index.vue
| @ -0,0 +1,108 @@ | |||
| <template> | |||
|   <div class="list_warp"> | |||
|     <el-row :gutter="15"> | |||
|       <el-col> | |||
|         <el-table | |||
|           ref="table" | |||
|           v-loading="crud.loading" | |||
|           :data="tableData" | |||
|           :header-cell-style="{ background: '#3a8aeb', color: '#fff' }" | |||
|           @selection-change="handleSelectionChange" | |||
|         > | |||
|           <el-table-column type="selection" width="55" /> | |||
|           <el-table-column label="文件名称" align="center" prop="name" /> | |||
|           <el-table-column label="发布内容" align="center" prop="content"> | |||
|             <template slot-scope="scope"> | |||
|               <div> | |||
|                 <img width="100px" size="medium" :src="scope.row.cover" /> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="发布时间" align="center" prop="date" /> | |||
|           <el-table-column label="发布周期" align="center" prop="cycle" /> | |||
|           <el-table-column label="发布类型" align="center" prop="type"> | |||
|             <template slot-scope="scope"> | |||
|               <div>{{ scope.row.type ? '定时发布' : '即时发布' }}</div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="发布人" align="center" prop="user" /> | |||
|           <el-table-column label="状态" align="center" prop="enabled"> | |||
|             <template slot-scope="scope"> | |||
|               <div :class="{ 'stop_txt': scope.row.enabled }">{{ scope.row.enabled ? '发布中' : '停止' }}</div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column prop="device" align="center" label="发布设备" /> | |||
|         </el-table> | |||
|         <!--分页组件--> | |||
|         <pagination /> | |||
|       </el-col> | |||
|     </el-row> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import crudDept from '@/api/system/dept' | |||
| import CRUD, { presenter, header, form, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| const defaultForm = { | |||
| } | |||
| export default { | |||
|   name: 'HistoryList', | |||
|   components: { pagination }, | |||
|   cruds() { | |||
|     return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept } }) | |||
|   }, | |||
|   mixins: [presenter(), header(), form(defaultForm), crud()], | |||
|   data() { | |||
|     return { | |||
|       selectedList: [], | |||
|       tableData: [ | |||
|         { | |||
|           id: 1, | |||
|           name: '图片1', | |||
|           cover: require('@/assets/images/background.jpg'), | |||
|           type: 0, | |||
|           user: '某某某', | |||
|           device: '所有设备', | |||
|           enabled: true, | |||
|           isTop: true, | |||
|           cycle: '每天', | |||
|           date: '2021-2-2 至 2022-4-6' | |||
|         }, | |||
|         { | |||
|           id: 2, | |||
|           name: '图片2', | |||
|           cover: require('@/assets/images/background.jpg'), | |||
|           type: 1, | |||
|           user: '某某某2', | |||
|           device: '所有设备', | |||
|           enabled: false, | |||
|           isTop: false, | |||
|           cycle: '每天', | |||
|           date: '2021-2-2 至 2022-4-6' | |||
|         } | |||
|       ] | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     handleSelectionChange(val) { | |||
|       this.selectedList = val | |||
|       if (val.length > 0) { | |||
|         this.clearBtnDisabled = false | |||
|       } else { | |||
|         this.clearBtnDisabled = true | |||
|       } | |||
|       console.log(val) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .list_warp { | |||
|   padding: 0 24px; | |||
|   .stop_txt { | |||
|     color: #3a8aeb; | |||
|   } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,52 @@ | |||
| <template> | |||
|   <div class="app-container"> | |||
|     <div class="content_warp"> | |||
|       <el-tabs v-model="activeName" @tab-click="handleClick"> | |||
|         <el-tab-pane label="发布列表" name="first"> | |||
|           <PublistList /> | |||
|         </el-tab-pane> | |||
|         <el-tab-pane label="发布历史" name="second"> | |||
|           <HistoryList /> | |||
|         </el-tab-pane> | |||
|         <el-tab-pane label="紧急通知" name="third"> | |||
|           <UrgentMessage /> | |||
|         </el-tab-pane> | |||
|       </el-tabs> | |||
|     </div> | |||
|     <div v-if="activeName !== 'third'" class="home_publish_btn"> | |||
|       <el-button round>即时发布</el-button> | |||
|       <el-button round type="primary">定时发布</el-button> | |||
|     </div> | |||
|     <div v-else class="home_publish_btn"> | |||
|       <el-button round>紧急发布</el-button> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import PublistList from './publishList/index' | |||
| import HistoryList from './historyList/index' | |||
| import UrgentMessage from './urgentMessage/index' | |||
| export default { | |||
|   name: 'PublishContent', | |||
|   components: { PublistList, HistoryList, UrgentMessage }, | |||
|   data() { | |||
|     return { | |||
|       activeName: 'first', | |||
|       mulitText: '多选' | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     handleClick(tab, event) { | |||
|       console.log(tab, event) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .app-container { | |||
|   position: relative; | |||
|   padding: 6px 0 20px 0; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,131 @@ | |||
| <template> | |||
|   <div class="list_warp"> | |||
|     <el-row :gutter="15"> | |||
|       <el-col> | |||
|         <el-table | |||
|           ref="table" | |||
|           v-loading="crud.loading" | |||
|           :data="tableData" | |||
|           :header-cell-style="{ background: '#3a8aeb', color: '#fff' }" | |||
|           @selection-change="handleSelectionChange" | |||
|         > | |||
|           <el-table-column type="selection" width="55" /> | |||
|           <el-table-column label="文件名称" align="center" prop="name" /> | |||
|           <el-table-column label="发布内容" align="center" prop="content"> | |||
|             <template slot-scope="scope"> | |||
|               <div> | |||
|                 <img width="100px" size="medium" :src="scope.row.cover" /> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="发布时间" align="center" prop="date" /> | |||
|           <el-table-column label="发布类型" align="center" prop="type"> | |||
|             <template slot-scope="scope"> | |||
|               <div>{{ scope.row.type ? '定时发布' : '即时发布' }}</div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="发布人" align="center" prop="user" /> | |||
|           <el-table-column label="状态" align="center" prop="enabled"> | |||
|             <template slot-scope="scope"> | |||
|               <div :class="{ 'stop_txt': scope.row.enabled }">{{ scope.row.enabled ? '发布中' : '停止' }}</div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column prop="device" align="center" label="发布设备" /> | |||
|           <el-table-column label="操作" width="220px" align="center" fixed="right"> | |||
|             <template slot-scope="scope"> | |||
|               <el-button | |||
|                 type="primary" | |||
|                 :class="['top_btn', { 'top_btn_active': scope.row.isTop }]" | |||
|                 @click="isTophandle(scope.$index, scope.row)" | |||
|               >{{ scope.row.isTop ? '取消' : '置顶' }}</el-button> | |||
|               <el-button | |||
|                 type="primary" | |||
|                 class="edit_btn" | |||
|                 @click="editFormData(scope.$index, scope.row)" | |||
|               >编辑</el-button> | |||
|               <el-button | |||
|                 type="primary" | |||
|                 :class="['start_btn', { 'stop_btn': scope.row.enabled }]" | |||
|                 @click="isStopHandle(scope.$index, scope.row)" | |||
|               >{{ scope.row.enabled ? '停止' : '恢复' }}</el-button> | |||
|               <el-button type="info" class="delt_btn">删除</el-button> | |||
|             </template> | |||
|           </el-table-column> | |||
|         </el-table> | |||
|         <!--分页组件--> | |||
|         <pagination /> | |||
|       </el-col> | |||
|     </el-row> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import crudDept from '@/api/system/dept' | |||
| import CRUD, { presenter, header, form, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| const defaultForm = { | |||
| } | |||
| export default { | |||
|   name: 'PublishList', | |||
|   components: { pagination }, | |||
|   cruds() { | |||
|     return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept } }) | |||
|   }, | |||
|   mixins: [presenter(), header(), form(defaultForm), crud()], | |||
|   data() { | |||
|     return { | |||
|       selectedList: [], | |||
|       tableData: [ | |||
|         { | |||
|           id: 1, | |||
|           name: '图片1', | |||
|           cover: require('@/assets/images/background.jpg'), | |||
|           type: 0, | |||
|           user: '某某某', | |||
|           device: '所有设备', | |||
|           enabled: true, | |||
|           isTop: true, | |||
|           date: '2021-2-2 至 2022-4-6' | |||
|         }, | |||
|         { | |||
|           id: 2, | |||
|           name: '图片2', | |||
|           cover: require('@/assets/images/background.jpg'), | |||
|           type: 1, | |||
|           user: '某某某2', | |||
|           device: '所有设备', | |||
|           enabled: false, | |||
|           isTop: false, | |||
|           date: '2021-2-2 至 2022-4-6' | |||
|         } | |||
|       ] | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     isTophandle(index, row) { | |||
|       row.isTop = !row.isTop | |||
|     }, | |||
|     isStopHandle(index, row) { | |||
|       row.enabled = !row.enabled | |||
|     }, | |||
|     handleSelectionChange(val) { | |||
|       this.selectedList = val | |||
|       if (val.length > 0) { | |||
|         this.clearBtnDisabled = false | |||
|       } else { | |||
|         this.clearBtnDisabled = true | |||
|       } | |||
|       console.log(val) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .list_warp { | |||
|   padding: 0 24px; | |||
|   .stop_txt { | |||
|     color: #3a8aeb; | |||
|   } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,209 @@ | |||
| <template> | |||
|   <div class="list_warp"> | |||
|     <el-row :gutter="15"> | |||
|       <el-col> | |||
|         <el-table | |||
|           ref="table" | |||
|           v-loading="crud.loading" | |||
|           :data="tableData" | |||
|           :header-cell-style="{ background: '#3a8aeb', color: '#fff' }" | |||
|           @selection-change="handleSelectionChange" | |||
|         > | |||
|           <el-table-column type="selection" width="55" /> | |||
|           <el-table-column label="序号" type="index" align="center" prop="name" width="50" /> | |||
|           <el-table-column label="发布内容" align="center" prop="content" /> | |||
|           <el-table-column label="通知时间" align="center" prop="date" /> | |||
|           <el-table-column label="发布人" align="center" prop="user" /> | |||
|           <el-table-column label="状态" align="center" prop="enabled"> | |||
|             <template slot-scope="scope"> | |||
|               <div :class="{ 'stop_txt': scope.row.enabled }">{{ scope.row.enabled ? '发布中' : '停止' }}</div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="操作" width="220px" align="center" fixed="right"> | |||
|             <template slot-scope="scope"> | |||
|               <el-button | |||
|                 type="primary" | |||
|                 class="edit_btn" | |||
|                 @click="editFormData(scope.$index, scope.row)" | |||
|               >编辑</el-button> | |||
|               <el-button | |||
|                 type="primary" | |||
|                 :class="['start_btn', { 'stop_btn': scope.row.enabled }]" | |||
|                 @click="isStopHandle(scope.$index, scope.row)" | |||
|               >{{ scope.row.enabled ? '停止' : '恢复' }}</el-button> | |||
|             </template> | |||
|           </el-table-column> | |||
|         </el-table> | |||
|         <!--分页组件--> | |||
|         <pagination /> | |||
|       </el-col> | |||
|     </el-row> | |||
| 
 | |||
|     <div class="publish_layer"> | |||
|       <el-dialog | |||
|         title="紧急发布" | |||
|         :close-on-click-modal="false" | |||
|         :visible.sync="messageVisible" | |||
|         width="872px" | |||
|         height="384px" | |||
|       > | |||
|         <el-form ref="form" :model="form" size="small" label-width="100px"> | |||
|           <el-form-item | |||
|             label="文本颜色" | |||
|             prop="content" | |||
|             :rules="[ | |||
|               { required: true, message: '请选择文本内容', trigger: '' } | |||
|             ]" | |||
|           >111</el-form-item> | |||
|           <el-form-item | |||
|             label="文本内容" | |||
|             prop="content" | |||
|             :rules="[ | |||
|               { required: true, message: '请输入文本内容', trigger: 'blur' } | |||
|             ]" | |||
|           > | |||
|             <el-input type="textarea" rows="6" v-model="form.content" style="width: 674px;" /> | |||
|           </el-form-item> | |||
|           <el-form-item | |||
|             label="文本大小" | |||
|             prop="orientation" | |||
|             :rules="[ | |||
|               { required: true, message: '请选择文本大小', trigger: 'change' }, | |||
|             ]" | |||
|           > | |||
|             <el-select v-model="form.txtSize" size="small" class="filter-item"> | |||
|               <el-option | |||
|                 v-for="item in sizeData" | |||
|                 :key="item.key" | |||
|                 :label="item.name" | |||
|                 :value="item.key" | |||
|               /> | |||
|             </el-select> | |||
|           </el-form-item> | |||
|           <el-form-item | |||
|             label="文本位置" | |||
|             prop="position" | |||
|             :rules="[ | |||
|               { required: true, message: '请选择文本位置', trigger: 'change' }, | |||
|             ]" | |||
|           > | |||
|             <el-select v-model="form.position" size="small" class="filter-item"> | |||
|               <el-option | |||
|                 v-for="item in positionData" | |||
|                 :key="item.key" | |||
|                 :label="item.name" | |||
|                 :value="item.key" | |||
|               /> | |||
|             </el-select> | |||
|           </el-form-item> | |||
|           <el-form-item | |||
|             label="滚动速度" | |||
|             prop="speed" | |||
|             :rules="[ | |||
|               { required: true, message: '请选择滚动速度', trigger: 'change' }, | |||
|             ]" | |||
|           > | |||
|             <el-select v-model="form.speed" size="small" class="filter-item"> | |||
|               <el-option | |||
|                 v-for="item in speedData" | |||
|                 :key="item.key" | |||
|                 :label="item.name" | |||
|                 :value="item.key" | |||
|               /> | |||
|             </el-select> | |||
|           </el-form-item> | |||
|           <el-form-item | |||
|             label="选择设备" | |||
|             prop="deviceSelect" | |||
|             :rules="[ | |||
|               { required: true, message: '请选择设备', trigger: 'change' }, | |||
|             ]" | |||
|           > | |||
|             <el-radio-group v-model="form.deviceSelect"> | |||
|               <el-radio label="所有设备" value="all" /> | |||
|               <el-radio label="部分设备" value="other" /> | |||
|             </el-radio-group> | |||
|           </el-form-item> | |||
|         </el-form> | |||
|         <div slot="footer" class="dialog-footer"> | |||
|           <el-button :loading="crud.status.cu === 2" type="primary" round @click="crud.submitCU">保存</el-button> | |||
|           <el-button round @click="crud.cancelCU">关闭</el-button> | |||
|         </div> | |||
|       </el-dialog> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import crudDept from '@/api/system/dept' | |||
| import CRUD, { presenter, header, form, crud } from '@crud/crud' | |||
| import pagination from '@crud/Pagination' | |||
| const defaultForm = { | |||
|   content: '', | |||
|   txtSize: '', | |||
|   position: '', | |||
|   speed: '', | |||
|   deviceSelect: '' | |||
| } | |||
| export default { | |||
|   name: 'UrgentMessage', | |||
|   components: { pagination }, | |||
|   cruds() { | |||
|     return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept } }) | |||
|   }, | |||
|   mixins: [presenter(), header(), form(defaultForm), crud()], | |||
|   data() { | |||
|     return { | |||
|       messageVisible: false, | |||
|       sizeData: [{ key: '0', name: '16' }, { key: '1', name: '22' }, { key: '2', name: '24' }, { key: '3', name: '30' }], | |||
|       positionData: [{ key: '0', name: '顶部' }, { key: '1', name: '中间' }, { key: '2', name: '底部' }], | |||
|       speedData: [{ key: '0', name: '1s' }, { key: '1', name: '2s' }, { key: '2', name: '3s' }], | |||
|       selectedList: [], | |||
|       tableData: [ | |||
|         { | |||
|           id: 1, | |||
|           name: '图片1', | |||
|           content: '这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是...', | |||
|           user: '某某某', | |||
|           enabled: true, | |||
|           date: '2021-2-2 16:00' | |||
|         }, | |||
|         { | |||
|           id: 2, | |||
|           name: '图片2', | |||
|           content: '这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是...', | |||
|           user: '某某某2', | |||
|           enabled: false, | |||
|           date: '2021-2-2 16:00' | |||
|         } | |||
|       ] | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     isStopHandle(index, row) { | |||
|       row.enabled = !row.enabled | |||
|     }, | |||
|     editFormData(index, row) { | |||
|       this.messageVisible = true | |||
|     }, | |||
|     handleSelectionChange(val) { | |||
|       this.selectedList = val | |||
|       if (val.length > 0) { | |||
|         this.clearBtnDisabled = false | |||
|       } else { | |||
|         this.clearBtnDisabled = true | |||
|       } | |||
|       console.log(val) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .list_warp { | |||
|   padding: 0 24px; | |||
|   .stop_txt { | |||
|     color: #3a8aeb; | |||
|   } | |||
| } | |||
| </style> | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue