feat: 设备操作组件删除

master
李小林 9 months ago
parent 0516fe9bdc
commit ccdaa7c7d1
  1. 7
      src/api/operate-type/index.ts
  2. 6
      src/views/resources/customer/components/AddCustom.vue
  3. 38
      src/views/resources/customer/index.vue
  4. 5
      src/views/resources/equipment/index.vue
  5. 63
      src/views/resources/operate-type/index.vue

@ -36,3 +36,10 @@ export function editOperateTypeFile(fileId?: number, operateName?: string) {
method: "PUT", method: "PUT",
}); });
} }
export function deleteOperateType(ids: any[]) {
return request({
url: "/api/operate/v1/delete",
method: "POST",
data: ids,
});
}

@ -94,7 +94,7 @@
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="客户类型" label="系统管理域"
label-align="left" label-align="left"
align="center" align="center"
label-class-name="my-label" label-class-name="my-label"
@ -476,7 +476,9 @@ const skipDev = (devId: number) => {
}; };
const currentDevId = ref<number>(0); const currentDevId = ref<number>(0);
const handleDevChange = (val: EquipmentTableVO) => { const handleDevChange = (val: EquipmentTableVO) => {
currentDevId.value = val.devId; if (val.devId != null) {
currentDevId.value = val.devId;
}
}; };
async function loadDomainOptions() { async function loadDomainOptions() {
await getDomainOptions().then(({ data }) => { await getDomainOptions().then(({ data }) => {

@ -9,6 +9,7 @@
v-model="queryForm.selectName" v-model="queryForm.selectName"
placeholder="请选择" placeholder="请选择"
style="width: 240px" style="width: 240px"
@change="resetSelect"
clearable clearable
> >
<el-option <el-option
@ -20,13 +21,30 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="queryForm.selectName != undefined"> <el-col
:span="6"
v-if="
queryForm.selectName !== undefined &&
queryForm.selectName !== 'regionAreaId'
"
>
<el-input <el-input
v-model="queryForm.selectValue" v-model="queryForm.selectValue"
placeholder="请输入" placeholder="请输入"
style="width: 300px" style="width: 300px"
/> />
</el-col> </el-col>
<el-col :span="6" v-if="queryForm.selectName === 'regionAreaId'">
<el-tree-select
v-model="queryForm.selectValue"
placeholder="请选择所属管理域"
:data="domainOptions"
filterable
check-strictly
style="width: 300px"
:render-after-expand="false"
/>
</el-col>
<el-col :span="buttonColSpan"> <el-col :span="buttonColSpan">
<el-form-item> <el-form-item>
<el-button type="primary" :icon="Search" @click="queryCustomer" <el-button type="primary" :icon="Search" @click="queryCustomer"
@ -140,6 +158,7 @@ import {
import { ElTable } from "element-plus"; import { ElTable } from "element-plus";
import { CustomerVO } from "@/api/customer/types"; import { CustomerVO } from "@/api/customer/types";
import { customerPage, deleteCustom, updateStatus } from "@/api/customer"; import { customerPage, deleteCustom, updateStatus } from "@/api/customer";
import { getDomainOptions } from "@/api/domain";
defineOptions({ defineOptions({
name: "Customer", name: "Customer",
inheritAttrs: false, inheritAttrs: false,
@ -153,7 +172,11 @@ const loading = ref<boolean>(false);
const tableData = ref<CustomerVO[]>([]); const tableData = ref<CustomerVO[]>([]);
const total = ref<number>(0); const total = ref<number>(0);
const router = useRouter(); const router = useRouter();
const options = ref<OptionType[]>([{ label: "客户名称", value: "customName" }]); const domainOptions = ref<OptionType[]>([]);
const options = ref<OptionType[]>([
{ label: "客户名称", value: "customName" },
{ label: "系统管理域", value: "regionAreaId" },
]);
const buttonColSpan = computed(() => { const buttonColSpan = computed(() => {
return queryForm.value.selectName === undefined ? 18 : 12; return queryForm.value.selectName === undefined ? 18 : 12;
}); });
@ -222,6 +245,17 @@ const skipAddCustom = () => {
path: `/resources/custom-add`, path: `/resources/custom-add`,
}); });
}; };
const resetSelect = () => {
queryForm.value.selectValue = undefined;
};
async function loadDomainOptions() {
await getDomainOptions().then(({ data }) => {
domainOptions.value = data;
});
}
onMounted(() => {
loadDomainOptions();
});
</script> </script>
<style scoped></style> <style scoped></style>

@ -198,7 +198,10 @@ const queryForm = ref<SelectForm>({
pageSize: 10, pageSize: 10,
}); });
const loading = ref<boolean>(false); const loading = ref<boolean>(false);
const options = ref<OptionType[]>([{ label: "AD编号", value: "devAdNo" }]); const options = ref<OptionType[]>([
{ label: "AD编号", value: "devAdNo" },
{ label: "设备序列号", value: "devSno" },
]);
const buttonColSpan = computed(() => { const buttonColSpan = computed(() => {
return queryForm.value.selectName === undefined ? 18 : 12; return queryForm.value.selectName === undefined ? 18 : 12;
}); });

@ -9,11 +9,34 @@
<el-button type="primary" :icon="Plus" @click="skipAddOperateType" <el-button type="primary" :icon="Plus" @click="skipAddOperateType"
>新增 >新增
</el-button> </el-button>
<el-button type="danger" :icon="Delete">删除</el-button> <el-popconfirm
width="200"
confirm-button-text="确认"
cancel-button-text="取消"
:icon="InfoFilled"
icon-color="#626AEF"
@confirm="handleDelete"
title="确认删除选中的组件吗?"
>
<template #reference>
<el-button
:disabled="multiples.length === 0"
type="danger"
:icon="Delete"
>删除</el-button
>
</template>
</el-popconfirm>
</div> </div>
</template> </template>
<div class="any-table"> <div class="any-table">
<el-table :data="tableData" v-loading="loading" max-height="450"> <el-table
:data="tableData"
v-loading="loading"
max-height="450"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column <el-table-column
label="组件操作名称" label="组件操作名称"
prop="operateName" prop="operateName"
@ -41,6 +64,7 @@
label="组件上传时间" label="组件上传时间"
prop="fileCreateTime" prop="fileCreateTime"
align="center" align="center"
show-overflow-tooltip
/> />
<el-table-column label="组件操作者" prop="userName" align="center" /> <el-table-column label="组件操作者" prop="userName" align="center" />
<el-table-column label="组件描述" prop="remark" align="center" /> <el-table-column label="组件描述" prop="remark" align="center" />
@ -90,7 +114,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { DevOperateTypeVO } from "@/api/operate-type/types"; import { DevOperateTypeVO } from "@/api/operate-type/types";
import { deleteOperateTypeFile, operateTypePage } from "@/api/operate-type"; import {
deleteOperateType,
deleteOperateTypeFile,
operateTypePage,
} from "@/api/operate-type";
import { import {
Delete, Delete,
InfoFilled, InfoFilled,
@ -106,6 +134,7 @@ defineOptions({
name: "OperateType", name: "OperateType",
inheritAttrs: false, inheritAttrs: false,
}); });
const multiples = ref<DevOperateTypeVO[]>([]);
const tableData = ref<DevOperateTypeVO[]>([]); const tableData = ref<DevOperateTypeVO[]>([]);
const total = ref<number>(0); const total = ref<number>(0);
const loading = ref<boolean>(false); const loading = ref<boolean>(false);
@ -152,6 +181,34 @@ const handleDeleteFile = (fileId?: number) => {
const openOperateFile = (operateName?: string) => { const openOperateFile = (operateName?: string) => {
operateTypeFileRef.value.open(operateName); operateTypeFileRef.value.open(operateName);
}; };
const handleSelectionChange = (val: DevOperateTypeVO[]) => {
multiples.value = val;
};
interface DeleteForm {
operateName?: string;
fileId?: number;
}
const handleDelete = () => {
let ids: DeleteForm[] = [];
multiples.value.forEach((obj) => {
ids.push({ fileId: obj.fileId, operateName: obj.operateName });
});
loading.value = true;
deleteOperateType(ids)
.then(() => {
ElMessage.success({
message: "操作成功",
type: "success",
duration: 1000,
onClose: () => {
getData();
},
});
})
.finally(() => {
loading.value = false;
});
};
onMounted(() => { onMounted(() => {
getData(); getData();
}); });

Loading…
Cancel
Save