<path-permission>

博客内容显示为占位待翻,结合标签可知,可能是关于 Android API 相关内容等待翻译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

占位待翻
<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.dw.Dating.lua" platformBuildVersionCode="25" platformBuildVersionName="7.1.1"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="true"/> <uses-feature android:glEsVersion="0x20000"/> A <uses-permission android:name="android.permission.INTERNET"/> <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_LOGS"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.webkit.permission.PLUGIN"/> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> <uses-permission android:name="android.permission.VIBRATE"/> <meta-data android:name="android.support.VERSION" android:value="25.3.1"/> <application android:hardwareAccelerated="false" android:icon="@drawable/app_icon" android:isGame="true" android:label="@string/app_name" android:name="com.dw.Dating.wxapi.App"> <meta-data android:name="URL_VALUE" android:value="http://192.168.111.88"/> <meta-data android:name="CHANNEL" android:value="AgentID-0"/> <meta-data android:name="FW_VALUE" android:value="FW-30855784"/> <meta-data android:name="AppID" android:value="wx401c37330dd3e92e"/> <activity android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.dw.Dating.wxapi.MainActivity" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true"/> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false"/> </activity> <activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTask" android:name="com.fanwei.jubaosdk.cashier.CashierActivity" android:theme="@style/FanweiDialogActivityTheme"/> <activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:name="com.fanwei.jubaosdk.wap.WapActivity" android:screenOrientation="portrait" android:theme="@style/FanweiActivityTheme"/> <provider android:authorities="com.dw.Dating.lua.fileProvider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_fanwei"/> </provider> <activity android:name="com.pay.sdk.usage.PayActivity" android:screenOrientation="portrait"/> <activity android:name="sdk.pay.PayWebViewActivity" android:screenOrientation="portrait"/> <activity android:name="com.switfpass.pay.activity.QQWapPayWebView" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> <activity android:exported="true" android:launchMode="singleTop" android:name="com.dw.Dating.lua.wxapi.WXEntryActivity" android:theme="@android:style/Theme.NoDisplay"/> <meta-data android:name="UMENG_APPKEY" android:value="111"/> <meta-data android:name="UMENG_CHANNEL" android:value="Test"/> </application> </manifest> 在unity5.3.3使用
07-19
<body class="layui-layout-body"> <div id="LAY_app"> <div class="layui-layout layui-layout-admin"> <div class="layui-header"> <!-- 头部区域 --> <ul class="layui-nav layui-layout-left"> <li class="layui-nav-item layadmin-flexible" lay-unselect> <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩"> <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i> </a> </li> <li class="layui-nav-item layui-action" data-type="jurisdiction"> <a href="javascript:;">权限管理一</a> </li> <li class="layui-nav-item layui-action" data-type="tonpl" id="tonpl"> <a href="javascript:;">权限管理二</a> </li> </ul> </div> <!-- 侧边菜单 --> <div class="layui-side layui-side-menu"> <div class="layui-side-scroll"> <div class="layui-logo" lay-href="home/console.html"> <span>layuiAdmin</span> </div> <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu"> <li data-name="home" id="homeNav" class="layui-nav-item layui-nav-itemed" style="display: none;"> <a href="javascript:;" lay-tips="主页" lay-direction="2"> <i class="layui-icon layui-icon-home"></i> <cite>主页</cite> </a> <dl class="layui-nav-child"> <dd data-name="console" class="layui-this"> <a lay-href="home/console.html">控制台</a> </dd> <dd data-name="console"> <a lay-href="home/homepage1.html">主页一</a> </dd> <dd data-name="console"> <a lay-href="home/homepage2.html">主页二</a> </dd> </dl> </li> </ul> <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu"> <li data-name="set" id="setNav" class="layui-nav-item" style="display: none;"> <a href="javascript:;" lay-tips="设置" lay-direction="2"> <i class="layui-icon layui-icon-set"></i> <cite>设置</cite> </a> <dl class="layui-nav-child"> <dd class="layui-nav-itemed" data-name="set/systemset" id="set/systemsetNav" style="display: none;"> <a href="javascript:;">系统设置</a> <dl class="layui-nav-child"> <dd><a lay-href="set/system/website.html">网站设置</a></dd> <dd><a lay-href="set/system/email.html">邮件服务</a></dd> </dl> </dd> <dd class="layui-nav-itemed" data-name="set/myset" id="set/mysetNav" style="display: none;"> <a href="javascript:;">我的设置</a> <dl class="layui-nav-child"> <dd><a lay-href="set/user/info.html">基本资料</a></dd> <dd><a lay-href="set/user/password.html">修改密码</a></dd> </dl> </dd> </dl> </li> <li data-name="about" id="aboutNav" class="layui-nav-item" style="display: none;"> <a href="javascript:;" layadmin-event="about" lay-tips="授权" lay-direction="2"> <i class="layui-icon layui-icon-auz"></i> <cite>关于</cite> </a> </li> <li data-name="home" id="homeNav" class="layui-nav-item layui-nav-itemed" style="display: none;"> <a href="javascript:;" lay-tips="主页" lay-direction="2"> <i class="layui-icon layui-icon-home"></i> <cite>主页</cite> </a> <dl class="layui-nav-child"> <dd data-name="console" class="layui-this"> <a lay-href="home/console.html">控制台</a> </dd> <dd data-name="console"> <a lay-href="home/homepage1.html">主页一</a> </dd> <dd data-name="console"> <a lay-href="home/homepage2.html">主页二</a> </dd> </dl> </li> </ul> 根据权限管理一权,限管理二切换两组菜单
08-15
<template> <div class="app-container"> <el-table :data="rolesList" style="width: 100%; margin-top: 30px" border> <el-table-column align="center" label="收费学段" width="220"> <template slot-scope="scope"> {{ scope.row.sfxd }} </template> </el-table-column> <el-table-column align="center" label="学校" width="220"> <template slot-scope="scope"> {{ scope.row.xx }} </template> </el-table-column> <el-table-column align="center" label="类型" width="220"> <template slot-scope="scope"> {{ scope.row.lx }} </template> </el-table-column> <el-table-column align="center" label="项目名称" width="220"> <template slot-scope="scope"> {{ scope.row.xmmc }} </template> </el-table-column> <el-table-column align="center" label="项目状态" width="220"> <template slot-scope="scope"> {{ scope.row.xmzt }} </template> </el-table-column> <el-table-column align="center" label="金额(元/人)" width="220"> <template slot-scope="scope"> {{ scope.row.je }} </template> </el-table-column> <el-table-column align="center" label="状态" width="220"> <template slot-scope="scope"> {{ scope.row.zt }} </template> </el-table-column> <el-table-column align="center" label="开始时间" width="220"> <template slot-scope="scope"> {{ scope.row.kssj }} </template> </el-table-column> </el-table> <el-dialog :visible.sync="dialogVisible" :title="dialogType === 'edit' ? 'Edit Role' : 'New Role'" > <el-form :model="role" label-width="80px" label-position="left"> <el-form-item label="Name"> <el-input v-model="role.name" placeholder="Role Name" /> </el-form-item> <el-form-item label="Desc"> <el-input v-model="role.description" :autosize="{ minRows: 2, maxRows: 4 }" type="textarea" placeholder="Role Description" /> </el-form-item> <el-form-item label="Menus"> <el-tree ref="tree" :check-strictly="checkStrictly" :data="routesData" :props="defaultProps" show-checkbox node-key="path" class="permission-tree" /> </el-form-item> </el-form> <div style="text-align: right"> <el-button type="danger" @click="dialogVisible = false"> {{ $t("permission.cancel") }} </el-button> <el-button type="primary" @click="confirmRole"> {{ $t("permission.confirm") }} </el-button> </div> </el-dialog> </div> </template> <script> import path from "path"; import { deepClone } from "@/utils"; import { getRoutes, getRoles, addRole, deleteRole, updateRole, } from "@/api/role"; import i18n from "@/lang"; const defaultRole = { key: "", name: "", description: "", routes: [], }; export default { data() { return { role: Object.assign({}, defaultRole), routes: [], rolesList: [ { sfxd: "小学", xx: "中兴小学", lx: "基础", xmmc: "餐费", xmzt: "进行中", je: "20", zt: "启用", kssj: "2025-01-01", }, { sfxd: "小学", xx: "实验小学", lx: "基础", xmmc: "书本费", xmzt: "进行中", je: "360", zt: "启用", kssj: "2025-01-01", }, ], dialogVisible: false, dialogType: "new", checkStrictly: false, defaultProps: { children: "children", label: "title", }, }; }, computed: { routesData() { return this.routes; }, }, created() { // Mock: get all routes and roles list from server // this.getRoutes(); // this.getRoles(); }, methods: { async getRoutes() { const res = await getRoutes(); this.serviceRoutes = res.data; const routes = this.generateRoutes(res.data); this.routes = this.i18n(routes); }, async getRoles() { const res = await getRoles(); this.rolesList = res.data; }, i18n(routes) { const app = routes.map((route) => { route.title = i18n.t(`route.${route.title}`); if (route.children) { route.children = this.i18n(route.children); } return route; }); return app; }, // Reshape the routes structure so that it looks the same as the sidebar generateRoutes(routes, basePath = "/") { const res = []; for (let route of routes) { // skip some route if (route.hidden) { continue; } const onlyOneShowingChild = this.onlyOneShowingChild( route.children, route ); if (route.children && onlyOneShowingChild && !route.alwaysShow) { route = onlyOneShowingChild; } const data = { path: path.resolve(basePath, route.path), title: route.meta && route.meta.title, }; // recursive child routes if (route.children) { data.children = this.generateRoutes(route.children, data.path); } res.push(data); } return res; }, generateArr(routes) { let data = []; routes.forEach((route) => { data.push(route); if (route.children) { const temp = this.generateArr(route.children); if (temp.length > 0) { data = [...data, ...temp]; } } }); return data; }, handleAddRole() { this.role = Object.assign({}, defaultRole); if (this.$refs.tree) { this.$refs.tree.setCheckedNodes([]); } this.dialogType = "new"; this.dialogVisible = true; }, handleEdit(scope) { this.dialogType = "edit"; this.dialogVisible = true; this.checkStrictly = true; this.role = deepClone(scope.row); this.$nextTick(() => { const routes = this.generateRoutes(this.role.routes); this.$refs.tree.setCheckedNodes(this.generateArr(routes)); // set checked state of a node not affects its father and child nodes this.checkStrictly = false; }); }, handleDelete({ $index, row }) { this.$confirm("Confirm to remove the role?", "Warning", { confirmButtonText: "Confirm", cancelButtonText: "Cancel", type: "warning", }) .then(async () => { await deleteRole(row.key); this.rolesList.splice($index, 1); this.$message({ type: "success", message: "Delete succed!", }); }) .catch((err) => { console.error(err); }); }, generateTree(routes, basePath = "/", checkedKeys) { const res = []; for (const route of routes) { const routePath = path.resolve(basePath, route.path); // recursive child routes if (route.children) { route.children = this.generateTree( route.children, routePath, checkedKeys ); } if ( checkedKeys.includes(routePath) || (route.children && route.children.length >= 1) ) { res.push(route); } } return res; }, async confirmRole() { const isEdit = this.dialogType === "edit"; const checkedKeys = this.$refs.tree.getCheckedKeys(); this.role.routes = this.generateTree( deepClone(this.serviceRoutes), "/", checkedKeys ); if (isEdit) { await updateRole(this.role.key, this.role); for (let index = 0; index < this.rolesList.length; index++) { if (this.rolesList[index].key === this.role.key) { this.rolesList.splice(index, 1, Object.assign({}, this.role)); break; } } } else { const { data } = await addRole(this.role); this.role.key = data.key; this.rolesList.push(this.role); } const { description, key, name } = this.role; this.dialogVisible = false; this.$notify({ title: "Success", dangerouslyUseHTMLString: true, message: ` <div>Role Key: ${key}</div> <div>Role Name: ${name}</div> <div>Description: ${description}</div> `, type: "success", }); }, // reference: src/view/layout/components/Sidebar/SidebarItem.vue onlyOneShowingChild(children = [], parent) { let onlyOneChild = null; const showingChildren = children.filter((item) => !item.hidden); // When there is only one child route, the child route is displayed by default if (showingChildren.length === 1) { onlyOneChild = showingChildren[0]; onlyOneChild.path = path.resolve(parent.path, onlyOneChild.path); return onlyOneChild; } // Show parent if there are no child route to display if (showingChildren.length === 0) { onlyOneChild = { ...parent, path: "", noShowingChildren: true }; return onlyOneChild; } return false; }, }, }; </script> <style lang="scss" scoped> .app-container { .roles-table { margin-top: 30px; } .permission-tree { margin-bottom: 30px; } } </style> 这套代码也是一样 按照去前面的样式结构 加入搜索和分页功能
最新发布
08-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值