Commit 8638c301 authored by Mr.Tang's avatar Mr.Tang

国内车型树形结构图

parent 993d4ace
......@@ -9,29 +9,13 @@ export function listModel(query) {
})
}
// 查询国际车型列表
export function listInternationalModel(query) {
return request({
url: '/control/model/list/International',
method: 'get',
params: query,
})
}
// 查询国内车型详细
// 查询国内国际车型详细
export function getModel(id) {
return request({
url: '/control/model/' + id,
method: 'get',
})
}
// 查询国内车型详细
export function getInternationalModel(id) {
return request({
url: '/control/model/International/' + id,
method: 'get',
})
}
// 新增国内车型
export function addModel(data) {
......@@ -42,7 +26,7 @@ export function addModel(data) {
})
}
// 修改国内车型
// 修改国内国际车型
export function updateModel(data) {
return request({
url: '/control/model',
......@@ -58,3 +42,10 @@ export function delModel(id) {
method: 'delete',
})
}
export function treeListModel(query) {
return request({
url: '/control/model/treeList',
method: 'get',
params: query,
})
}
{
"handleAdd": "新建角色",
"serialNumber": "序号",
"permissionCharacters": "权限字符",
"order": "显示顺序",
"createTime": "创建时间",
"updateTime": "修改时间",
"operation":"操作",
"add": "新增",
"handleUpdate": "编辑",
"handleDelete": "删除",
"submitForm": "确定",
"cancel": "取消",
"handleQuery": "搜索按钮操作",
"resetQuery": "重置按钮操作",
"modifySuccess": "修改成功",
"addSuccess": "新增成功",
"deleteSuccess": "删除成功",
"confirmDelete": "是否确认删除该数据项?",
"pleaseEnter": "请输入",
"pleaseChoose": "请选择",
"roleName": "角色名称",
"roleState": "角色状态",
"search": "查询",
"reset": "重置",
"assignmentsMenu": "分配菜单"
}
\ No newline at end of file
{
"handleAdd": "Create New Role",
"serialNumber": "Serial Number",
"permissionCharacters": "PermissionCharacters",
"order": "order",
"createTime": "Create Time",
"updateTime": "Update Time",
"operation":"operation",
"add": "add",
"handleUpdate": "Edit",
"handleDelete": "Delete",
"submitForm": "Confirm",
"cancel": "Cancel",
"handleQuery": "Search Button Operation",
"resetQuery": "Reset Button Operation",
"modifySuccess": "Modification Successful",
"addSuccess": "Addition Successful",
"deleteSuccess": "Deletion Successful",
"confirmDelete": "Are you sure you want to delete this data item?",
"pleaseEnter": "PleaseEnter",
"pleaseChoose": "PleaseChoose",
"roleName": "Role Name",
"roleState": "Role State",
"search": "Search",
"reset": "Reset",
"assignmentsMenu": "Assignments Menu"
}
\ No newline at end of file
......@@ -46,21 +46,27 @@
style="width: 100px"
>
<el-option
v-for="dict in sys_manufacture"
:key="dict.value"
:label="dict.label"
:value="dict.value"
v-for="item in modelSeriesOptions"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="动力类型" prop="powerType">
<el-input
<el-select
v-model="queryParams.powerType"
placeholder="请输入"
placeholder="请选择"
clearable
style="width: 100px"
@keyup.enter="handleQuery"
>
<el-option
v-for="dict in power_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否维护" prop="isMaintained">
<el-select
......@@ -112,13 +118,19 @@
/>
</el-form-item>
<el-form-item label="制造工厂" prop="manufacturingPlant">
<el-input
<el-select
v-model="queryParams.manufacturingPlant"
placeholder="请选择"
clearable
style="width: 100px"
@keyup.enter="handleQuery"
>
<el-option
v-for="item in factoryOptions"
:key="item.id"
:label="item.factoryName"
:value="item.factoryName"
/>
</el-select>
</el-form-item>
<el-form-item label="CVN" prop="cvn">
<el-input
......@@ -336,15 +348,21 @@ import {
delModel,
addModel,
updateModel,
treeListModel,
} from '@/api/vehicleModelData/domestic'
import useAppStore from '@/store/modules/app'
import { getAllFactoryName } from '@/api/system/factory'
import { getAllBusinessUnitName } from '@/api/system/basicdata/businessunit'
import { getAllModelSeries } from '@/api/filingParameter/library.js'
import { computed, ref, toRefs, watch } from 'vue'
import { updateManufacturers } from '@/api/system/basicdata/manufacturer.js'
const appStore = useAppStore()
const { proxy } = getCurrentInstance()
const { vehicle_model_maintenance } = proxy.useDict('vehicle_model_maintenance')
const { vehicle_model_maintenance, power_type } = proxy.useDict(
'vehicle_model_maintenance',
'power_type',
)
const modelList = ref([])
const open = ref(false)
......@@ -396,31 +414,26 @@ const deptOptions = ref([
{
id: 11,
label: '请选择',
options: ['M36T', 'EHY', 'S56'],
},
],
},
{
id: 2,
label: '动力类型',
label: 'M36T',
children: [
{
id: 21,
label: '请选择',
type: 'select',
options: ['ICE', 'BEV'],
},
],
},
{
id: 3,
label: '是否维护',
label: 'M36T',
children: [
{
id: 31,
label: '请选择',
type: 'select',
options: ['是', '否'],
},
],
},
......@@ -458,6 +471,29 @@ const businessUnitOptions = ref([]) // 获取所有事业部列表
const quickSearchText = ref('')
// 原始数据副本
const originalModelList = ref([])
const factoryOptions = ref([])
const modelSeriesOptions = ref([])
const fetchModelSeries = async () => {
try {
const response = await getAllModelSeries()
modelSeriesOptions.value = response.data // 确保数据不为null
} catch (error) {
console.error('获取车型系列列表失败:', error)
modelSeriesOptions.value = [] // 出错时设为空数组
}
}
const factoryName = async () => {
try {
const response = await getAllFactoryName()
// 提取factoryName字段
factoryOptions.value = response.data || [] // 确保数据不为null
} catch (error) {
console.error('获取工厂列表失败:', error)
factoryOptions.value = [] // 出错时设为空数组
}
}
// 获取工厂数据的方法
const fetchFactories = async () => {
......@@ -497,6 +533,7 @@ watch(
},
{ immediate: true },
)
/** 查询国内车型列表 */
function getList() {
loading.value = true
......@@ -508,6 +545,28 @@ function getList() {
})
}
/** 查询国内车型列表 */
function getTreeList() {
loading.value = true
return treeListModel(queryParams.value).then((response) => {
// Transform the response data into the desired tree structure
deptOptions.value[0].children = Object.entries(response).map(
([modelCode, items]) => ({
id: modelCode,
label: modelCode,
children: items.map((item) => ({
id: item.modelAnnouncementNumber,
label: item.modelAnnouncementNumber || '未命名公告号',
originalData: item, // Keep reference to original data
})),
}),
)
loading.value = false
console.log('Tree data:', JSON.stringify(deptOptions.value, null, 2))
})
}
// 计算属性实现快速搜索
const filteredList = computed(() => {
if (!quickSearchText.value) return originalModelList.value
......@@ -656,6 +715,9 @@ function handleExport() {
onMounted(() => {
fetchFactories()
fetchBusinessUnit()
factoryName()
fetchModelSeries()
getTreeList()
})
getList()
</script>
......
......@@ -38,13 +38,19 @@
label-width="96px"
>
<el-form-item label="动力类型" prop="powerType">
<el-input
<el-select
v-model="queryParams.powerType"
placeholder="请输入"
placeholder="请选择"
clearable
style="width: 100px"
@keyup.enter="handleQuery"
>
<el-option
v-for="dict in power_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="发动机型号" prop="engineModel">
<el-input
......@@ -323,14 +329,18 @@ import {
delModel,
addModel,
updateModel,
listInternationalModel,
getInternationalModel,
listModel,
getModel,
treeListModel,
} from '@/api/vehicleModelData/domestic'
import { getAllFactoryName } from '@/api/system/factory'
import { getAllBusinessUnitName } from '@/api/system/basicdata/businessunit'
import { computed, ref, toRefs, watch } from 'vue'
const { proxy } = getCurrentInstance()
const { vehicle_model_maintenance } = proxy.useDict('vehicle_model_maintenance')
const { vehicle_model_maintenance, power_type } = proxy.useDict(
'vehicle_model_maintenance',
'power_type',
)
const modelList = ref([])
const open = ref(false)
......@@ -386,31 +396,26 @@ const deptOptions = ref([
{
id: 11,
label: '请选择',
options: ['M36T', 'EHY', 'S56'],
},
],
},
{
id: 2,
label: '动力类型',
label: 'M36T',
children: [
{
id: 21,
label: '请选择',
type: 'select',
options: ['ICE', 'BEV'],
},
],
},
{
id: 3,
label: '是否维护',
label: 'M36T',
children: [
{
id: 31,
label: '请选择',
type: 'select',
options: ['是', '否'],
},
],
},
......@@ -481,13 +486,35 @@ watch(
/** 查询国内车型列表 */
function getList() {
loading.value = true
listInternationalModel(queryParams.value).then((response) => {
listModel(queryParams.value).then((response) => {
modelList.value = response.rows
total.value = response.total
loading.value = false
})
}
/** 查询国内车型列表 */
function getTreeList() {
loading.value = true
return treeListModel(queryParams.value).then((response) => {
// Transform the response data into the desired tree structure
deptOptions.value[0].children = Object.entries(response).map(
([modelCode, items]) => ({
id: modelCode,
label: modelCode,
children: items.map((item) => ({
id: item.modelAnnouncementNumber,
label: item.modelAnnouncementNumber || '未命名公告号',
originalData: item, // Keep reference to original data
})),
}),
)
loading.value = false
console.log('Tree data:', JSON.stringify(deptOptions.value, null, 2))
})
}
// 取消按钮
function cancel() {
open.value = false
......@@ -561,7 +588,7 @@ const isEditMode = computed(() => {
function handleUpdate(row) {
reset()
const _id = row.id || ids.value
getInternationalModel(_id).then((response) => {
getModel(_id).then((response) => {
form.value = response.data
open.value = true
title.value = '补充信息'
......@@ -617,6 +644,7 @@ function handleExport() {
onMounted(() => {
fetchFactories()
fetchBusinessUnit()
getTreeList()
})
getList()
</script>
......
<template>
<div class="app-container">
<div style="width: 100%;display: flex;align-items: center;justify-content: flex-end">
<el-button
plain
class="btn-C"
@click="handleAdd"
style=""
>{{cn.handleAdd}}/{{en.handleAdd}}</el-button>
<div
style="
width: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
"
>
<el-button plain class="btn-C" style="" @click="handleAdd"
>{{ cn.handleAdd }}/{{ en.handleAdd }}</el-button
>
</div>
<el-table style="margin-top: 15px" border v-loading="loading" :data="brandDataList" @selection-change="handleSelectionChange">
<el-table-column type="index" label="序号" width="175" align="center" >
<el-table
v-loading="loading"
style="margin-top: 15px"
border
:data="brandDataList"
@selection-change="handleSelectionChange"
>
<el-table-column type="index" label="序号" width="175" align="center">
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.serialNumber}}</div>
<div>{{en.serialNumber}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.serialNumber }}</div>
<div>{{ en.serialNumber }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="type" >
<el-table-column label="类型" align="center" prop="type">
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.type}}</div>
<div>{{en.type}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.type }}</div>
<div>{{ en.type }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="品牌" align="center" prop="brand" >
<el-table-column label="品牌" align="center" prop="brand">
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.brand}}</div>
<div>{{en.brand}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.brand }}</div>
<div>{{ en.brand }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateUserName" >
<el-table-column label="更新人" align="center" prop="updateUserName">
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.updateUserName}}</div>
<div>{{en.updateUserName}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.updateUserName }}</div>
<div>{{ en.updateUserName }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="更新时间" align="center" prop="updateTime">
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.updateTime}}</div>
<div>{{en.updateTime}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.updateTime }}</div>
<div>{{ en.updateTime }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" >
<el-table-column label="备注" align="center" prop="remark">
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.remark}}</div>
<div>{{en.remark}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.remark }}</div>
<div>{{ en.remark }}</div>
</div>
</template>
<template #default="scope">
{{scope.row.remark || '--'}}
{{ scope.row.remark || '--' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template #header>
<div style="display: flex;flex-direction: column">
<div>{{cn.operation}}</div>
<div>{{en.operation}}</div>
<div style="display: flex; flex-direction: column">
<div>{{ cn.operation }}</div>
<div>{{ en.operation }}</div>
</div>
</template>
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row)" >{{cn.handleUpdate}}/{{en.handleUpdate}}</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)" >{{cn.handleDelete}}/{{en.handleDelete}}</el-button>
<el-button link type="primary" @click="handleUpdate(scope.row)"
>{{ cn.handleUpdate }}/{{ en.handleUpdate }}</el-button
>
<el-button link type="danger" @click="handleDelete(scope.row)"
>{{ cn.handleDelete }}/{{ en.handleDelete }}</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-show="total > 0"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
:total="total"
@pagination="getList"
/>
<!-- 添加或修改国内品牌数据对话框 -->
<el-dialog top="30" :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="brandDataRef" label-position="top" :model="form" :rules="rules" label-width="80px">
<el-dialog
v-model="open"
top="30"
:title="title"
width="500px"
append-to-body
>
<el-form
ref="brandDataRef"
label-position="top"
:model="form"
:rules="rules"
label-width="80px"
>
<el-form-item :label="`${cn.type}/${en.type}`" prop="type">
<el-input v-model="form.type" disabled placeholder="请输入类型" />
</el-form-item>
......@@ -101,67 +128,72 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button class="btn-A" type="primary" @click="submitForm">{{cn.submitForm}}/{{en.submitForm}}</el-button>
<el-button class="btn-B" @click="cancel">{{cn.cancel}}/{{en.cancel}}</el-button>
<el-button class="btn-A" type="primary" @click="submitForm"
>{{ cn.submitForm }}/{{ en.submitForm }}</el-button
>
<el-button class="btn-B" @click="cancel"
>{{ cn.cancel }}/{{ en.cancel }}</el-button
>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup >
import { listBrandData, getBrandData, delBrandData, addBrandData, updateBrandData } from "@/api/brandData/brandData";
import cn from "@/locales/system/domesticBrand/cn.json"
import en from "@/locales/system/domesticBrand/en.json"
const { proxy } = getCurrentInstance();
<script setup>
import {
listBrandData,
getBrandData,
delBrandData,
addBrandData,
updateBrandData,
} from '@/api/brandData/brandData'
import cn from '@/locales/system/domesticBrand/cn.json'
import en from '@/locales/system/domesticBrand/en.json'
const { proxy } = getCurrentInstance()
const brandDataList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const brandDataList = ref([])
const open = ref(false)
const loading = ref(true)
const showSearch = ref(true)
const ids = ref([])
const single = ref(true)
const multiple = ref(true)
const total = ref(0)
const title = ref('')
const form = ref({
type:'国内'
type: '国内',
})
const data = reactive({
queryParams: {
pageNum: 1,
pageSize: 10,
type:"国内"
type: '国内',
},
rules: {
type: [
{ required: true, message: "类型不能为空", trigger: "blur" }
],
brand: [
{ required: true, message: "品牌不能为空", trigger: "blur" }
],
}
});
type: [{ required: true, message: '类型不能为空', trigger: 'blur' }],
brand: [{ required: true, message: '品牌不能为空', trigger: 'blur' }],
},
})
const { queryParams, rules } = toRefs(data);
const { queryParams, rules } = toRefs(data)
/** 查询国内品牌数据列表 */
function getList() {
loading.value = true;
listBrandData(queryParams.value).then(response => {
brandDataList.value = response.rows;
total.value = response.total;
loading.value = false;
});
loading.value = true
listBrandData(queryParams.value).then((response) => {
brandDataList.value = response.rows
total.value = response.total
loading.value = false
})
}
// 取消按钮
function cancel() {
open.value = false;
reset();
open.value = false
reset()
}
// 表单重置
......@@ -169,87 +201,95 @@ function reset() {
form.value = {
brand: null,
remark: null,
type:"国内"
};
type: '国内',
}
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
queryParams.value.pageNum = 1
getList()
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
proxy.resetForm('queryRef')
handleQuery()
}
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
ids.value = selection.map((item) => item.id)
single.value = selection.length != 1
multiple.value = !selection.length
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = cn.add + '/' + en.add;
reset()
open.value = true
title.value = cn.add + '/' + en.add
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
reset()
const _id = row.id || ids.value
getBrandData(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = cn.handleUpdate + "/" +en.handleUpdate;
});
getBrandData(_id).then((response) => {
form.value = response.data
open.value = true
title.value = cn.handleUpdate + '/' + en.handleUpdate
})
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["brandDataRef"].validate(valid => {
proxy.$refs['brandDataRef'].validate((valid) => {
if (valid) {
if (form.value.id != null) {
updateBrandData(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
updateBrandData(form.value).then((response) => {
proxy.$modal.msgSuccess('修改成功')
open.value = false
getList()
})
} else {
addBrandData(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
addBrandData(form.value).then((response) => {
proxy.$modal.msgSuccess('新增成功')
open.value = false
getList()
})
}
}
});
})
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除该数据项?').then(function() {
return delBrandData(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
const _ids = row.id || ids.value
proxy.$modal
.confirm('是否确认删除该数据项?')
.then(function () {
return delBrandData(_ids)
})
.then(() => {
getList()
proxy.$modal.msgSuccess('删除成功')
})
.catch(() => {})
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('brandData/brandData/export', {
...queryParams.value
}, `brandData_${new Date().getTime()}.xlsx`)
proxy.download(
'brandData/brandData/export',
{
...queryParams.value,
},
`brandData_${new Date().getTime()}.xlsx`,
)
}
getList();
getList()
</script>
<style scoped lang="scss">
:deep(.el-pagination) {
......@@ -258,8 +298,7 @@ getList();
width: 100%;
margin-top: 24px;
}
:deep(.el-pagination.is-background .el-pager li.is-active){
background-color: #0154FB;
:deep(.el-pagination.is-background .el-pager li.is-active) {
background-color: #0154fb;
}
</style>
......@@ -10,7 +10,7 @@
<el-form-item label="" prop="roleName">
<el-input
v-model="queryParams.roleName"
placeholder="角色名称"
:placeholder="`${cn.roleName}/${en.roleName}`"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
......@@ -19,7 +19,7 @@
<el-form-item label="" prop="status">
<el-select
v-model="queryParams.status"
placeholder="角色状态"
:placeholder="`${cn.roleState}/${en.roleState}`"
clearable
style="width: 240px"
>
......@@ -33,10 +33,10 @@
</el-form-item>
<el-form-item>
<el-button class="btn-A" icon="Search" @click="handleQuery"
>查询</el-button
>{{ cn.search }}/{{ en.search }}</el-button
>
<el-button class="btn-B" icon="Refresh" @click="resetQuery"
>重置</el-button
>{{ cn.reset }}/{{ en.reset }}</el-button
>
</el-form-item>
<el-button
......@@ -45,7 +45,7 @@
icon="Plus"
style="float: right; background: #0154fb"
@click="handleAdd"
>新建角色</el-button
>{{ cn.handleAdd }}/{{ en.handleAdd }}</el-button
>
<!-- <el-button type="primary" plain @click="handleAdd">新建</el-button>-->
</el-form>
......@@ -58,28 +58,38 @@
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="序号" prop="roleId" width="120" align="center" />
<el-table-column
label="角色名称"
:label="`${cn.serialNumber}/${en.serialNumber}`"
prop="roleId"
width="120"
align="center"
/>
<el-table-column
:label="`${cn.roleName}/${en.roleName}`"
prop="roleName"
:show-overflow-tooltip="true"
width="150"
align="center"
/>
<el-table-column
label="权限字符"
:label="`${cn.permissionCharacters}/${en.permissionCharacters}`"
prop="roleKey"
:show-overflow-tooltip="true"
width="150"
align="center"
/>
<el-table-column
label="显示顺序"
:label="`${cn.order}/${en.order}`"
prop="roleSort"
width="100"
align="center"
/>
<el-table-column label="角色状态" align="center" width="150" sortable>
<el-table-column
:label="`${cn.roleState}/${en.roleState}`"
align="center"
width="150"
sortable
>
<template #default="scope">
<el-switch
v-model="scope.row.status"
......@@ -90,7 +100,7 @@
</template>
</el-table-column>
<el-table-column
label="创建时间"
:label="`${cn.createTime}/${en.createTime}`"
align="center"
prop="createTime"
width="200"
......@@ -101,7 +111,7 @@
</template>
</el-table-column>
<el-table-column
label="修改时间"
:label="`${cn.updateTime}/${en.updateTime}`"
align="center"
prop="updateTime"
width="200"
......@@ -112,14 +122,14 @@
</template>
</el-table-column>
<el-table-column
label="操作"
:label="`${cn.operation}/${en.operation}`"
align="center"
class-name="small-padding fixed-width"
>
<template #default="scope">
<el-tooltip
v-if="scope.row.roleId !== 1"
content="编辑"
:content="`${cn.handleUpdate}/${en.handleUpdate}`"
placement="top"
>
<el-button
......@@ -128,12 +138,12 @@
type="primary"
icon="Edit"
@click="handleUpdate(scope.row)"
>编辑</el-button
>{{ cn.handleUpdate }}/{{ en.handleUpdate }}</el-button
>
</el-tooltip>
<el-tooltip
v-if="scope.row.roleId !== 1"
content="分配菜单"
:content="`${cn.assignmentsMenu}/${en.assignmentsMenu}`"
placement="top"
>
<el-button
......@@ -142,7 +152,7 @@
type="primary"
icon="CircleCheck"
@click="handleDataScope(scope.row)"
>分配菜单</el-button
>{{ cn.assignmentsMenu }}/{{ en.assignmentsMenu }}</el-button
>
</el-tooltip>
<!-- <el-tooltip
......@@ -160,7 +170,7 @@
</el-tooltip>-->
<el-tooltip
v-if="scope.row.roleId !== 1"
content="删除"
:content="`${cn.handleDelete}/${en.handleDelete}`"
placement="top"
>
<el-button
......@@ -169,7 +179,7 @@
type="danger"
icon="Delete"
@click="handleDelete(scope.row)"
>删除</el-button
>{{ cn.handleDelete }}/{{ en.handleDelete }}</el-button
>
</el-tooltip>
</template>
......@@ -342,7 +352,8 @@ import {
roleMenuTreeselect,
treeselect as menuTreeselect,
} from '@/api/system/menu'
import cn from '@/locales/system/role/cn.json'
import en from '@/locales/system/role/en.json'
const router = useRouter()
const { proxy } = getCurrentInstance()
const { sys_normal_disable } = proxy.useDict('sys_normal_disable')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment