|
@@ -1,15 +1,15 @@
|
|
|
<template>
|
|
|
<div class="page page-full border bg padding">
|
|
|
<el-form inline ref="queryRef" @keyup.enter="getList(1)">
|
|
|
- <el-form-item label="名称" prop="keyWord">
|
|
|
- <el-input v-model="params.keyWord" placeholder="请输入名称" clearable style="width: 240px" />
|
|
|
+ <el-form-item :label="$t('message.property.relationship.form.keyword') + ':'" prop="keyWord">
|
|
|
+ <el-input v-model="params.keyWord" :placeholder="$t('message.property.relationship.form.keywordPlaceholder')" clearable style="width: 240px" />
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" class="ml10" @click="getList(1)">
|
|
|
<el-icon>
|
|
|
<ele-Search />
|
|
|
</el-icon>
|
|
|
- 查询
|
|
|
+ {{ $t('message.tableI18nAction.query') }}
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
@@ -17,20 +17,20 @@
|
|
|
<el-icon>
|
|
|
<ele-FolderAdd />
|
|
|
</el-icon>
|
|
|
- 新增资产关系
|
|
|
+ {{ $t('message.property.relationship.actions.add') }}
|
|
|
</el-button>
|
|
|
<el-button type="info" @click="batchUnbind()" v-auth="'batchUnbind'" :disabled="!ids.length">
|
|
|
<el-icon>
|
|
|
<ele-FolderAdd />
|
|
|
</el-icon>
|
|
|
- 解绑
|
|
|
+ {{ $t('message.property.relationship.actions.unbind') }}
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div class="page page-full-part flex-row gap-4">
|
|
|
<el-card style="width: 250px;" shadow="never">
|
|
|
<el-tree :data="treeData" :props="defaultProps" accordion default-expand-all @node-click="handleNodeClick" :node-key="'id'" highlight-current>
|
|
|
- <template #default="{ node, data }">
|
|
|
+ <template #default="{ data }">
|
|
|
<div class="custom-tree-node">
|
|
|
<span class="tree-label">{{ data.name }}</span>
|
|
|
</div>
|
|
@@ -41,21 +41,20 @@
|
|
|
<div class="page page-full">
|
|
|
<el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange" row-key="id" v-loading="loading">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column prop="assetInfo.deviceName" v-col="'deviceName'" label="设备名称" min-width="100" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="assetInfo.deviceKey" v-col="'deviceKey'" label="设备KEY" min-width="90" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="assetInfo.deviceNumber" v-col="'deviceNumber'" label="设备编码" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="assetInfo.deviceCategory" v-col="'deviceCategory'" label="设备类型" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="assetInfo.installTime" v-col="'installTime'" label="安装时间" width="160" align="center"></el-table-column>
|
|
|
- <el-table-column prop="status" label="状态" width="70" v-col="'status'" align="center">
|
|
|
+ <el-table-column prop="assetInfo.deviceName" v-col="'deviceName'" :label="$t('message.property.relationship.columns.deviceName')" min-width="100" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="assetInfo.deviceKey" v-col="'deviceKey'" :label="$t('message.property.relationship.columns.deviceKey')" min-width="90" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="assetInfo.deviceNumber" v-col="'deviceNumber'" :label="$t('message.property.relationship.columns.deviceNumber')" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="assetInfo.deviceCategory" v-col="'deviceCategory'" :label="$t('message.property.relationship.columns.deviceCategory')" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="assetInfo.installTime" v-col="'installTime'" :label="$t('message.property.relationship.columns.installTime')" width="160" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="status" :label="$t('message.property.relationship.columns.status')" width="70" v-col="'status'" align="center">
|
|
|
<template #default="scope">
|
|
|
- <el-switch v-model="scope.row.status" v-auth="'change-status'" inline-prompt :active-value="1" :inactive-value="0" active-text="启" inactive-text="禁" @change="handleStatusChange(scope.row)">
|
|
|
+ <el-switch v-model="scope.row.status" v-auth="'change-status'" inline-prompt :active-value="1" :inactive-value="0" :active-text="$t('message.property.relationship.switch.enableShort')" :inactive-text="$t('message.property.relationship.switch.disableShort')" @change="handleStatusChange(scope.row)">
|
|
|
</el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" width="170" v-col="'handle'" align="center">
|
|
|
+ <el-table-column :label="$t('message.tableI18nColumn.operation')" width="170" v-col="'handle'" align="center">
|
|
|
<template #default="scope">
|
|
|
- <el-button size="small" text type="warning" v-auth="'unbind'" @click="unbind(scope.row)">解绑</el-button>
|
|
|
- <!-- <el-button size="small" text type="primary" v-auth="'set'" @click="set(scope.row)">设置筛选条件</el-button> -->
|
|
|
+ <el-button size="small" text type="warning" v-auth="'unbind'" @click="unbind(scope.row)">{{ $t('message.property.relationship.actions.unbind') }}</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -69,15 +68,17 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
+import { useI18n } from 'vue-i18n'
|
|
|
+import { ref } from 'vue'
|
|
|
import api from '/@/api/system'
|
|
|
import device from '/@/api/device'
|
|
|
import { useSearch } from '/@/hooks/useCommon'
|
|
|
-
|
|
|
-import { ElMessageBox, ElMessage } from 'element-plus'
|
|
|
import EditForm from './edit.vue'
|
|
|
import FilterVue from './filter.vue'
|
|
|
+import { ElMessageBox, ElMessage } from 'element-plus'
|
|
|
+
|
|
|
+const { t } = useI18n()
|
|
|
|
|
|
-import { ref, onMounted } from 'vue'
|
|
|
const defaultProps = {
|
|
|
children: 'children',
|
|
|
label: 'name',
|
|
@@ -95,6 +96,7 @@ api.role.getList({ status: 1 }).then((res: any) => {
|
|
|
|
|
|
const { params, tableData, getList, loading } = useSearch<any[]>(device.assetRelationship.getList, 'Data', { keyWord: '', roleId: -1 })
|
|
|
getList()
|
|
|
+
|
|
|
const handleSelectionChange = (selection: any[]) => {
|
|
|
ids.value = selection.map((item) => item.id);
|
|
|
};
|
|
@@ -103,83 +105,64 @@ const addOrEdit = () => {
|
|
|
editFormRef.value.open(params.roleId)
|
|
|
}
|
|
|
|
|
|
-const set = (row: any) => {
|
|
|
- filterRef.value.open(row)
|
|
|
-}
|
|
|
-
|
|
|
const handleNodeClick = (data: any) => {
|
|
|
params.roleId = data.id
|
|
|
getList()
|
|
|
}
|
|
|
|
|
|
-// const batchdel = () => {
|
|
|
-// ElMessageBox.confirm('是否确认要批量删除这些数据吗?', '提示', {
|
|
|
-// confirmButtonText: '确认',
|
|
|
-// cancelButtonText: '取消',
|
|
|
-// type: 'warning',
|
|
|
-// }).then(async () => {
|
|
|
-// await device.assetRelationship.delete(ids.value)
|
|
|
-// ElMessage.success('删除成功')
|
|
|
-// getList()
|
|
|
-// })
|
|
|
-// }
|
|
|
-
|
|
|
-// const del = (row: any) => {
|
|
|
-// ElMessageBox.confirm('是否确认删除该设备档案', '提示', {
|
|
|
-// confirmButtonText: '确认',
|
|
|
-// cancelButtonText: '取消',
|
|
|
-// type: 'warning',
|
|
|
-// }).then(async () => {
|
|
|
-// await device.assetRelationship.delete([row.id])
|
|
|
-// ElMessage.success('删除成功')
|
|
|
-// getList()
|
|
|
-// })
|
|
|
-// }
|
|
|
-
|
|
|
-// 状态修改
|
|
|
const handleStatusChange = (row: any) => {
|
|
|
- let text = row.status === 1 ? '启用' : '停用';
|
|
|
- ElMessageBox.confirm('确认要【' + text + '】吗?', '警告', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- })
|
|
|
+ const text = row.status === 1 ? t('message.property.relationship.status.enable') : t('message.property.relationship.status.disable')
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ t('message.property.relationship.messages.statusChangeConfirm', { text }),
|
|
|
+ t('message.property.relationship.messages.warning'),
|
|
|
+ {
|
|
|
+ confirmButtonText: t('message.property.relationship.messages.confirm'),
|
|
|
+ cancelButtonText: t('message.property.relationship.messages.cancel'),
|
|
|
+ type: 'warning',
|
|
|
+ }
|
|
|
+ )
|
|
|
.then(function () {
|
|
|
- return device.assetRelationship.editStatus(row.id, row.status);
|
|
|
+ return device.assetRelationship.editStatus(row.id, row.status)
|
|
|
})
|
|
|
.then(() => {
|
|
|
- ElMessage.success(text + '成功');
|
|
|
+ ElMessage.success(t('message.property.relationship.messages.statusChangeSuccess', { text }))
|
|
|
})
|
|
|
.catch(function () {
|
|
|
- row.status = row.status === 0 ? 1 : 0;
|
|
|
- });
|
|
|
-};
|
|
|
+ row.status = row.status === 0 ? 1 : 0
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
const unbind = (row: any) => {
|
|
|
- ElMessageBox.confirm('是否确认解绑', '提示', {
|
|
|
- confirmButtonText: '确认',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- }).then(async () => {
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ t('message.property.relationship.messages.unbindConfirm'),
|
|
|
+ t('message.property.relationship.messages.tips'),
|
|
|
+ {
|
|
|
+ confirmButtonText: t('message.property.relationship.messages.confirm'),
|
|
|
+ cancelButtonText: t('message.property.relationship.messages.cancel'),
|
|
|
+ type: 'warning',
|
|
|
+ }
|
|
|
+ ).then(async () => {
|
|
|
await device.assetRelationship.unBind([row.id])
|
|
|
- ElMessage.success('解绑成功')
|
|
|
+ ElMessage.success(t('message.property.relationship.messages.unbindSuccess'))
|
|
|
getList()
|
|
|
})
|
|
|
}
|
|
|
|
|
|
const batchUnbind = () => {
|
|
|
- ElMessageBox.confirm('是否确认要批量解绑这些数据吗?', '提示', {
|
|
|
- confirmButtonText: '确认',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- }).then(async () => {
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ t('message.property.relationship.messages.batchUnbindConfirm'),
|
|
|
+ t('message.property.relationship.messages.tips'),
|
|
|
+ {
|
|
|
+ confirmButtonText: t('message.property.relationship.messages.confirm'),
|
|
|
+ cancelButtonText: t('message.property.relationship.messages.cancel'),
|
|
|
+ type: 'warning',
|
|
|
+ }
|
|
|
+ ).then(async () => {
|
|
|
await device.assetRelationship.unBind(ids.value)
|
|
|
- ElMessage.success('解绑成功')
|
|
|
+ ElMessage.success(t('message.property.relationship.messages.unbindSuccess'))
|
|
|
getList()
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
-// getCateList()
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.custom-tree-node {
|