哦吼吼 %!s(int64=6) %!d(string=hai) anos
pai
achega
9662d2fc1f

+ 83 - 0
admin-update/src/components/role-set.vue

@@ -0,0 +1,83 @@
+<template>
+	<el-drawer title="权限设置" :visible.sync="showStatus" size="70%" :before-close="closeFn">
+		<div class="role-set-wrap">
+			<div class="role-list">
+				<el-checkbox
+					:indeterminate="isIndeterminate"
+					v-model="checkAll"
+					@change="handleCheckAllChange"
+					>全选</el-checkbox
+				>
+				<div style="margin: 15px 0;"></div>
+				<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
+					<el-checkbox v-for="city in cities" :label="city" :key="city">{{
+						city
+					}}</el-checkbox>
+				</el-checkbox-group>
+			</div>
+		</div>
+	</el-drawer>
+</template>
+
+<script>
+const cityOptions = ['上海', '北京', '广州', '深圳'];
+export default {
+	name: 'role-set',
+	props: {
+		show: {
+			type: Boolean,
+			default: false
+		},
+		info: {
+			type: Object,
+			default: () => {}
+		}
+	},
+	data() {
+		return {
+			showStatus: false,
+			data: {},
+
+			checkAll: false,
+			checkedCities: ['上海', '北京'],
+			cities: cityOptions,
+			isIndeterminate: true
+		};
+	},
+	watch: {
+		show(val) {
+			this.showStatus = val;
+			if (val) {
+				this.init();
+			}
+		}
+	},
+	methods: {
+		init() {
+			this.$service.sassAuth.authList().then(res => {
+				console.log(res);
+			});
+		},
+		closeFn(done) {
+			this.$emit('update:show', false);
+			done();
+		},
+
+		handleCheckAllChange(val) {
+			this.checkedCities = val ? cityOptions : [];
+			this.isIndeterminate = false;
+		},
+		handleCheckedCitiesChange(value) {
+			let checkedCount = value.length;
+			this.checkAll = checkedCount === this.cities.length;
+			this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.role-set-wrap {
+	padding: 0 20px;
+}
+</style>

+ 37 - 1
admin-update/src/views/home.vue

@@ -93,6 +93,20 @@
 				</div>
 			</div>
 		</div>
+		<!-- 提示 -->
+		<el-dialog title="提示" :visible.sync="promptModal" width="400px">
+			<div class="prompt-wrap">
+				<div
+					class="prompt-list"
+					v-for="(item, index) in noticeData"
+					:key="index"
+					@click="noticeFn(item)"
+				>
+					<div>{{ item.title }}</div>
+					<div class="prompt-action">{{ item.action }}</div>
+				</div>
+			</div>
+		</el-dialog>
 	</div>
 </template>
 
@@ -250,7 +264,10 @@ export default {
 			// 访问统计
 			visitorData: {
 				list: {}
-			}
+			},
+			// 通知
+			promptModal: false,
+			noticeData: []
 		};
 	},
 	mounted() {
@@ -265,6 +282,10 @@ export default {
 				if (this.$util.isEmpty(res)) return false;
 				this.incomeData = res.incomeStat;
 				this.visitorData = res.visitStat;
+				this.noticeData = res.notice;
+				if (res.notice.length) {
+					this.promptModal = true;
+				}
 				setTimeout(() => {
 					this.initChart();
 				});
@@ -296,6 +317,9 @@ export default {
 		initChart() {
 			this.$refs.incomeEchart.initChart();
 			this.$refs.visitorEchart.initChart();
+		},
+		noticeFn(item) {
+			window.open(item.url);
 		}
 	}
 };
@@ -483,5 +507,17 @@ export default {
 	.sales-bottom {
 		color: green;
 	}
+	// modal
+	.prompt-wrap {
+		.prompt-list {
+			padding: 10px 0;
+			width: 100%;
+			border-bottom: 1px solid $borderColor;
+			@include disFlex(center, space-between);
+			.prompt-action {
+				color: $mainColor;
+			}
+		}
+	}
 }
 </style>

+ 11 - 3
admin-update/src/views/staff/list.vue

@@ -141,16 +141,20 @@
 			@confirm="selMemberConfirmFn"
 			@cancel="selMemberModal = false"
 		></sel-member>
+		<!-- 权限设置 -->
+		<role-set :show.sync="roleShow" />
 	</div>
 </template>
 
 <script>
 import selMember from '@/components/module/sel-member';
+import roleSet from '@/components/role-set';
 
 export default {
 	name: 'list-ad',
 	components: {
-		selMember
+		selMember,
+		roleSet
 	},
 	data() {
 		return {
@@ -179,7 +183,9 @@ export default {
 			roleList: [],
 			// 商品列表
 			selMemberModal: false,
-			memberData: {}
+			memberData: {},
+			// 权限设置
+			roleShow: false
 		};
 	},
 	methods: {
@@ -205,7 +211,9 @@ export default {
 				.catch();
 		},
 		// operate
-		authBtnFn(item) {},
+		authBtnFn(item) {
+			this.roleShow = true;
+		},
 		modifyBtnFn(item) {
 			this.getRole();
 			this.addOrModify = 2;