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