Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_app
12 files modified
2 files added
| New file |
| | |
| | | import http from '@/http/api.js' |
| | | |
| | | //保存 |
| | | export const getFuncList = (type, roleName) => { |
| | | return http.request({ |
| | | url: 'blade-doorplateAddress/doorplateAddress/getFuncList', |
| | | method: 'GET', |
| | | params: { |
| | | type, |
| | | roleName |
| | | } |
| | | }) |
| | | } |
| New file |
| | |
| | | import http from '@/http/api.js' |
| | | |
| | | //保存 |
| | | export const getLabelList = (params) => { |
| | | return http.request({ |
| | | url: 'blade-label/label/list', |
| | | method: 'GET', |
| | | params |
| | | }) |
| | | } |
| | |
| | | |
| | | export const getDetail = (params) => { |
| | | return http.request({ |
| | | url: '/api/blade-system/role/detail', |
| | | url: '/blade-system/role/detail', |
| | | method: 'GET', |
| | | params |
| | | }) |
| | |
| | | <template> |
| | | <view class="menu-box" @click="curMenuClick(curMenu)"> |
| | | <view v-if="imgShow"> |
| | | <u--image :src="curMenu.imgUrl" :width='curMenu.imgWidth || 54' :height='curMenu.imgHeight || 54' shape="circle"></u--image> |
| | | </view> |
| | | <view v-if="textShow" :style="{height: curMenu.numHeight ? curMenu.numHeight + 'px' : '56rpx'}"> |
| | | {{curMenu.num}} |
| | | </view> |
| | | <view :style="{height: curMenu.titleHeight ? curMenu.titleHeight + 'px' : '56rpx'}"> |
| | | {{curMenu.title}} |
| | | </view> |
| | | <view class="menu-box" @click="curMenuClick(curMenu)"> |
| | | <view v-if="imgShow"> |
| | | <u--image :src="curMenu.imgUrl" :width='curMenu.imgWidth || 40' :height='curMenu.imgHeight || 40' |
| | | shape="circle"></u--image> |
| | | </view> |
| | | <view v-if="textShow" :style="{height: curMenu.numHeight ? curMenu.numHeight + 'px' : '56rpx'}"> |
| | | {{curMenu.num}} |
| | | </view> |
| | | <view :style="{height: curMenu.titleHeight ? curMenu.titleHeight + 'px' : '56rpx'}"> |
| | | {{curMenu.title}} |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | return {} |
| | | } |
| | | }, |
| | | |
| | | |
| | | imgShow: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | |
| | | |
| | | textShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | }, |
| | | |
| | | |
| | | methods: { |
| | | curMenuClick(e) { |
| | | console.log('当前点击处') |
| | | |
| | | |
| | | if (e.event) { |
| | | e.event(e) |
| | | } |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | font-size: 28rpx; |
| | | |
| | | & > view { |
| | | |
| | | &>view { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | & > view:first-child { |
| | | |
| | | &>view:first-child { |
| | | flex: 1; |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | messageCount, |
| | | } from "@/api/system/message.js" |
| | | export default { |
| | | props: { |
| | | currentTab: {}, |
| | |
| | | }, |
| | | methods: { |
| | | change(e) { |
| | | this.$store.commit("SET_TABBAT_INDEX", e) |
| | | this.$emit("change", this.curTabList[e].url) |
| | | let params = { |
| | | recipient: this.userInfo.user_id, |
| | | status: 0 |
| | | } |
| | | messageCount(params).then(res => { |
| | | this.$u.func.updateTabbar(res.data) |
| | | }) |
| | | }, |
| | | |
| | | } |
| | |
| | | } |
| | | }, |
| | | |
| | | created() { |
| | | this.getHeader() |
| | | }, |
| | | |
| | | methods: { |
| | | //获取头部 |
| | | getHeader() { |
| | |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | //消息详情 |
| | | //切换角色 |
| | | { |
| | | "path": "role/index", |
| | | "style": { |
| | | "navigationBarTitleText": "切换角色", |
| | | "enablePullDownRefresh": false |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#4586fe", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | } |
| | | ] |
| | |
| | | <view class="main-select" @click="selectBoxShow = !selectBoxShow"> |
| | | <u-icon name="map" color="#fff"></u-icon> |
| | | <view> |
| | | 当前场所:暂无绑定场所信息 |
| | | 当前场所:{{curSelectSite.name?curSelectSite.name:'暂无绑定场所信息'}} |
| | | </view> |
| | | |
| | | <u-picker title="场所" :show="selectBoxShow" ref="uPicker" :columns="columns" @confirm="confirm" |
| | | @change="changeHandler"></u-picker> |
| | | <u-picker title="场所" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns" |
| | | @confirm="confirm" @change="changeHandler"></u-picker> |
| | | </view> |
| | | |
| | | <view class="main-btn"> |
| | |
| | | </view> |
| | | |
| | | <view class="main-phone-house"> |
| | | <view class="phone-box"> |
| | | <view v-if="gridDataList.length>0" class="phone-box"> |
| | | <grid-menu :gridData='item' v-for="(item, index) in gridDataList" :key='index'></grid-menu> |
| | | </view> |
| | | |
| | | <view class="house-box"> |
| | | <view v-if="hasMenu('楼盘表').length>0" class="house-box"> |
| | | <box-title :title="'楼盘表'"></box-title> |
| | | <view class="content"> |
| | | <grid-menu :gridData='item' v-for="(item, index) in houseDataList" :key='index'></grid-menu> |
| | |
| | | </view> |
| | | |
| | | <view class="main-bt pb-40"> |
| | | <view class="mt-20"> |
| | | <view v-if="liveList.length>0" class="mt-20"> |
| | | <box-title :title="'生活'"> |
| | | <template slot="titleMore"> |
| | | <view style="color: red;">titleMore</view> |
| | | </template> |
| | | </box-title> |
| | | |
| | | <view class="mt-20 b-c-w"> |
| | | <menu-list :menuData="liveList"></menu-list> |
| | | <view class="mt-20"> |
| | | <view class="mt-20 b-c-w"> |
| | | <menu-list :menuData="liveList"></menu-list> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="mt-20"> |
| | | <view v-if="jobList.length>0" class="mt-20"> |
| | | <box-title :title="'工作台'"></box-title> |
| | | |
| | | <view class="mt-20 b-c-w"> |
| | |
| | | </view> |
| | | </view> |
| | | |
| | | <tabBar @change='change' :currentTab="0" :tabList="tabList"></tabBar> |
| | | <tabBar @change='change' :currentTab="0"></tabBar> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | import curMenu from "@/components/curMenu/index.vue"; |
| | | import menuList from "@/components/menuList/index.vue"; |
| | | import gridMenu from "@/components/gridMenu/index.vue"; |
| | | import { |
| | | getFuncList |
| | | } from "@/api/doorplateAddress/doorplateAddress"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | |
| | | data() { |
| | | return { |
| | | tabList: uni.getStorageSync("tabBarList") || [], |
| | | menuList: [], |
| | | selectRole: {}, |
| | | selectBoxShow: false, |
| | | columns: [ |
| | | ['中国', '美国'] |
| | | ], |
| | | siteColumns: [], |
| | | curSelectSite: {}, |
| | | columnData: [], |
| | | btnList: [{ |
| | | imgUrl: '/static/img/sys.png', |
| | | title: '扫一扫' |
| | | title: '扫一扫', |
| | | imgWidth: 54, |
| | | imgHeight: 54 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/bs.png', |
| | | title: '报事' |
| | | title: '报事', |
| | | imgWidth: 54, |
| | | imgHeight: 54 |
| | | } |
| | | ], |
| | | gridDataList: [{ |
| | | title: '物业', |
| | | data: '无数据', |
| | | phone: '无' |
| | | }, |
| | | { |
| | | title: '综治网格', |
| | | data: '无数据', |
| | | phone: '无' |
| | | }, |
| | | { |
| | | title: '公安网格', |
| | | data: '无数据', |
| | | phone: '无' |
| | | } |
| | | ], |
| | | gridDataList: [], |
| | | |
| | | houseDataList: [ |
| | | { |
| | | houseDataList: [{ |
| | | title: '万达广场', |
| | | useSlot: true |
| | | }, |
| | |
| | | } |
| | | ], |
| | | |
| | | liveList: [{ |
| | | imgUrl: '/static/img/ggbs.png', |
| | | title: '公共报事', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/bmrx.png', |
| | | title: '便民热线', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/zhsb.png', |
| | | title: '租户上报', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | } |
| | | ], |
| | | liveList: [], |
| | | |
| | | jobList: [{ |
| | | imgUrl: '/static/img/ggbs.png', |
| | | title: '场所记录', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/bmrx.png', |
| | | title: '场所采集', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/zhsb.png', |
| | | title: '出租房管理', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/zhsb.png', |
| | | title: '标签事件', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/zhsb.png', |
| | | title: '场所维护', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/zhsb.png', |
| | | title: '报事审核', |
| | | imgWidth: 40, |
| | | imgHeight: 40 |
| | | } |
| | | ], |
| | | jobList: [], |
| | | |
| | | taskTypeList: [{ |
| | | title: '一次性', |
| | |
| | | }, |
| | | |
| | | onShow() { |
| | | uni.hideTabBar() |
| | | this.init() |
| | | }, |
| | | |
| | | computed: { |
| | | hasMenu() { |
| | | return (name) => { |
| | | let resultArr = [] |
| | | resultArr = this.getMenu(name, this.menuList, resultArr) |
| | | if (resultArr.length > 0) { |
| | | return resultArr |
| | | } else { |
| | | return [] |
| | | } |
| | | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | | //初始化 |
| | | init() { |
| | | this.curSelectSite = {} |
| | | this.menuList = uni.getStorageSync("menu") |
| | | this.selectRole = uni.getStorageSync("activeRole") |
| | | this.getMenuList() |
| | | this.getSiteList() |
| | | uni.hideTabBar() |
| | | }, |
| | | //获取场所列表 |
| | | async getSiteList() { |
| | | console.log(this.selectRole) |
| | | let type = null |
| | | let roleName = this.selectRole.roleName |
| | | console.log("roleName", roleName) |
| | | if (roleName == '网格员' || roleName == '系统管理员') { |
| | | type = 1 |
| | | } else if (roleName == '场所负责人') { |
| | | type = 2 |
| | | } else if (roleName == '居民') { |
| | | type = 3 |
| | | } |
| | | |
| | | const res = await getFuncList(type, roleName) |
| | | console.log(res, "-----------") |
| | | let data = res.data |
| | | this.siteColumns = [] |
| | | |
| | | this.buildSiteColumn(data, 0) |
| | | console.log(this.siteColumns) |
| | | |
| | | }, |
| | | |
| | | buildSiteColumn(dataList, index) { |
| | | if (dataList.length > 0) { |
| | | this.siteColumns[index] = dataList |
| | | if (dataList[0].children && dataList[0].children.length > 0) { |
| | | this.buildSiteColumn(dataList[0].children, index + 1) |
| | | } |
| | | } |
| | | }, |
| | | |
| | | //获取首页菜单 |
| | | getMenuList() { |
| | | console.log("当前角色菜单", this.menuList) |
| | | this.getPhoneList() |
| | | this.getLiveList() |
| | | this.getWorkbenchList() |
| | | }, |
| | | getPhoneList() { |
| | | this.gridDataList = [] |
| | | const resultArr = this.hasMenu('快捷拨号') |
| | | if (resultArr.length == 0) { |
| | | return |
| | | } |
| | | |
| | | const topMenu = resultArr[0] |
| | | |
| | | topMenu.children.forEach(menu => { |
| | | this.gridDataList.push({ |
| | | title: menu.name, |
| | | data: "无数据", |
| | | phone: "无" |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | //获取生活菜单 |
| | | getLiveList() { |
| | | this.liveList = [] |
| | | const resultArr = this.hasMenu('生活') |
| | | if (resultArr.length == 0) { |
| | | return |
| | | } |
| | | |
| | | const topMenu = resultArr[0] |
| | | |
| | | topMenu.children.forEach(menu => { |
| | | this.liveList.push({ |
| | | imgUrl: menu.source, |
| | | title: menu.name, |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | //获取工作台菜单 |
| | | getWorkbenchList() { |
| | | this.jobList = [] |
| | | const resultArr = this.hasMenu('工作台') |
| | | if (resultArr.length == 0) { |
| | | return |
| | | } |
| | | |
| | | const topMenu = resultArr[0] |
| | | |
| | | topMenu.children.forEach(menu => { |
| | | this.jobList.push({ |
| | | imgUrl: menu.source, |
| | | title: menu.name, |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | getMenu(menuName, menuList, resultArr) { |
| | | // console.log(menuList, menuName) |
| | | for (var i = 0; i < menuList.length; i++) { |
| | | if (menuList[i].name == menuName) { |
| | | resultArr.push(menuList[i]) |
| | | } else { |
| | | if (menuList[i].children && menuList[i].children.length) { |
| | | this.getMenu(menuName, menuList[i].children, resultArr); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return resultArr |
| | | |
| | | }, |
| | | |
| | | change(index) { |
| | | let url = index |
| | | this.$u.func.globalNavigator(url, "switchTab") |
| | |
| | | // 回调参数为包含columnIndex、value、values |
| | | confirm(e) { |
| | | console.log('confirm', e) |
| | | this.curSelectSite = e.value[e.value.length - 1] |
| | | this.selectBoxShow = false |
| | | } |
| | | } |
| | |
| | | .content { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | |
| | | &>view { |
| | | margin: 0 16rpx; |
| | | margin-top: 20rpx; |
| | |
| | | isLogin: lifeData.isLogin ? lifeData.isLogin : false, |
| | | // 如果version无需保存到本地永久存储,无需lifeData.version方式 |
| | | version: '1.0.0', |
| | | activeRoleId: "", |
| | | activeRole: {}, |
| | | // tabBarList: [], |
| | | adCodeBase: {}, |
| | | // tabbarIndex: uni.getStorageSync("tabbarIndex") || 0, |
| | |
| | | // // console.log(uni.getStorageSync('tabBarList')) |
| | | // }, |
| | | //设置当前激活的角色 |
| | | setActiveRoleId(state, roleId) { |
| | | state.activeRoleId = roleId |
| | | uni.setStorageSync('activeRoleId', roleId) |
| | | setActiveRole(state, role) { |
| | | state.activeRole = role |
| | | uni.setStorageSync('activeRole', role) |
| | | }, |
| | | |
| | | SET_MENU(state, menuList) { |
| | |
| | | <template> |
| | | <view class="role-container"> |
| | | <view @click="activeRole(item)" v-for="(item, index) in roleData" :key="index" :class="item.active?'active':''"> |
| | | <view @click="enableRole(item)" v-for="(item, index) in roleData" :key="index" :class="item.active?'active':''"> |
| | | <view class="l"> |
| | | <u-icon :name="item.iconName"></u-icon> |
| | | <view class="role-name"> |
| | |
| | | methods: { |
| | | |
| | | //启用角色 |
| | | activeRole(item) { |
| | | enableRole(item) { |
| | | this.roleData.forEach(role => { |
| | | if (role.id == item.id) { |
| | | role.active = true |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.selectRole = uni.getStorageSync("activeRole") |
| | | this.getUserRole() |
| | | }, |
| | | |
| | |
| | | let data = res.data |
| | | console.log(data) |
| | | data.forEach(e => { |
| | | |
| | | this.roleData.push({ |
| | | id: e.id, |
| | | iconName: 'account-fill', |
| | | roleName: e.roleName, |
| | | active: e.id == this.activeRoleId ? true : false |
| | | active: e.id == this.selectRole.id ? true : false |
| | | }) |
| | | }) |
| | | |
| | |
| | | |
| | | select(item) { |
| | | this.selectRole = item |
| | | console.log("当前选中角色", this.selectRole) |
| | | }, |
| | | |
| | | async submit() { |
| | | const that = this |
| | | |
| | | //保存当前激活的角色 |
| | | store.commit("setActiveRoleId", this.selectRole.id) |
| | | store.commit("setActiveRole", this.selectRole) |
| | | |
| | | //获取角色菜单 |
| | | const res = await dynamicMenu(this.selectRole.id) |
| | | |
| | | //把菜单存入store中 |
| | | let data = res.data |
| | | const appMenu = data.filter(e => e.name == 'app')[0] |
| | | const appMenu = data.filter(e => e.name == 'app')[0].children |
| | | console.log("菜单:", appMenu) |
| | | store.commit("SET_MENU", appMenu) |
| | | |
| | | |
| | | |
| | | uni.showToast({ |
| | |
| | | <template> |
| | | <view class="line-item-container" style="margin-bottom: 1px;"> |
| | | <view class="line-item-container" style="margin-bottom: 20rpx;"> |
| | | |
| | | <view v-for="(item, index) in dataInfo" :key="index" class="line-item"> |
| | | <view class="l"> |
| | |
| | | <box-title title="基础信息"></box-title> |
| | | </view> |
| | | <view class="item"> |
| | | <u-form-item class="form-item" labelWidth="100" label="场所名称:" required prop="location"> |
| | | <u--input border="none" v-model="form.location" placeholder="请输入当前位置"> |
| | | |
| | | <!-- <u-form-item class="form-item" labelWidth="100" label="场所地址:" required prop="location"> |
| | | <u--input border="none" v-model="form.location" placeholder="请选择场所地址"> |
| | | </u--input> |
| | | </u-form-item> --> |
| | | |
| | | <u-form-item class="form-item" labelWidth="100" label="场所名称:" required prop="placeName"> |
| | | <u--input border="none" v-model="form.placeName" placeholder="请输入当前位置"> |
| | | </u--input> |
| | | </u-form-item> |
| | | |
| | | <u-form-item @click="popup" class="form-item" labelWidth="100" label="标签:" required prop="location"> |
| | | <u-form-item @click="popup" class="form-item" labelWidth="100" label="标签:" required prop="label"> |
| | | <u--input border="none" placeholder="请选择地址标签"> |
| | | </u--input> |
| | | <u-icon slot="right" name="arrow-right"></u-icon> |
| | | </u-form-item> |
| | | <view v-if="showLabelList.length>0" class="label"> |
| | | <view v-for="(item,index) in showLabelList" :key="index" class="activeLabel"> |
| | | <u-tag size="mini" :text="item.text"></u-tag> |
| | | <u-tag closable :show="!item.isClose" size="mini" @close="delTag(item)" |
| | | :text="item.text"></u-tag> |
| | | </view> |
| | | </view> |
| | | |
| | | <u-form-item class="form-item" labelWidth="100" label="备注:" required prop="location"> |
| | | <u-form-item class="form-item" labelWidth="100" label="备注:" prop="location"> |
| | | <u--input border="none" v-model="form.remark" placeholder="请输入备注"> |
| | | </u--input> |
| | | </u-form-item> |
| | | |
| | | <u-form-item class="form-item" labelWidth="100" label="经纬度:" required prop="location"> |
| | | <u-form-item class="form-item" labelWidth="100" label="经纬度:" prop="location"> |
| | | <u--input border="none" v-model="form.jwd" placeholder="请输入经纬度"> |
| | | </u--input> |
| | | </u-form-item> |
| | |
| | | </view> |
| | | |
| | | <view class="item"> |
| | | <u-form-item class="form-item" labelWidth="100" label="场所负责人:" required prop="location"> |
| | | <u--input border="none" v-model="form.charge" placeholder="请输入场所负责人"> |
| | | <u-form-item class="form-item" labelWidth="100" label="场所负责人:" prop="principal"> |
| | | <u--input border="none" v-model="form.principal" placeholder="请输入场所负责人"> |
| | | </u--input> |
| | | </u-form-item> |
| | | <u-form-item class="form-item" labelWidth="100" label="手机号:" required prop="location"> |
| | | <u-form-item class="form-item" labelWidth="100" label="手机号:" prop="location"> |
| | | <u--input border="none" v-model="form.phone" placeholder="请输入手机号"> |
| | | </u--input> |
| | | </u-form-item> |
| | |
| | | </u-form> |
| | | |
| | | <view class="box-title"> |
| | | <view> |
| | | <box-title title="综治网格"></box-title> |
| | | </view> |
| | | <box-title title="综治网格"> |
| | | <template slot="titleMore"> |
| | | <view class="title-more"> |
| | | <view class="red item"></view> |
| | | <view class="orange item">85.9</view> |
| | | <view class="green item"></view> |
| | | </view> |
| | | </template> |
| | | </box-title> |
| | | </view> |
| | | |
| | | <view class="item"> |
| | | <lineItem :dataInfo="dataInfo"> |
| | | <lineItem :dataInfo="comprehensiveData.basic"> |
| | | </lineItem> |
| | | |
| | | <lineItem :dataInfo="dataInfo1"> |
| | | <lineItem :dataInfo="comprehensiveData.scene"> |
| | | <template v-slot:pic="{scope}"> |
| | | {{scope.value}} |
| | | </template> |
| | | </lineItem> |
| | | </view> |
| | | |
| | | <view class="box-title"> |
| | | <box-title title="公安网格"> |
| | | <template slot="titleMore"> |
| | | <view class="title-more"> |
| | | <view class="red item"></view> |
| | | <view class="orange item">85.9</view> |
| | | <view class="green item"></view> |
| | | </view> |
| | | </template></box-title> |
| | | </view> |
| | | |
| | | <view class="item"> |
| | | <lineItem :dataInfo="comprehensiveData.basic"> |
| | | </lineItem> |
| | | |
| | | <lineItem :dataInfo="comprehensiveData.scene"> |
| | | <template v-slot:pic="{scope}"> |
| | | {{scope.value}} |
| | | </template> |
| | |
| | | </view> |
| | | |
| | | |
| | | <view class="bottom"> |
| | | <view class="btn"> |
| | | <u-button @click="addRent" type="primary" text="提交"></u-button> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | <uni-popup class="citys_win popup_win" ref="uniPopup" type="bottom"> |
| | | <wyh-tree-select :items="items" title="标签选择" :showNav="true" defaultActiveColor="#4586fe" |
| | | <wyh-tree-select :items="labelList" title="标签选择" :showNav="true" defaultActiveColor="#4586fe" |
| | | :activeIds="activeIds" @clickItem="labelClick" :showCancel="false" :showConfirm="false"> |
| | | </wyh-tree-select> |
| | | </uni-popup> |
| | |
| | | <script> |
| | | import uploadMixin from "@/mixin/uploadMixin"; |
| | | import lineItem from "@/subPackage/workbench/components/lineItem.vue" |
| | | import { |
| | | getLabelList |
| | | } from "@/api/label/label"; |
| | | export default { |
| | | mixins: [uploadMixin], |
| | | components: { |
| | |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | rules: {}, |
| | | rules: { |
| | | 'userInfo.name': { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请填写姓名', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | }, |
| | | |
| | | items: [{ |
| | | labelList: [{ |
| | | text: '全部标签', |
| | | children: [{ |
| | | text: '餐馆', |
| | | id: 1, |
| | | }, |
| | | { |
| | | text: '旅馆、招待所', |
| | | id: 2, |
| | | }, { |
| | | text: '居民住宿', |
| | | id: 3 |
| | | } |
| | | ], |
| | | children: [], |
| | | dot: false |
| | | }, ], |
| | | |
| | | dataInfo: [{ |
| | | label: "社区名称", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "网格名称", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "网格员", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | value: "暂无数据" |
| | | } |
| | | ], |
| | | |
| | | dataInfo1: [{ |
| | | label: "场所照片", |
| | | value: "", |
| | | useSlot: "pic", |
| | | }, |
| | | { |
| | | label: "采集人", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "采集时间", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "场所负责人", |
| | | value: "未完善", |
| | | }, |
| | | { |
| | | label: "采集人", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "采集时间", |
| | | value: "未完善", |
| | | } |
| | | ], |
| | | comprehensiveData: { |
| | | basic: [{ |
| | | label: "社区名称", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "网格名称", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "网格员", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | value: "暂无数据" |
| | | } |
| | | ], |
| | | scene: [{ |
| | | label: "场所照片", |
| | | value: "", |
| | | useSlot: "pic", |
| | | }, |
| | | { |
| | | label: "采集人", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "采集时间", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "场所负责人", |
| | | value: "未完善", |
| | | }, |
| | | { |
| | | label: "采集人", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "采集时间", |
| | | value: "未完善", |
| | | }, |
| | | { |
| | | label: "历史事件", |
| | | value: "未完善", |
| | | } |
| | | ], |
| | | }, |
| | | publicData: { |
| | | basic: [{ |
| | | label: "公安局", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "派出所", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "辖区民警", |
| | | value: "暂无数据" |
| | | }, |
| | | { |
| | | label: "联系电话", |
| | | value: "暂无数据" |
| | | } |
| | | ], |
| | | scene: [{ |
| | | label: "消防照片", |
| | | value: "", |
| | | useSlot: "pic", |
| | | }, |
| | | { |
| | | label: "采集人", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "采集时间", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "消防负责人", |
| | | value: "未完善", |
| | | }, |
| | | { |
| | | label: "采集人", |
| | | value: "未完善" |
| | | }, |
| | | { |
| | | label: "采集时间", |
| | | value: "未完善", |
| | | }, |
| | | { |
| | | label: "历史事件", |
| | | value: "未完善", |
| | | } |
| | | ], |
| | | }, |
| | | |
| | | activeIds: [], |
| | | showLabelList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | |
| | | }, |
| | |
| | | |
| | | }, |
| | | onShow() { |
| | | |
| | | this.getLabel() |
| | | }, |
| | | methods: { |
| | | //弹出层打开 |
| | |
| | | this.$refs.uniPopup.open() |
| | | }, |
| | | |
| | | getLabel() { |
| | | getLabelList({ |
| | | size: -1 |
| | | }).then(res => { |
| | | let data = res.data.records |
| | | data.sort((a, b) => a.sort - b.sort) |
| | | |
| | | data.forEach(label => { |
| | | this.labelList[0].children.push({ |
| | | id: label.id, |
| | | text: label.labelName |
| | | }) |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | labelClick(item) { |
| | | |
| | | //判断label是否已在 |
| | | const label = this.showLabelList.find(e => e.id == item.id) |
| | | |
| | | if (label) { |
| | | //在,去掉 |
| | | this.showLabelList = this.showLabelList.filter(e => e.id != label.id) |
| | | this.activeIds = this.activeIds.filter(e => id != label.id) |
| | | this.activeIds = this.activeIds.filter(e => e != label.id) |
| | | } else { |
| | | //不在,添加 |
| | | item.isClose = false |
| | | this.showLabelList.push(item) |
| | | this.activeIds.push(item.id) |
| | | } |
| | | |
| | | this.showLabelList.sort((a, b) => a.id - b.id) |
| | | this.showLabelList.sort((a, b) => a.sort - b.sort) |
| | | |
| | | }, |
| | | delTag(label) { |
| | | label.isClose = true |
| | | this.showLabelList = this.showLabelList.filter(e => e.id != label.id) |
| | | this.activeIds = this.activeIds.filter(e => e != label.id) |
| | | |
| | | } |
| | | } |
| | |
| | | .container { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | // height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #F9F9FA; |
| | | |
| | | .box-title { |
| | | padding: 10px 0; |
| | | |
| | | .title-more { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 100%; |
| | | |
| | | .item { |
| | | width: 50rpx; |
| | | height: 40rpx; |
| | | color: #ffffff; |
| | | padding: 6rpx; |
| | | font-size: 2rpx; |
| | | text-align: center; |
| | | line-height: 20px; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | .item { |
| | |
| | | padding: 10rpx 30rpx; |
| | | display: flex; |
| | | background-color: #ffffff; |
| | | flex-wrap: wrap; |
| | | |
| | | .activeLabel { |
| | | // width: 80rpx; |
| | | margin-left: 10rpx; |
| | | margin-top: 10rpx |
| | | } |
| | | } |
| | | |
| | |
| | | background-color: #ffffff; |
| | | padding: 40rpx 30rpx; |
| | | } |
| | | |
| | | .bottom { |
| | | padding: 20rpx; |
| | | background-color: #ffffff; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | |
| | | .btn { |
| | | width: calc(100% - 40rpx); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .red { |
| | | background-color: red; |
| | | border-radius: 10rpx 0rpx 0rpx 10rpx; |
| | | } |
| | | |
| | | .orange { |
| | | background-color: orange; |
| | | } |
| | | |
| | | .green { |
| | | background-color: green; |
| | | border-radius: 0rpx 10rpx 10rpx 0rpx; |
| | | } |
| | | </style> |
| | |
| | | import store from "@/store/index.js" |
| | | import { |
| | | dynamicMenu |
| | | dynamicMenu, |
| | | getDetail |
| | | } from "@/api/system/role.js" |
| | | import { |
| | | logAdd |
| | |
| | | const install = (Vue, vm) => { |
| | | |
| | | // 登录操作 1 |
| | | const login = (userInfo) => { |
| | | const login = async (userInfo) => { |
| | | |
| | | vm.$u.vuex('userInfo', userInfo) |
| | | vm.$u.vuex('accessToken', userInfo.access_token) |
| | | vm.$u.vuex('isLogin', true) |
| | | |
| | | let activeRoleId = userInfo.role_id.split(",")[0] |
| | | console.log("当前激活角色的id:", activeRoleId) |
| | | |
| | | //添加当前激活的roleId(默认取第一个) |
| | | vm.$u.vuex('activeRoleId', activeRoleId) |
| | | const resDetail = await getDetail({ |
| | | id: activeRoleId |
| | | }) |
| | | console.log("当前激活角色的id:", resDetail.data) |
| | | //添加当前激活的角色(默认取第一个) |
| | | store.commit('setActiveRole', resDetail.data) |
| | | |
| | | //获取角色菜单 |
| | | dynamicMenu(activeRoleId).then(res => { |
| | | let data = res.data |
| | | let appMenu = data.filter(e => e.name == 'app')[0] |
| | | console.log("当前角色菜单:", appMenu) |
| | | vm.$u.vuex('menu', appMenu) |
| | | const { |
| | | data |
| | | } = await dynamicMenu(activeRoleId) |
| | | |
| | | //跳转到首页 |
| | | uni.switchTab({ |
| | | url: '/pages/home/index' |
| | | }) |
| | | let appMenu = data.filter(e => e.name == 'app')[0].children |
| | | console.log("当前角色菜单:", appMenu) |
| | | store.commit('SET_MENU', appMenu) |
| | | |
| | | //跳转到首页 |
| | | uni.switchTab({ |
| | | url: '/pages/home/index' |
| | | }) |
| | | } |
| | | |