diff --git a/src/api/device-type/index.ts b/src/api/device-type/index.ts index 19f241c..06e2c18 100644 --- a/src/api/device-type/index.ts +++ b/src/api/device-type/index.ts @@ -1,7 +1,8 @@ import { + DeviceTypeForm, DeviceTypePageResult, DeviceTypeQuery, - DeviceTypeVO, + DeviceTypeVO } from "@/api/device-type/types"; import request from "@/utils/request"; import { AxiosPromise } from "axios"; @@ -93,3 +94,10 @@ export function serviceBindingDevTypePage( data, }); } +export function addDeviceType(data: DeviceTypeForm) { + return request({ + url: `/api/dev-type/v1/add-device-type`, + method: "POST", + data, + }); +} diff --git a/src/api/device-type/types.ts b/src/api/device-type/types.ts index cc49bb4..fdcc799 100644 --- a/src/api/device-type/types.ts +++ b/src/api/device-type/types.ts @@ -29,3 +29,11 @@ export interface DeviceTypeVO { devHardVer?: string; devTypeDesc?: string; } +export interface DeviceTypeForm { + devTypeId?: number; + devVendorName?: string; + devVendorOui?: string; + devTypeName?: string; + devHardVer?: string; + devTypeDesc?: string; +} diff --git a/src/api/order/types.ts b/src/api/order/types.ts index 6c7e9c9..e7f8f24 100644 --- a/src/api/order/types.ts +++ b/src/api/order/types.ts @@ -28,6 +28,7 @@ export interface OrderTableVO { remark3?: string; receivedDate?: string; + orderDealDate?: string; devOnLineStatus?: string; } @@ -40,7 +41,7 @@ export interface OrderInfoVO { orderRemark?: string; orderServiceType?: string; orderDate?: string; - receiveDate?: string; + receivedDate?: string; orderDealDate?: string; orderDeadline?: string; adNo?: string; diff --git a/src/assets/icons/add.svg b/src/assets/icons/add.svg new file mode 100644 index 0000000..e22932d --- /dev/null +++ b/src/assets/icons/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/delete.svg b/src/assets/icons/delete.svg new file mode 100644 index 0000000..aa34a59 --- /dev/null +++ b/src/assets/icons/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/reboot.svg b/src/assets/icons/reboot.svg new file mode 100644 index 0000000..93dc7ce --- /dev/null +++ b/src/assets/icons/reboot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/reset.svg b/src/assets/icons/reset.svg new file mode 100644 index 0000000..cb09b09 --- /dev/null +++ b/src/assets/icons/reset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/unfold.svg b/src/assets/icons/unfold.svg new file mode 100644 index 0000000..46015a0 --- /dev/null +++ b/src/assets/icons/unfold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts index 3eff550..9c35f59 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -410,6 +410,19 @@ export const constantRoutes: RouteRecordRaw[] = [ title: "设备参数树", }, }, + { + path: "/resources/device-type/add", + name: "AddDeviceType", + component: () => + import( + "@/views/resources/device-type/components/AddDeviceType.vue" + ), + meta: { + hidden: true, + keepAlive: true, + title: "新增设备类型", + }, + }, ], }, ]; diff --git a/src/views/craft-order/broadband/delete-broadband-internet/index.vue b/src/views/craft-order/broadband/delete-broadband-internet/index.vue index 9ef9147..eed7bef 100644 --- a/src/views/craft-order/broadband/delete-broadband-internet/index.vue +++ b/src/views/craft-order/broadband/delete-broadband-internet/index.vue @@ -479,7 +479,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交删除宽带上网工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/broadband/enable-broadband-internet/index.vue b/src/views/craft-order/broadband/enable-broadband-internet/index.vue index c8723e7..9687e5d 100644 --- a/src/views/craft-order/broadband/enable-broadband-internet/index.vue +++ b/src/views/craft-order/broadband/enable-broadband-internet/index.vue @@ -761,7 +761,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交开通宽带上网工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/broadband/update-broadband-internet-mode/index.vue b/src/views/craft-order/broadband/update-broadband-internet-mode/index.vue index 26cb9f5..0d80373 100644 --- a/src/views/craft-order/broadband/update-broadband-internet-mode/index.vue +++ b/src/views/craft-order/broadband/update-broadband-internet-mode/index.vue @@ -448,7 +448,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交修改宽带上网模式的工单吗", () => { loading.value = true; updateBroadbandMode(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/broadband/update-broadband-internet-password/index.vue b/src/views/craft-order/broadband/update-broadband-internet-password/index.vue index 0c55024..1b9595e 100644 --- a/src/views/craft-order/broadband/update-broadband-internet-password/index.vue +++ b/src/views/craft-order/broadband/update-broadband-internet-password/index.vue @@ -447,7 +447,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交修改宽带上网账号工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/broadband/update-broadband-internet/index.vue b/src/views/craft-order/broadband/update-broadband-internet/index.vue index 98777d4..53c1f32 100644 --- a/src/views/craft-order/broadband/update-broadband-internet/index.vue +++ b/src/views/craft-order/broadband/update-broadband-internet/index.vue @@ -447,7 +447,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交修改宽带上网账号工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/broadband/update-broadband-max-number/index.vue b/src/views/craft-order/broadband/update-broadband-max-number/index.vue index 5f4067f..68b1e6b 100644 --- a/src/views/craft-order/broadband/update-broadband-max-number/index.vue +++ b/src/views/craft-order/broadband/update-broadband-max-number/index.vue @@ -488,7 +488,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交修改最大连接数工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/cloud-box/delete-cloud/index.vue b/src/views/craft-order/cloud-box/delete-cloud/index.vue index e368037..30896e9 100644 --- a/src/views/craft-order/cloud-box/delete-cloud/index.vue +++ b/src/views/craft-order/cloud-box/delete-cloud/index.vue @@ -411,7 +411,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交删除TYSLZW工单吗", () => { loading.value = true; addTYSLZW(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/cloud-box/enable-cloud/index.vue b/src/views/craft-order/cloud-box/enable-cloud/index.vue index 27778ce..30756eb 100644 --- a/src/views/craft-order/cloud-box/enable-cloud/index.vue +++ b/src/views/craft-order/cloud-box/enable-cloud/index.vue @@ -447,7 +447,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交开通TYSLZW工单吗", () => { loading.value = true; addTYSLZW(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/iptv/delete-iptv/index.vue b/src/views/craft-order/iptv/delete-iptv/index.vue index b0d1e0a..f6f94ff 100644 --- a/src/views/craft-order/iptv/delete-iptv/index.vue +++ b/src/views/craft-order/iptv/delete-iptv/index.vue @@ -477,7 +477,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交删除IPTV工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/iptv/enable-iptv/index.vue b/src/views/craft-order/iptv/enable-iptv/index.vue index 8349b42..bc9a546 100644 --- a/src/views/craft-order/iptv/enable-iptv/index.vue +++ b/src/views/craft-order/iptv/enable-iptv/index.vue @@ -671,7 +671,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交开通IPTV工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/tyslzw/delete-tyslzw/index.vue b/src/views/craft-order/tyslzw/delete-tyslzw/index.vue index d57c670..5537881 100644 --- a/src/views/craft-order/tyslzw/delete-tyslzw/index.vue +++ b/src/views/craft-order/tyslzw/delete-tyslzw/index.vue @@ -411,7 +411,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交删除TYSLZW工单吗", () => { loading.value = true; addTYSLZW(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/tyslzw/enable-tyslzw/index.vue b/src/views/craft-order/tyslzw/enable-tyslzw/index.vue index 0b9a227..37d6baa 100644 --- a/src/views/craft-order/tyslzw/enable-tyslzw/index.vue +++ b/src/views/craft-order/tyslzw/enable-tyslzw/index.vue @@ -480,7 +480,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交开通TYSLZW工单吗", () => { loading.value = true; addTYSLZW(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/voip/delete-voip/index.vue b/src/views/craft-order/voip/delete-voip/index.vue index 77f9a62..0ef6b22 100644 --- a/src/views/craft-order/voip/delete-voip/index.vue +++ b/src/views/craft-order/voip/delete-voip/index.vue @@ -479,7 +479,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交删除VOIP工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/voip/enable-voip/index.vue b/src/views/craft-order/voip/enable-voip/index.vue index 457d5c5..699e6e0 100644 --- a/src/views/craft-order/voip/enable-voip/index.vue +++ b/src/views/craft-order/voip/enable-voip/index.vue @@ -1202,7 +1202,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交开通VOIP工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/voip/tree-diagram/index.vue b/src/views/craft-order/voip/tree-diagram/index.vue index b25a905..8cb51e1 100644 --- a/src/views/craft-order/voip/tree-diagram/index.vue +++ b/src/views/craft-order/voip/tree-diagram/index.vue @@ -450,7 +450,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交数图修改工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/craft-order/voip/update-voip-password/index.vue b/src/views/craft-order/voip/update-voip-password/index.vue index e6fabf8..f3d2505 100644 --- a/src/views/craft-order/voip/update-voip-password/index.vue +++ b/src/views/craft-order/voip/update-voip-password/index.vue @@ -574,7 +574,13 @@ const submitForm = async (formEl: FormInstance | undefined) => { confirm("确认手动提交修改VOIP密码工单吗", () => { loading.value = true; addCraftOrder(formData.value) - .then(() => {}) + .then(() => { + ElMessage({ + message: "操作成功", + duration: 1000, + type: "success", + }); + }) .finally(() => { loading.value = false; }); diff --git a/src/views/family/operate/order/components/OrderInfoEdit.vue b/src/views/family/operate/order/components/OrderInfoEdit.vue index ce1253d..6eab04b 100644 --- a/src/views/family/operate/order/components/OrderInfoEdit.vue +++ b/src/views/family/operate/order/components/OrderInfoEdit.vue @@ -102,18 +102,18 @@ class-name="my-content" width="150px" > - {{ orderInfo.receiveDate }} - - - {{ orderInfo.orderDealDate }} + {{ orderInfo.receivedDate }} + + + + + + + + + + - {{ orderInfo.orderDeadline }} + {{ orderInfo.orderDealDate }} @@ -163,12 +164,19 @@ width="180" v-if="columns[13].show" /> + @@ -215,18 +223,19 @@ const buttonColSpan = computed(() => { const columns = ref([ { name: "工单序号", show: true }, { name: "受理号", show: true }, - { name: "开工单日期", show: true }, + { name: "开工单日期", show: false }, { name: "AD编号", show: true }, { name: "工单状态", show: true }, { name: "操作类型", show: false }, { name: "工单业务类型", show: false }, { name: "业务类型", show: true }, - { name: "端口", show: true }, + { name: "端口", show: false }, { name: "PPPoe账号", show: true }, - { name: "电话号码", show: true }, + { name: "电话号码", show: false }, { name: "系统管理域", show: true }, { name: "是否定制终端", show: false }, { name: "工单接收日期", show: false }, + { name: "工单处理日期", show: false }, { name: "设备上线状态", show: false }, ]); const changeColumns = (newColumns: TableColumns[]) => { diff --git a/src/views/family/operate/remote-operation/components/DeviceOrder.vue b/src/views/family/operate/remote-operation/components/DeviceOrder.vue index df72b21..7050fe1 100644 --- a/src/views/family/operate/remote-operation/components/DeviceOrder.vue +++ b/src/views/family/operate/remote-operation/components/DeviceOrder.vue @@ -34,7 +34,8 @@ @@ -124,12 +125,19 @@ width="180" v-if="columns[13].show" /> + @@ -163,18 +171,19 @@ const tableData = ref([]); const columns = ref([ { name: "工单序号", show: true }, { name: "受理号", show: true }, - { name: "开工单日期", show: true }, + { name: "开工单日期", show: false }, { name: "AD编号", show: true }, { name: "工单状态", show: true }, { name: "操作类型", show: false }, { name: "工单业务类型", show: false }, { name: "业务类型", show: true }, - { name: "端口", show: true }, + { name: "端口", show: false }, { name: "PPPoe账号", show: true }, - { name: "电话号码", show: true }, + { name: "电话号码", show: false }, { name: "系统管理域", show: true }, { name: "是否定制终端", show: false }, { name: "工单接收日期", show: false }, + { name: "工单处理日期", show: false }, { name: "设备上线状态", show: false }, ]); const changeColumns = (newColumns: TableColumns[]) => { diff --git a/src/views/family/operate/remote-operation/components/DeviceParamTree.vue b/src/views/family/operate/remote-operation/components/DeviceParamTree.vue index 6f77f15..35d53fd 100644 --- a/src/views/family/operate/remote-operation/components/DeviceParamTree.vue +++ b/src/views/family/operate/remote-operation/components/DeviceParamTree.vue @@ -30,12 +30,16 @@ }" :expand-on-click-node="false" default-expand-all + accordion > @@ -114,7 +120,7 @@
新增实例新增实例 删除实例 +
    +
  • + + 参数值 +
  • +
  • + + 展开节点 +
  • +
  • + + 刷新节点 +
  • +
  • + + 新增实例 +
  • +
  • + + 删除实例 +
  • +
  • + + 重启设备 +
  • +
  • + + 恢复出厂 +
  • +
@@ -153,6 +205,11 @@ const route = useRoute(); let devId: number = parseInt(route.params.devId); const treeParamAttributeRef = ref(); const deviceTreeRef = ref(); +const contentTreeVisible = ref(false); +const { proxy } = getCurrentInstance()!; +const left = ref(0); +const top = ref(0); + const loading = ref(false); const treeList = ref([ { @@ -168,28 +225,27 @@ const currentTree = ref({ childNode: true, children: [], }); -const handleNodeClick = (data_: OptionTree) => { +const handleNodeClick = () => { loading.value = true; - let nodePath = data_.nodePath; + let nodePath = currentTree.value.nodePath; remoteTreeNode(devId, nodePath) .then(({ data }) => { - if (!data_.children) { - data_.children = []; - } - data_.children = data; - treeList.value = [...treeList.value]; + childNode.value = data; + addInstanceNode_(treeList.value[0], currentTree.value.nodePath); }) .finally(() => { loading.value = false; }); }; - const changeCurrentTree = (data: OptionTree) => { currentTree.value = data; - if (data.childNode) { - return; - } - let nodePath = data.nodePath; +}; +const getParameterValue = () => { + // currentTree.value = data; + // if (data.childNode) { + // return; + // } + let nodePath = currentTree.value.nodePath; loading.value = true; remoteGetParameterValues(devId, nodePath) .then(({ data }) => { @@ -222,13 +278,13 @@ const saveParam = () => { const openParamAttribute = () => { treeParamAttributeRef.value.open(devId, currentTree.value.nodePath); }; -const childNode = ref({}); +const childNode = ref([]); const addInstanceNode = () => { confirm("确定添加实例吗", () => { loading.value = true; remoteAddInstanceNode(devId, currentTree.value.nodePath) .then(({ data }) => { - childNode.value = data; + childNode.value = [data]; addInstanceNode_(treeList.value[0], currentTree.value.nodePath); }) .finally(() => { @@ -255,8 +311,7 @@ const addInstanceNode_ = (tree: OptionTree, nodePath?: string) => { if (!tree.children) { tree.children = []; } - tree.children?.push(childNode.value); - console.log(treeList.value[0]); + tree.children?.push(...childNode.value); return; } // 如果当前节点有子节点,则递归查找子节点 @@ -321,6 +376,22 @@ const factoryReset = () => { }); }); }; +function closeContent() { + contentTreeVisible.value = false; +} +watch(contentTreeVisible, (value) => { + if (value) { + document.body.addEventListener("click", closeContent); + } else { + document.body.removeEventListener("click", closeContent); + } +}); +const openView = (data: OptionTree, e: MouseEvent) => { + currentTree.value = data; + left.value = e.pageX - 190; + top.value = e.pageY; + contentTreeVisible.value = true; +}; diff --git a/src/views/family/operate/remote-operation/components/TreeParamAttribute.vue b/src/views/family/operate/remote-operation/components/TreeParamAttribute.vue index 82f6d34..ad53d13 100644 --- a/src/views/family/operate/remote-operation/components/TreeParamAttribute.vue +++ b/src/views/family/operate/remote-operation/components/TreeParamAttribute.vue @@ -10,7 +10,7 @@ class-name="my-content" width="15px" > - InternetGatewayDevice.DeviceSummary + {{ nodePath }} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/src/views/resources/device-type/index.vue b/src/views/resources/device-type/index.vue index 8dd0743..301ea42 100644 --- a/src/views/resources/device-type/index.vue +++ b/src/views/resources/device-type/index.vue @@ -73,7 +73,7 @@