feat: 权限标识

master
李小林 7 months ago
parent be5dd88986
commit 951d92e3be
  1. 4
      src/views/family/operate/order/components/ModifyOrder.vue
  2. 15
      src/views/family/operate/order/components/OrderInfoEdit.vue
  3. 1
      src/views/family/operate/order/index.vue
  4. 3
      src/views/family/operate/remote-operation/components/DeviceLinkInfo.vue
  5. 5
      src/views/family/operate/remote-operation/components/DeviceOperateLog.vue
  6. 80
      src/views/family/operate/remote-operation/components/DeviceTaskTable.vue
  7. 61
      src/views/family/operate/remote-operation/components/RemoteOperateInfo.vue
  8. 7
      src/views/family/operate/remote-operation/components/ServiceParameter.vue
  9. 3
      src/views/resources/customer/components/AddCustom.vue
  10. 7
      src/views/resources/customer/index.vue
  11. 9
      src/views/resources/device-type/components/DeviceTypeToVer.vue
  12. 27
      src/views/resources/device-type/components/DeviceTypeVersionEdit.vue
  13. 14
      src/views/resources/device-type/index.vue
  14. 12
      src/views/resources/equipment/components/EquipmentEdit.vue
  15. 8
      src/views/resources/equipment/index.vue
  16. 21
      src/views/resources/operate-type/index.vue
  17. 9
      src/views/resources/service/index.vue
  18. 10
      src/views/resources/tr069/components/BindingService.vue
  19. 6
      src/views/resources/tr069/components/Tr069DevTypeSoftVerList.vue
  20. 17
      src/views/resources/tr069/components/Tr069Service.vue
  21. 24
      src/views/resources/tr069/index.vue
  22. 1
      src/views/system/user/index.vue

@ -20,7 +20,9 @@
@confirm="submitForm(ruleFormRef)"
>
<template #reference>
<el-button type="primary">保存</el-button>
<el-button type="primary" v-hasPerm="['order:detail:update']"
>保存</el-button
>
</template>
</el-popconfirm>
</template>

@ -12,7 +12,9 @@
@confirm="save"
>
<template #reference>
<el-button type="primary">保存</el-button>
<el-button type="primary" v-hasPerm="['order:detail:update:status']"
>保存</el-button
>
</template>
</el-popconfirm>
<el-popconfirm
@ -29,9 +31,14 @@
</template>
</el-popconfirm>
<el-button type="primary" @click="skipModifyOrder">修改</el-button>
<el-button type="primary" @click="skipOperate">设备操作维护</el-button>
<el-button type="primary" @click="openOrderLog">工单日志</el-button>
<el-button
type="primary"
@click="skipModifyOrder"
v-hasPerm="['order:detail:update']"
>修改</el-button
>
<el-button type="primary" @click="skipOperate" v-hasPerm="['order:detail:operate:maintain']">设备操作维护</el-button>
<el-button type="primary" @click="openOrderLog" v-hasPerm="['order:detail:log']">工单日志</el-button>
</div>
<el-card shadow="never" v-loading="loading">
<el-scrollbar height="500">

@ -45,6 +45,7 @@
<el-button
type="primary"
style="margin-right: 10px"
v-hasPerm="['order:index:merge']"
@click="openMergerOrder"
>合并工单
</el-button>

@ -7,6 +7,7 @@
type="primary"
:disabled="linkFlag"
:icon="Refresh"
v-hasPerm="['remote:detail:device:link']"
@click="loadRemoteDeviceLinkInfo"
>获取设备链路信息</el-button
>
@ -14,12 +15,14 @@
<el-button
type="primary"
:icon="Refresh"
v-hasPerm="['remote:detail:fttr:primary']"
@click="loadRemoteFTTRPrimaryGateway"
>刷新设备主网关信息</el-button
>
<el-button
type="primary"
:icon="Refresh"
v-hasPerm="['remote:detail:fttr:sub']"
@click="loadRemoteFTTRSubGateway"
>刷新设备子网关信息</el-button
>

@ -9,6 +9,9 @@
>设备日志信息列表</span
>
</div>
<div>
<el-button type="primary" :icon="Refresh" @click="getData">刷新</el-button>
</div>
</div>
</template>
<div class="any-table">
@ -81,7 +84,7 @@
<script setup lang="ts">
import { DeviceLogVO } from "@/api/operate-log/types";
import { operateLogPage } from "@/api/operate-log";
import { Grid } from "@element-plus/icons-vue";
import { Grid, Refresh } from "@element-plus/icons-vue";
const route = useRoute();
let devId: number = parseInt(<string>route.params.devId);

@ -1,38 +1,60 @@
<template>
<div class="app-container">
<div class="any-table">
<el-table :data="tableData" v-loading="loading" max-height="500">
<el-table-column label="任务编号" prop="operTaskId" align="center">
<template #default="scope">
<el-button type="primary" link>{{
scope.row.operTaskId
}}</el-button>
</template>
</el-table-column>
<el-table-column label="AD编号" prop="devAdNo" align="center" />
<el-table-column label="任务描述" prop="operTaskDesc" align="center" />
<el-table-column label="操作者" prop="userName" align="center" />
<el-table-column
label="创建时间"
prop="operTaskCreateTime"
align="center"
<el-card shadow="never">
<template #header>
<div class="flex justify-between">
<div style="display: flex; align-items: center">
<el-icon size="15"><Grid /></el-icon>&nbsp;<span
style="font-weight: 700; font-size: 14px; line-height: 16px"
>远程操作任务列表</span
>
</div>
<div>
<el-button type="primary" :icon="Refresh" @click="getData"
>刷新</el-button
>
</div>
</div>
</template>
<div class="any-table">
<el-table :data="tableData" v-loading="loading" max-height="500">
<el-table-column label="任务编号" prop="operTaskId" align="center">
<template #default="scope">
<el-button type="primary" link>{{
scope.row.operTaskId
}}</el-button>
</template>
</el-table-column>
<el-table-column label="AD编号" prop="devAdNo" align="center" />
<el-table-column
label="任务描述"
prop="operTaskDesc"
align="center"
/>
<el-table-column label="操作者" prop="userName" align="center" />
<el-table-column
label="创建时间"
prop="operTaskCreateTime"
align="center"
/>
<el-table-column label="结果" prop="resultState" align="center" />
</el-table>
<pagination
v-if="total > 0"
v-model:total="total"
v-model:page="queryForm.pageNum"
v-model:limit="queryForm.pageSize"
@pagination="getData"
/>
<el-table-column label="结果" prop="resultState" align="center" />
</el-table>
<pagination
v-if="total > 0"
v-model:total="total"
v-model:page="queryForm.pageNum"
v-model:limit="queryForm.pageSize"
@pagination="getData"
/>
</div>
</div>
</el-card>
</div>
</template>
<script setup lang="ts">
import { OperateTask2TableVO } from "@/api/operate-task2/types";
import { operateTask2Page } from "@/api/operate-task2";
import { Grid, Refresh } from "@element-plus/icons-vue";
const route = useRoute();
const router = useRouter();
let devId: number = parseInt(<string>route.params.devId);
@ -56,4 +78,8 @@ onMounted(() => {
});
</script>
<style scoped></style>
<style scoped>
:deep(.el-card__body) {
padding: 10px 0 0 0;
}
</style>

@ -29,7 +29,12 @@
title="确定解绑逻辑ID吗?"
>
<template #reference>
<el-button type="primary" class="mr-3">解绑逻辑ID</el-button>
<el-button
type="primary"
v-hasPerm="['remote:detail:unbinding:logicId']"
class="mr-3"
>解绑逻辑ID</el-button
>
</template>
</el-popconfirm>
</template>
@ -106,6 +111,7 @@
<el-button
v-loading="pwdLoading"
type="primary"
v-hasPerm="['remote:detail:account:pwd']"
link
@click="setAccountPwd"
>
@ -214,42 +220,65 @@
>
<div class="flex justify-center">
<remote-operate-list
class="mr-2"
:pppoe="remote.devPppoe"
:dev-id="devId"
:type-and-ver-id="typeAndVerId"
/>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipDevOrder"
<el-button
type="primary"
link
@click="skipDevOrder"
v-hasPerm="['remote:detail:device:order']"
>设备工单</el-button
>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipDevTask2"
<el-button
type="primary"
link
@click="skipDevTask2"
v-hasPerm="['remote:detail:task:list']"
>设备任务列表</el-button
>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipProfiles"
<el-button
type="primary"
link
@click="skipProfiles"
v-hasPerm="['remote:detail:profile']"
>终端配置文件</el-button
>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipTerminalLogFiles"
<el-button
type="primary"
link
@click="skipTerminalLogFiles"
v-hasPerm="['remote:detail:terminal:log']"
>终端日志文件</el-button
>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipDeviceOperateLog"
<el-button
type="primary"
link
@click="skipDeviceOperateLog"
v-hasPerm="['remote:detail:operate:log']"
>设备操作日志</el-button
>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipSoapPackageLog"
<el-button
type="primary"
link
@click="skipSoapPackageLog"
v-hasPerm="['remote:detail:soap:log']"
>SOAP包日志</el-button
>
<el-divider direction="vertical" />
<el-button type="primary" link @click="skipDevTypeVerLog"
<el-button
type="primary"
link
@click="skipDevTypeVerLog"
v-hasPerm="['remote:detail:interface:info']"
>软件版本对外接口调用信息</el-button
>
</div>

@ -8,9 +8,14 @@
@click="compareParameter"
plain
:disabled="disableFlag"
v-hasPerm="['remote:detail:service:compare']"
>业务参数对照</el-button
>
<el-button type="primary" @click="resetService" plain
<el-button
type="primary"
@click="resetService"
plain
v-hasPerm="['remote:detail:service:reset']"
>重置业务</el-button
>
</div>

@ -598,4 +598,7 @@ onMounted(() => {
:deep(.my-label) {
background: var(--el-color-white) !important;
}
:deep(.el-card__body) {
padding: 10px 5px;
}
</style>

@ -58,7 +58,11 @@
<el-card shadow="never">
<template #header>
<div style="display: flex; justify-content: flex-end">
<el-button type="primary" :icon="Plus" @click="skipAddCustom"
<el-button
type="primary"
v-hasPerm="['custom:index:add']"
:icon="Plus"
@click="skipAddCustom"
>新增</el-button
>
<el-popconfirm
@ -75,6 +79,7 @@
type="danger"
:disabled="multiples.length === 0"
:icon="Delete"
v-hasPerm="['custom:index:delete']"
>删除</el-button
>
</template>

@ -72,7 +72,11 @@
>
</div>
<div>
<el-button type="primary" @click="openAddTypeVer">
<el-button
type="primary"
@click="openAddTypeVer"
v-hasPerm="['device:type:ver:add']"
>
<i-ep-plus />
增加设备类型软件版本
</el-button>
@ -188,6 +192,7 @@
<el-button
type="primary"
link
v-hasPerm="['device:type:ver:copy']"
@click="handleCopy(scope.row.typeAndVerId)"
>
<el-icon size="16px">
@ -199,6 +204,7 @@
<el-button
type="primary"
link
v-hasPerm="['device:type:ver:delete']"
@click="handleDevTypeVer(scope.row.typeAndVerId)"
>
<i-ep-delete />
@ -209,6 +215,7 @@
<el-button
type="primary"
link
v-hasPerm="['device:type:ver:delete:file']"
@click="handleDelVerFile(scope.row)"
>
<el-icon size="16px">

@ -18,7 +18,10 @@
</div>
</template>
<template #extra>
<el-button @click="submitForm(typeVerFormRef)" type="primary"
<el-button
@click="submitForm(typeVerFormRef)"
v-hasPerm="['device:type:ver:update:info']"
type="primary"
><el-icon><EditPen /></el-icon></el-button
>
</template>
@ -232,7 +235,10 @@
</div>
</template>
<template #extra>
<el-button @click="submitCapabilityForm" type="primary"
<el-button
@click="submitCapabilityForm"
v-hasPerm="['device:type:ver:update:capability']"
type="primary"
><el-icon><EditPen /></el-icon></el-button
>
</template>
@ -449,7 +455,10 @@
>
</div>
<div>
<el-button type="primary" @click="openVendorProfile"
<el-button
type="primary"
v-hasPerm="['device:type:ver:add:profile']"
@click="openVendorProfile"
><i-ep-plus />增加厂商配置文件</el-button
>
</div>
@ -483,7 +492,12 @@
@confirm="handleDeleteFile(scope.row.fileId)"
>
<template #reference>
<el-button type="danger" link><i-ep-delete /></el-button>
<el-button
type="danger"
v-hasPerm="['device:type:ver:delete:profile']"
link
><i-ep-delete
/></el-button>
</template>
</el-popconfirm>
</template>
@ -500,7 +514,10 @@
>
</div>
<div>
<el-button type="primary" @click="openDomainTree"
<el-button
type="primary"
v-hasPerm="['device:type:ver:add:domain']"
@click="openDomainTree"
><i-ep-plus />增加系统管理域</el-button
>
</div>

@ -73,8 +73,18 @@
<template #header>
<div class="table-head-parent">
<div>
<el-button type="primary" @click="skipAdd" plain><i-ep-plus />新增</el-button>
<el-button type="danger" plain @click="handleDeletes"
<el-button
type="primary"
@click="skipAdd"
v-hasPerm="['device:type:add']"
plain
><i-ep-plus />新增</el-button
>
<el-button
type="danger"
plain
@click="handleDeletes"
v-hasPerm="['device:type:delete']"
><i-ep-delete />删除</el-button
>
</div>

@ -10,6 +10,7 @@
@click="submitForm(editFormRef)"
:icon="Position"
type="primary"
v-hasPerm="['equipment:detail:update:info']"
>保存
</el-button>
</div>
@ -326,12 +327,19 @@
title="确认解除设备与客户的绑定?"
>
<template #reference>
<el-button type="primary">解除绑定 </el-button>
<el-button
type="primary"
v-hasPerm="['equipment:detail:unbinding:customer']"
>解除绑定
</el-button>
</template>
</el-popconfirm>
</div>
<div v-else>
<el-button @click="skipBindingCustom" type="primary"
<el-button
@click="skipBindingCustom"
v-hasPerm="['equipment:detail:binding:customer']"
type="primary"
>绑定客户</el-button
>
</div>

@ -41,7 +41,12 @@
<template #header>
<div class="table-head-parent">
<div>
<el-button type="primary" plain @click="skipAdd" :icon="Plus"
<el-button
type="primary"
v-hasPerm="['equipment:index:add']"
plain
@click="skipAdd"
:icon="Plus"
>新增</el-button
>
<el-popconfirm
@ -56,6 +61,7 @@
type="danger"
:disabled="multiples.length === 0"
plain
v-hasPerm="['equipment:index:delete']"
:icon="Delete"
>删除</el-button
>

@ -6,7 +6,11 @@
<el-button type="primary" :icon="Refresh" @click="getData"
>刷新
</el-button>
<el-button type="primary" :icon="Plus" @click="skipAddOperateType"
<el-button
type="primary"
v-hasPerm="['operate:type:add']"
:icon="Plus"
@click="skipAddOperateType"
>新增
</el-button>
<el-popconfirm
@ -22,6 +26,7 @@
<el-button
:disabled="multiples.length === 0"
type="danger"
v-hasPerm="['operate:type:delete']"
:icon="Delete"
>删除</el-button
>
@ -67,7 +72,12 @@
show-overflow-tooltip
/>
<el-table-column label="组件操作者" prop="userName" align="center" />
<el-table-column label="组件描述" prop="remark" align="center" />
<el-table-column
label="组件描述"
prop="remark"
show-overflow-tooltip
align="center"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<div v-if="scope.row.fileId != undefined">
@ -81,7 +91,11 @@
title="确认删除该文件吗?"
>
<template #reference>
<el-button type="danger" :icon="Delete" link
<el-button
type="danger"
v-hasPerm="['operate:type:delete:file']"
:icon="Delete"
link
>删除文件
</el-button>
</template>
@ -92,6 +106,7 @@
@click="openOperateFile(scope.row.operateName)"
type="primary"
:icon="Upload"
v-hasPerm="['operate:type:upload:file']"
link
>上传文件</el-button
>

@ -4,7 +4,11 @@
<div style="display: flex; justify-content: flex-end; margin-right: 10px">
<el-form>
<el-form-item>
<el-button :icon="Plus" type="primary" @click="skipBusinessForm(0)"
<el-button
:icon="Plus"
v-hasPerm="['service:index:add']"
type="primary"
@click="skipBusinessForm(0)"
>新增</el-button
>
<el-button
@ -18,6 +22,7 @@
:icon="Delete"
:disabled="multipleSelection.length === 0"
type="danger"
v-hasPerm="['service:index:delete']"
@click="handleDelete"
>删除</el-button
>
@ -69,6 +74,7 @@
v-else
type="danger"
link
v-hasPerm="['service:index:upload']"
@click="openPluginFile(scope.row.servId)"
>
上传文件</el-button
@ -88,6 +94,7 @@
:disabled="scope.row.fileId === null"
:icon="Delete"
plain
v-hasPerm="['service:index:delete:file']"
link
>删除文件</el-button
>

@ -2,7 +2,13 @@
<div class="app-container">
<el-card shadow="never">
<template #header>
<div style="display: flex; justify-content: flex-end">
<div style="display: flex; justify-content: space-between">
<div style="display: flex; align-items: center; margin-left: 3px">
<el-icon size="15"><Grid /></el-icon>&nbsp;<span
style="font-weight: 700; font-size: 14px; line-height: 16px"
>业务信息列表</span
>
</div>
<el-button
type="primary"
:disabled="multipleSelection.length === 0"
@ -46,7 +52,7 @@
<script setup lang="ts">
import { bindingTr069Service, noBindingServiceList } from "@/api/service";
import { ServiceVO } from "@/api/service/types";
import { Position } from "@element-plus/icons-vue";
import { Grid, Position } from "@element-plus/icons-vue";
const route = useRoute();
let tr069VerId: number = parseInt(<string>route.params.tr069VerId);
const totalService = ref<number>(0);

@ -10,7 +10,11 @@
>
</div>
<div>
<el-button type="primary" @click="skipBindingDevType">
<el-button
type="primary"
v-hasPerm="['te069:binding:device:type']"
@click="skipBindingDevType"
>
<i-ep-plus />
新增
</el-button>

@ -2,11 +2,18 @@
<div class="app-container">
<el-card shadow="never">
<template #header>
<div style="display: flex; justify-content: flex-end">
<div style="display: flex; justify-content: space-between">
<div style="display: flex; align-items: center; margin-left: 3px">
<el-icon size="15"><Grid /></el-icon>&nbsp;<span
style="font-weight: 700; font-size: 14px; line-height: 16px"
>TR-069数据模型版本对应的业务信息列表</span
>
</div>
<el-button
:icon="Plus"
type="primary"
plain
v-hasPerm="['tr069:binding:service']"
@click="skipBindingService"
>新增</el-button
>
@ -37,7 +44,11 @@
@confirm="removeBinding(scope.row.servId)"
>
<template #reference>
<el-button type="primary" :icon="CloseBold" link
<el-button
type="primary"
v-hasPerm="['tr069:unbinding:service']"
:icon="CloseBold"
link
>解除绑定</el-button
>
</template>
@ -59,7 +70,7 @@
<script setup lang="ts">
import { removeBindingTr069Service, tr069ServiceList } from "@/api/service";
import { CloseBold, InfoFilled, Plus } from "@element-plus/icons-vue";
import { CloseBold, Grid, InfoFilled, Plus } from "@element-plus/icons-vue";
import { ServiceVO } from "@/api/service/types";
const route = useRoute();
const router = useRouter();

@ -1,17 +1,29 @@
<template>
<div class="app-container">
<div class="search-container">
<div style="display: flex; justify-content: flex-end;margin-right: 10px">
<div style="display: flex; justify-content: flex-end; margin-right: 10px">
<el-form>
<el-form-item>
<el-button type="primary" plain @click="goto(-999, -999)"
<el-button
type="primary"
v-hasPerm="['tr069:index:add']"
plain
@click="goto(-999, -999)"
><i-ep-plus />新增</el-button
>
<el-button type="primary" @click="openTr069FileForm" plain
<el-button
type="primary"
v-hasPerm="['tr069:index:import']"
@click="openTr069FileForm"
plain
><i-ep-plus />导入TR069文件</el-button
>
<el-button @click="loadTr069Page" plain><i-ep-refresh /></el-button>
<el-button type="danger" plain><i-ep-delete />删除</el-button>
<el-button @click="loadTr069Page" plain
><i-ep-refresh />刷新</el-button
>
<el-button type="danger" v-hasPerm="['tr069:index:delete']" plain
><i-ep-delete />删除</el-button
>
</el-form-item>
</el-form>
</div>
@ -62,6 +74,7 @@
<el-button
type="primary"
link
v-hasPerm="['tr069:index:device:type:ver:list']"
@click="skipDevTypeSoftVerList(scope.row.tr069VerId)"
>
<el-icon size="15"><Link /></el-icon>
@ -76,6 +89,7 @@
<el-button
type="primary"
link
v-hasPerm="['tr069:index:service:list']"
@click="skipService(scope.row.tr069VerId)"
>
<el-icon size="15"><View /></el-icon>

@ -138,6 +138,7 @@
key="username"
label="用户名"
align="center"
width="120"
prop="username"
/>
<el-table-column

Loading…
Cancel
Save