初始化提交

main
mhsnet 7 months ago
commit 9bd6df2cca

13
.env

@ -0,0 +1,13 @@
# 项目本地运行端口号
VITE_PORT=8090
# open 运行 npm run dev 时自动打开浏览
VITE_OPEN=true
# 内部测试
VITE_BASE_URL='http://222.71.165.188:8102'
# VITE_BASE_URL='http://localhost:8102'
# VITE_BASE_URL='http://192.168.30.3:8102'
# 外网测试
# VITE_BASE_URL='http://60.190.91.78:8102'
# 接口地址
VITE_API_URL=/api

@ -0,0 +1,15 @@
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')
module.exports = {
root: true,
'extends': [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/eslint-config-typescript',
'@vue/eslint-config-prettier/skip-formatting'
],
parserOptions: {
ecmaVersion: 'latest'
}
}

28
.gitignore vendored

@ -0,0 +1,28 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none"
}

@ -0,0 +1,8 @@
{
"recommendations": [
"Vue.volar",
"Vue.vscode-typescript-vue-plugin",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
}

@ -0,0 +1,18 @@
# gw-web
## Project Setup
```sh
yarn
```
### Compile and Hot-Reload for Development
```sh
yarn run dev
```
### Type-Check, Compile and Minify for Production
```sh
yarn run build
```

1
env.d.ts vendored

@ -0,0 +1 @@
/// <reference types="vite/client" />

Binary file not shown.

Binary file not shown.

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

@ -0,0 +1,52 @@
{
"name": "gw-web",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview",
"test:unit": "vitest",
"build-only": "vite build",
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"format": "prettier --write src/"
},
"dependencies": {
"@antv/g2": "^5.1.9",
"ant-design-vue": "4.x",
"axios": "^1.6.2",
"form-data": "^4.0.0",
"jsencrypt": "^3.3.2",
"lodash": "^4.17.21",
"pinia": "^2.1.7",
"vue": "^3.3.4",
"vue-i18n": "^9.8.0",
"vue-router": "^4.2.5",
"vxe-table": "^4.5.13",
"web-storage-cache": "^1.1.1",
"xe-utils": "^3.5.14"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.3.3",
"@tsconfig/node18": "^18.2.2",
"@types/jsdom": "^21.1.3",
"@types/lodash": "^4.14.202",
"@types/node": "^18.18.5",
"@vitejs/plugin-vue": "^4.4.0",
"@vitejs/plugin-vue-jsx": "^3.0.2",
"@vue/eslint-config-prettier": "^8.0.0",
"@vue/eslint-config-typescript": "^12.0.0",
"@vue/test-utils": "^2.4.1",
"@vue/tsconfig": "^0.4.0",
"eslint": "^8.49.0",
"eslint-plugin-vue": "^9.17.0",
"jsdom": "^22.1.0",
"npm-run-all2": "^6.1.1",
"prettier": "^3.0.3",
"typescript": "~5.2.0",
"vite": "^4.4.11",
"vitest": "^0.34.6",
"vue-tsc": "^1.8.19"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,11 @@
<script setup lang="ts">
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
</script>
<template>
<RouterView />
</template>
<style scoped>
</style>

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 成套设备的防护等级列表获取
export const getAppIPGradePaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetAppIPGradePaging`, data })
}
// 成套设备的防护等级详情
export const getAppIPGrade = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetAppIPGrade`, data })
}
// 成套设备的防护等级保存
export const saveAppIPGrade = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveAppIPGrade`, data })
}
// 成套设备的防护等级编辑
export const editAppIPGrade = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditAppIPGrade`, data })
}
// 成套设备的防护等级删除
export const removeAppIPGrade = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveAppIPGrade`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 外观质量检查列表获取
export const getAppQualityInspectionPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetAppQualityInspectionPaging`, data })
}
// 外观质量检查详情
export const getAppQualityInspection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetAppQualityInspection`, data })
}
// 外观质量检查保存
export const saveAppQualityInspection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveAppQualityInspection`, data })
}
// 外观质量检查编辑
export const editAppQualityInspection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditAppQualityInspection`, data })
}
// 外观质量检查删除
export const removeAppQualityInspection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveAppQualityInspection`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 材质列表获取
export const getBaseCompositionPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingBaseCompositionList`, data })
}
// 材质详情
export const getBaseComposition = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBaseComposition`, data })
}
// 材质保存
export const saveBaseComposition = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBaseComposition`, data })
}
// 材质编辑
export const editBaseComposition = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBaseComposition`, data })
}
// 材质删除
export const removeBaseComposition = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBaseComposition`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 物料列表获取
export const getBaseMaterialPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingBaseMaterialList`, data })
}
// 物料详情
export const getBaseMaterial = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBaseMaterial`, data })
}
// 物料保存
export const saveBaseMaterial = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBaseMaterial`, data })
}
// 物料编辑
export const editBaseMaterial = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBaseMaterial`, data })
}
// 物料删除
export const removeBaseMaterial = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBaseMaterial`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 供应商列表获取
export const getBaseSupplierPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingBaseSupplierList`, data })
}
// 供应商详情
export const getBaseSupplier = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBaseSupplier`, data })
}
// 供应商保存
export const saveBaseSupplier = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBaseSupplier`, data })
}
// 供应商编辑
export const editBaseSupplier = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBaseSupplier`, data })
}
// 供应商删除
export const removeBaseSupplier = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBaseSupplier`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 电压等级列表获取
export const getBaseVoltagePaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingBaseVoltageList`, data })
}
// 电压等级详情
export const getBaseVoltage = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBaseVoltage`, data })
}
// 电压等级保存
export const saveBaseVoltage = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBaseVoltage`, data })
}
// 电压等级编辑
export const editBaseVoltage = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBaseVoltage`, data })
}
// 电压等级删除
export const removeBaseVoltage = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBaseVoltage`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 避雷器列表获取
export const getBiLeiQiPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingBiLeiQiList`, data })
}
// 避雷器详情
export const getBiLeiQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBiLeiQi`, data })
}
// 避雷器保存
export const saveBiLeiQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBiLeiQi`, data })
}
// 避雷器编辑
export const editBiLeiQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBiLeiQi`, data })
}
// 避雷器删除
export const removeBiLeiQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBiLeiQi`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 壳体外观结构列表获取
export const getBoxAppStructPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBoxAppStructPaging`, data })
}
// 壳体外观结构详情
export const getBoxAppStruct = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBoxAppStruct`, data })
}
// 壳体外观结构保存
export const saveBoxAppStruct = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBoxAppStruct`, data })
}
// 壳体外观结构编辑
export const editBoxAppStruct = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBoxAppStruct`, data })
}
// 壳体外观结构删除
export const removeBoxAppStruct = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBoxAppStruct`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 柜体材质,厚度及尺寸列表获取
export const getBoxMateQualityPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBoxMateQualityPaging`, data })
}
// 柜体材质,厚度及尺寸详情
export const getBoxMateQuality = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetBoxMateQuality`, data })
}
// 柜体材质,厚度及尺寸保存
export const saveBoxMateQuality = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveBoxMateQuality`, data })
}
// 柜体材质,厚度及尺寸编辑
export const editBoxMateQuality = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditBoxMateQuality`, data })
}
// 柜体材质,厚度及尺寸删除
export const removeBoxMateQuality = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveBoxMateQuality`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 元器件选择及安装检查列表获取
export const getComponentInspectPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetComponentInspectPaging`, data })
}
// 元器件选择及安装检查详情
export const getComponentInspect = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetComponentInspect`, data })
}
// 元器件选择及安装检查保存
export const saveComponentInspect = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveComponentInspect`, data })
}
// 元器件选择及安装检查编辑
export const editComponentInspect = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditComponentInspect`, data })
}
// 元器件选择及安装检查删除
export const removeComponentInspect = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveComponentInspect`, data })
}

@ -0,0 +1,6 @@
import request from '@/config/axios'
// 导体和布线列表获取
export const getConCodeAndWoCode = async () => {
return await request.post({ url: `/DistributionBoxTesting/GetConCodeAndWoCode` })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 导体和布线列表获取
export const getDaoXianPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDaoXianPaging`, data })
}
// 导体和布线详情
export const getDaoXian = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDaoXian`, data })
}
// 导体和布线保存
export const saveDaoXian = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveDaoXian`, data })
}
// 导体和布线编辑
export const editDaoXian = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditDaoXian`, data })
}
// 导体和布线删除
export const removeDaoXian = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveDaoXian`, data })
}

@ -0,0 +1,11 @@
import request from '@/config/axios'
// 获取Dashborad图表数据
export const getDashboardChart = async () => {
return await request.post({ url: `/DistributionBoxTesting/GetDashboardChart` })
}
// 获取Dashborad图表数据
export const getDashboardData = async () => {
return await request.post({ url: `/DistributionBoxTesting/GetDashboardData` })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 数据中心采购订单列表获取
export const getDataCenterPurchaseOrderPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipBigTableList`, data })
}
// 数据中心采购订单详情
export const getDataCenterPurchaseOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/GetDataCenterPurchaseOrder`, data })
}
// 数据中心采购订单保存
export const saveDataCenterPurchaseOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/SaveDataCenterPurchaseOrder`, data })
}
// 数据中心采购订单编辑
export const editDataCenterPurchaseOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/EditDataCenterPurchaseOrder`, data })
}
// 数据中心采购订单删除
export const removeDataCenterPurchaseOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/RemoveDataCenterPurchaseOrder`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 电流互感器列表获取
export const getDianLiuHuGanQiPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDianLiuHuGanQiPaging`, data })
}
// 电流互感器详情
export const getDianLiuHuGanQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDianLiuHuGanQi`, data })
}
// 电流互感器保存
export const saveDianLiuHuGanQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveDianLiuHuGanQi`, data })
}
// 电流互感器编辑
export const editDianLiuHuGanQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditDianLiuHuGanQi`, data })
}
// 电流互感器删除
export const removeDianLiuHuGanQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveDianLiuHuGanQi`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 电容器列表获取
export const getDianRongQiPaging= async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingDianRongQiList`, data })
}
// 电容器详情
export const getDianRongQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDianRongQi`, data })
}
// 电容器保存
export const saveDianRongQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveDianRongQi`, data })
}
// 电容器编辑
export const editDianRongQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditDianRongQi`, data })
}
// 电容器删除
export const removeDianRongQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveDianRongQi`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 断路器列表获取
export const getDuanLuQiPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingDuanLuQiList`, data })
}
// 断路器详情
export const getDuanLuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDuanLuQi`, data })
}
// 断路器保存
export const saveDuanLuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveDuanLuQi`, data })
}
// 断路器编辑
export const editDuanLuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditDuanLuQi`, data })
}
// 断路器删除
export const removeDuanLuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveDuanLuQi`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 爬电距离列表获取
export const getElecDistancePaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetElecDistancePaging`, data })
}
// 爬电距离详情
export const getElecDistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetElecDistance`, data })
}
// 爬电距离保存
export const saveElecDistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveElecDistance`, data })
}
// 爬电距离编辑
export const editElecDistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditElecDistance`, data })
}
// 爬电距离删除
export const removeElecDistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveElecDistance`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 电气间隙列表获取
export const getElecGapPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetElecGapPaging`, data })
}
// 电气间隙详情
export const getElecGap = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetElecGap`, data })
}
// 电气间隙保存
export const saveElecGap = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveElecGap`, data })
}
// 电气间隙编辑
export const editElecGap = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditElecGap`, data })
}
// 电气间隙删除
export const removeElecGap = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveElecGap`, data })
}

@ -0,0 +1,34 @@
import request from '@/config/axios'
import FormData from 'form-data'
// 配电箱其他附件列表获取
export const getPagingFileList = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingDbOtFuV105List`, data })
}
// 配电箱其他附件详情
export const getFile = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetDbOtFuV105`, data })
}
// 配电箱其他附件保存
export const saveFile = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveDbOtFuV105`, data })
}
// 配电箱其他附件编辑
export const editFile = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditDbOtFuV105`, data })
}
// 配电箱其他附件删除
export const removeFile = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveDbOtFuV105`, data })
}
// 保存文件
export const saveFileItem = async (file: any) => {
const fd = new FormData()
fd.append('files', file)
// return await request.post({
// url: `/DistributionBoxTesting/UploadFile`,
// fd,
// headersType: 'multipart/form-data'
// })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 成品入库列表获取
export const getFinishedProductWarehousingPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetFinishedProductWarehousingPaging`, data })
}
// 成品入库详情
export const getFinishedProductWarehousing = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetFinishedProductWarehousing`, data })
}
// 成品入库保存
export const saveFinishedProductWarehousing = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveFinishedProductWarehousing`, data })
}
// 成品入库编辑
export const editFinishedProductWarehousing = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditFinishedProductWarehousing`, data })
}
// 成品入库删除
export const removeFinishedProductWarehousing = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveFinishedProductWarehousing`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 熔断器式隔离开关列表获取
export const getFusedIsolationSwitchPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingFusedIsolationSwitchList`, data })
}
// 熔断器式隔离开关详情
export const getFusedIsolationSwitch = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetFusedIsolationSwitch`, data })
}
// 熔断器式隔离开关保存
export const saveFusedIsolationSwitch = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveFusedIsolationSwitch`, data })
}
// 熔断器式隔离开关编辑
export const editFusedIsolationSwitch = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditFusedIsolationSwitch`, data })
}
// 熔断器式隔离开关删除
export const removeFusedIsolationSwitch = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveFusedIsolationSwitch`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 绝缘电阻的验证列表获取
export const getInsulationResistancePaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetInsulationResistancePaging`, data })
}
// 绝缘电阻的验证详情
export const getInsulationResistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetInsulationResistance`, data })
}
// 绝缘电阻的验证保存
export const saveInsulationResistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveInsulationResistance`, data })
}
// 绝缘电阻的验证编辑
export const editInsulationResistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditInsulationResistance`, data })
}
// 绝缘电阻的验证删除
export const removeInsulationResistance = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveInsulationResistance`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 重点原材料库存列表获取
export const getKeyRawMaterialInventoryPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipSupplierMatInventoryList`, data })
}
// 重点原材料库存详情
export const getKeyRawMaterialInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetEipSupplierMatInventory`, data })
}
// 重点原材料库存保存
export const saveKeyRawMaterialInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveEipSupplierMatInventory`, data })
}
// 重点原材料库存编辑
export const editKeyRawMaterialInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditEipSupplierMatInventory`, data })
}
// 重点原材料库存删除
export const removeKeyRawMaterialInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveEipSupplierMatInventory`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 浪涌保护器列表获取
export const getLangYongBaoHuQiPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetLangYongBaoHuQiPaging`, data })
}
// 浪涌保护器详情
export const getLangYongBaoHuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetLangYongBaoHuQi`, data })
}
// 浪涌保护器保存
export const saveLangYongBaoHuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveLangYongBaoHuQi`, data })
}
// 浪涌保护器编辑
export const editLangYongBaoHuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditLangYongBaoHuQi`, data })
}
// 浪涌保护器删除
export const removeLangYongBaoHuQi = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveLangYongBaoHuQi`, data })
}

@ -0,0 +1,27 @@
import request from '@/config/axios'
// 登录验证
export const getUserChk: any = async (data: any) => {
const queryParamsA: any = {
filter: {
logic: 0,
filters: [
{
field: 'UserName',
operator: "Eq",
value: data.UserName
},
{
field: 'Password',
operator: "Eq",
value: data.Password
}
]
}
}
let rt = await request.post({
url: `/DistributionBoxTesting/GetUserInfo`,
data: queryParamsA
})
return rt
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 机械操作列表获取
export const getMachineOperationPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetMachineOperationPaging`, data })
}
// 机械操作详情
export const getMachineOperation = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetMachineOperation`, data })
}
// 机械操作保存
export const saveMachineOperation = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveMachineOperation`, data })
}
// 机械操作编辑
export const editMachineOperation = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditMachineOperation`, data })
}
// 机械操作删除
export const removeMachineOperation = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveMachineOperation`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 产成品库存列表获取
export const getManufacturedInventoryPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipSupplierProductList`, data })
}
// 产成品库存详情
export const getManufacturedInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetEipSupplierProduct`, data })
}
// 产成品库存保存
export const saveManufacturedInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveEipSupplierProduct`, data })
}
// 产成品库存编辑
export const editManufacturedInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditEipSupplierProduct`, data })
}
// 产成品库存删除
export const removeManufacturedInventory = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveEipSupplierProduct`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 母排列表获取
export const getMuPaiPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetMuPaiPaging`, data })
}
// 母排详情
export const getMuPai = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetMuPai`, data })
}
// 母排保存
export const saveMuPai = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveMuPai`, data })
}
// 母排编辑
export const editMuPai = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditMuPai`, data })
}
// 母排删除
export const removeMuPai = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveMuPai`, data })
}

@ -0,0 +1,6 @@
import request from '@/config/axios'
// 获取采购订单列表获取
export const getObtainPurchaseOrderPaging = async () => {
return await request.post({ url: `/DistributionBoxTesting/GetSupplierSendData` })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 缺相保护试验列表获取
export const getPhaseLossProtectionTestingPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPhaseLossProtectionTestingPaging`, data })
}
// 缺相保护试验详情
export const getPhaseLossProtectionTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPhaseLossProtectionTesting`, data })
}
// 缺相保护试验保存
export const savePhaseLossProtectionTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SavePhaseLossProtectionTesting`, data })
}
// 缺相保护试验编辑
export const editPhaseLossProtectionTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditPhaseLossProtectionTesting`, data })
}
// 缺相保护试验删除
export const removePhaseLossProtectionTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemovePhaseLossProtectionTesting`, data })
}

@ -0,0 +1,26 @@
import request from '@/config/axios'
// 工频耐受试验列表获取
export const getPowerFrequancyTestingPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GePowerFrequancyTestingPaging`, data })
}
// 工频耐受试验详情
export const getPowerFrequancyTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPowerFrequancyTesting`, data })
}
// 工频耐受试验保存
export const savePowerFrequancyTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SavePowerFrequancyTesting`, data })
}
// 工频耐受试验编辑
export const editPowerFrequancyTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditPowerFrequancyTesting`, data })
}
// 工频耐受试验删除
export const removePowerFrequancyTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemovePowerFrequancyTesting`, data })
}
// 获取试验信息
export const getTestVoltage = async () => {
return await request.post({ url: `/DistributionBoxTesting/GetCOM4Data` })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 通电操作试验列表获取
export const getPowerOperationTestingPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPowerOperationTestingPaging`, data })
}
// 通电操作试验详情
export const getPowerOperationTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPowerOperationTesting`, data })
}
// 通电操作试验保存
export const savePowerOperationTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SavePowerOperationTesting`, data })
}
// 通电操作试验编辑
export const editPowerOperationTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditPowerOperationTesting`, data })
}
// 通电操作试验删除
export const removePowerOperationTesting = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemovePowerOperationTesting`, data })
}

@ -0,0 +1,78 @@
import request from '@/config/axios'
// 生产订单列表获取
export const getProductionOrderPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipSupplierIpoList`, data })
// return {
// Code: 0,
// Data: null,
// List: [
// {
// ID: 1,
// purchaserHqCode: 'purchaserHaCodeA1',
// ipoType: 'soNoA1',
// supplierCode: 'supplierCodeA1',
// supplierName: 'buyerCodeA1',
// ipoNo: 'buyerNameA1',
// planStartDate: 'buyerProvinceA1',
// planFinishDate: 'soStatusA1',
// actualStartDate: 'ownerIdA1',
// actualFinishDate: 'openIdA1',
// plantName: 'dataSourceA1',
// workshopName: 'dataSourceCreateTimeA1',
// ipoStatus: 'dataSourceCreateTimeA1',
// center: 'dataSourceCreateTimeA1',
// dataSource: 'dataSourceCreateTimeA1',
// dataSourceCreateTime: 'dataSourceA1',
// ownerId: 'dataSourceCreateTimeA1',
// openId: 'dataSourceCreateTimeA1'
// }
// ],
// Msg: null,
// PageIndex: 1,
// PageSize: 10,
// Success: true,
// Total: 1
// }
}
// 生产订单详情
export const getProductionOrder = async (data: any) => {
// return {
// Code: 0,
// Data: {
// ID: 1,
// purchaserHqCode: 'purchaserHaCodeA1',
// ipoType: 'soNoA1',
// supplierCode: 'supplierCodeA1',
// supplierName: 'buyerCodeA1',
// ipoNo: 'buyerNameA1',
// planStartDate: 'buyerProvinceA1',
// planFinishDate: 'soStatusA1',
// actualStartDate: 'ownerIdA1',
// actualFinishDate: 'openIdA1',
// plantName: 'dataSourceA1',
// workshopName: 'dataSourceCreateTimeA1',
// ipoStatus: 'dataSourceCreateTimeA1',
// center: 'dataSourceCreateTimeA1',
// dataSource: 'dataSourceCreateTimeA1',
// dataSourceCreateTime: 'dataSourceA1',
// ownerId: 'dataSourceCreateTimeA1',
// openId: 'dataSourceCreateTimeA1'
// },
// Msg: null,
// Success: true
// }
return await request.post({ url: `/DistributionBoxTesting/GetEipSupplierIpo`, data })
}
// 生产订单保存
export const saveProductionOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/SaveProductionOrder`, data })
}
// 生产订单编辑
export const editProductionOrder = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditEipSupplierIpo`, data })
}
// 生产订单删除
export const removeProductionOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/RemoveProductionOrder`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 生产工单列表获取
export const getProductionWorkOrderPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipSupplierWoList`, data })
}
// 生产工单详情
export const getProductionWorkOrder = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetEipSupplierWo`, data })
}
// 生产工单保存
export const saveProductionWorkOrder = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveEipSupplierWo`, data })
}
// 生产工单编辑
export const editProductionWorkOrder = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditEipSupplierWo`, data })
}
// 生产工单删除
export const removeProductionWorkOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/RemoveProductionWorkOrder`, data })
}

@ -0,0 +1,26 @@
import request from '@/config/axios'
// 保护措施和保护电路连续性验证列表获取
export const getProtectionCircuitPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetProtectionCircuitPaging`, data })
}
// 保护措施和保护电路连续性验证详情
export const getProtectionCircuit = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetProtectionCircuit`, data })
}
// 保护措施和保护电路连续性验证保存
export const saveProtectionCircuit = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveProtectionCircuit`, data })
}
// 保护措施和保护电路连续性验证编辑
export const editProtectionCircuit = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditProtectionCircuit`, data })
}
// 保护措施和保护电路连续性验证删除
export const removeProtectionCircuit = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveProtectionCircuit`, data })
}
// 获取试验信息
export const getCurrentResistance = async () => {
return await request.post({ url: `/DistributionBoxTesting/GetCOM3Data` })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 销售订单列表获取
export const getSaleOrderPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipSupplierSoList`, data })
}
// 销售订单详情
export const getSaleOrder = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetEipSupplierSo`, data })
}
// 销售订单保存
export const saveSaleOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/SaveSaleOrder`, data })
}
// 销售订单编辑
export const editSaleOrder = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditEipSupplierSo`, data })
}
// 销售订单删除
export const removeSaleOrder = async (data: any) => {
// return await request.post({ url: `/DistributionBoxTesting/RemoveSaleOrder`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 剩余电流动作保护器列表获取
export const getShengYuDianLiuDongZuoBaoHuPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetShengYuDianLiuDongZuoBaoHuPaging`, data })
}
// 剩余电流动作保护器详情
export const getShengYuDianLiuDongZuoBaoHu = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetShengYuDianLiuDongZuoBaoHu`, data })
}
// 剩余电流动作保护器保存
export const saveShengYuDianLiuDongZuoBaoHu = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveShengYuDianLiuDongZuoBaoHu`, data })
}
// 剩余电流动作保护器编辑
export const editShengYuDianLiuDongZuoBaoHu = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditShengYuDianLiuDongZuoBaoHu`, data })
}
// 剩余电流动作保护器删除
export const removeShengYuDianLiuDongZuoBaoHu = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveShengYuDianLiuDongZuoBaoHu`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 备品备件库列表获取
export const getSparePartsWarehousePaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetPagingEipSupplierSpareProdList`, data })
}
// 备品备件库详情
export const getSparePartsWarehouse = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetEipSupplierSpareProd`, data })
}
// 备品备件库保存
export const saveSparePartsWarehouse = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveEipSupplierSpareProd`, data })
}
// 备品备件库编辑
export const editSparePartsWarehouse = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditEipSupplierSpareProd`, data })
}
// 备品备件库删除
export const removeSparePartsWarehouse = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveEipSupplierSpareProd`, data })
}

@ -0,0 +1,22 @@
import request from '@/config/axios'
// 工频过电压保护试验列表获取
export const getVoltageProtectionPaging = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetVoltageProtectionPaging`, data })
}
// 工频过电压保护试验详情
export const getVoltageProtection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/GetVoltageProtection`, data })
}
// 工频过电压保护试验保存
export const saveVoltageProtection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/SaveVoltageProtection`, data })
}
// 工频过电压保护试验编辑
export const editVoltageProtection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/EditVoltageProtection`, data })
}
// 工频过电压保护试验删除
export const removeVoltageProtection = async (data: any) => {
return await request.post({ url: `/DistributionBoxTesting/RemoveVoltageProtection`, data })
}

@ -0,0 +1,86 @@
/* color palette from <https://github.com/vuejs/theme> */
:root {
--vt-c-white: #ffffff;
--vt-c-white-soft: #f8f8f8;
--vt-c-white-mute: #f2f2f2;
--vt-c-black: #181818;
--vt-c-black-soft: #222222;
--vt-c-black-mute: #282828;
--vt-c-indigo: #2c3e50;
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
--vt-c-text-light-1: var(--vt-c-indigo);
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
--vt-c-text-dark-1: var(--vt-c-white);
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
}
/* semantic color variables for this project */
:root {
--color-background: var(--vt-c-white);
--color-background-soft: var(--vt-c-white-soft);
--color-background-mute: var(--vt-c-white-mute);
--color-border: var(--vt-c-divider-light-2);
--color-border-hover: var(--vt-c-divider-light-1);
--color-heading: var(--vt-c-text-light-1);
--color-text: var(--vt-c-text-light-1);
--section-gap: 160px;
}
@media (prefers-color-scheme: dark) {
:root {
--color-background: var(--vt-c-black);
--color-background-soft: var(--vt-c-black-soft);
--color-background-mute: var(--vt-c-black-mute);
--color-border: var(--vt-c-divider-dark-2);
--color-border-hover: var(--vt-c-divider-dark-1);
--color-heading: var(--vt-c-text-dark-1);
--color-text: var(--vt-c-text-dark-2);
}
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
font-weight: normal;
}
body {
min-height: 100vh;
color: var(--color-text);
background: var(--color-background);
transition:
color 0.5s,
background-color 0.5s;
line-height: 1.6;
font-family:
Inter,
-apple-system,
BlinkMacSystemFont,
'Segoe UI',
Roboto,
Oxygen,
Ubuntu,
Cantarell,
'Fira Sans',
'Droid Sans',
'Helvetica Neue',
sans-serif;
font-size: 15px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

@ -0,0 +1,6 @@
:root {
--vxe-modal-header-background-color: #008080;
}
.vxe-modal--header-right {
color: white;
}

@ -0,0 +1,44 @@
@font-face {
font-family: 'AlibabaPuHuiTi-3-35-Thin';
src: url('./font/AlibabaPuHuiTi-3-35-Thin.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-45-Light';
src: url('./font/AlibabaPuHuiTi-3-45-Light.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-55-Regular';
src: url('./font/AlibabaPuHuiTi-3-55-Regular.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-65-Medium';
src: url('./font/AlibabaPuHuiTi-3-65-Medium.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-75-SemiBold';
src: url('./font/AlibabaPuHuiTi-3-75-SemiBold.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-85-Bold';
src: url('./font/AlibabaPuHuiTi-3-85-Bold.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-95-ExtraBold';
src: url('./font/AlibabaPuHuiTi-3-95-ExtraBold.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-105-Heavy';
src: url('./font/AlibabaPuHuiTi-3-105-Heavy.otf')
}
@font-face {
font-family: 'AlibabaPuHuiTi-3-115-Black';
src: url('./font/AlibabaPuHuiTi-3-115-Black.otf')
}

@ -0,0 +1,539 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path stroke viewBox IE
normalize.css */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,179 @@
@font-face {
font-family: "iconfont"; /* Project id 4359161 */
src: url('iconfont.woff2?t=1701765948485') format('woff2'),
url('iconfont.woff?t=1701765948485') format('woff'),
url('iconfont.ttf?t=1701765948485') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-duanluqi:before {
content: "\e87a";
}
.icon-rongduankaiguan:before {
content: "\e601";
}
.icon-huishouzhan:before {
content: "\e637";
}
.icon-tuisongrizhi:before {
content: "\e668";
}
.icon-shiwuid:before {
content: "\e648";
}
.icon-cailiaocangku:before {
content: "\e67d";
}
.icon-chengpincangku:before {
content: "\e665";
}
.icon-beijiancangku:before {
content: "\e65d";
}
.icon-shengchangongd:before {
content: "\e627";
}
.icon-biangong:before {
content: "\e614";
}
.icon-paichanjihua:before {
content: "\e63c";
}
.icon-shengchandingdan:before {
content: "\e677";
}
.icon-gongdanxinxi:before {
content: "\e613";
}
.icon-caigou:before {
content: "\e887";
}
.icon-xiaoshoudingdan:before {
content: "\e622";
}
.icon-caigouliebiao:before {
content: "\e625";
}
.icon-shengchanjihua:before {
content: "\e667";
}
.icon-fanghudengji:before {
content: "\e7a8";
}
.icon-waiguanzhiliangjiancha:before {
content: "\e612";
}
.icon-quexiangbaohushiyan:before {
content: "\e626";
}
.icon-guoyashiy:before {
content: "\e6ca";
}
.icon-lianxuxingyanz:before {
content: "\e619";
}
.icon-gongpinnaishou:before {
content: "\e639";
}
.icon-padianjuli:before {
content: "\e604";
}
.icon-ketiwaiguan:before {
content: "\e645";
}
.icon-dianqijianxi:before {
content: "\e636";
}
.icon-daotibuxian:before {
content: "\e67a";
}
.icon-yuanqijianxzaz:before {
content: "\e70c";
}
.icon-sydianliubaohuqi:before {
content: "\e607";
}
.icon-guiti:before {
content: "\e72e";
}
.icon-jixiecaozuo:before {
content: "\e635";
}
.icon-tongdiancaozuo:before {
content: "\e611";
}
.icon-jueyuandianzhu:before {
content: "\e663";
}
.icon-wangguanrizhi:before {
content: "\e647";
}
.icon-wenjianshangchuan:before {
content: "\e6ae";
}
.icon-chengpinruku:before {
content: "\e600";
}
.icon-langyongbaohuqi:before {
content: "\e9d9";
}
.icon-dianrongqi:before {
content: "\e68a";
}
.icon-bileiqi:before {
content: "\e609";
}
.icon-dianliuhuganqi:before {
content: "\e60a";
}
.icon-mupai:before {
content: "\e700";
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,296 @@
{
"id": "4359161",
"name": "gw",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "国网",
"glyphs": [
{
"icon_id": "4286119",
"name": "断路器",
"font_class": "duanluqi",
"unicode": "e87a",
"unicode_decimal": 59514
},
{
"icon_id": "8760874",
"name": "熔断器开关",
"font_class": "rongduankaiguan",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "1440893",
"name": "回收站",
"font_class": "huishouzhan",
"unicode": "e637",
"unicode_decimal": 58935
},
{
"icon_id": "12331679",
"name": "推送日志",
"font_class": "tuisongrizhi",
"unicode": "e668",
"unicode_decimal": 58984
},
{
"icon_id": "30812334",
"name": "实物ID",
"font_class": "shiwuid",
"unicode": "e648",
"unicode_decimal": 58952
},
{
"icon_id": "11110995",
"name": "材料仓库",
"font_class": "cailiaocangku",
"unicode": "e67d",
"unicode_decimal": 59005
},
{
"icon_id": "21020286",
"name": "成品仓库",
"font_class": "chengpincangku",
"unicode": "e665",
"unicode_decimal": 58981
},
{
"icon_id": "26906796",
"name": "备件仓库",
"font_class": "beijiancangku",
"unicode": "e65d",
"unicode_decimal": 58973
},
{
"icon_id": "17619240",
"name": "生产工单",
"font_class": "shengchangongd",
"unicode": "e627",
"unicode_decimal": 58919
},
{
"icon_id": "5519085",
"name": "报工信息",
"font_class": "biangong",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "6865386",
"name": "排产计划",
"font_class": "paichanjihua",
"unicode": "e63c",
"unicode_decimal": 58940
},
{
"icon_id": "21039721",
"name": "生产订单",
"font_class": "shengchandingdan",
"unicode": "e677",
"unicode_decimal": 58999
},
{
"icon_id": "27253661",
"name": "工单信息",
"font_class": "gongdanxinxi",
"unicode": "e613",
"unicode_decimal": 58899
},
{
"icon_id": "1727267",
"name": "获取采购订单",
"font_class": "caigou",
"unicode": "e887",
"unicode_decimal": 59527
},
{
"icon_id": "1997916",
"name": "销售订单",
"font_class": "xiaoshoudingdan",
"unicode": "e622",
"unicode_decimal": 58914
},
{
"icon_id": "15633148",
"name": "采购列表",
"font_class": "caigouliebiao",
"unicode": "e625",
"unicode_decimal": 58917
},
{
"icon_id": "21022424",
"name": "生产计划",
"font_class": "shengchanjihua",
"unicode": "e667",
"unicode_decimal": 58983
},
{
"icon_id": "1013851",
"name": "防护等级",
"font_class": "fanghudengji",
"unicode": "e7a8",
"unicode_decimal": 59304
},
{
"icon_id": "4314609",
"name": "外观质量检查",
"font_class": "waiguanzhiliangjiancha",
"unicode": "e612",
"unicode_decimal": 58898
},
{
"icon_id": "6241661",
"name": "缺项保护试验",
"font_class": "quexiangbaohushiyan",
"unicode": "e626",
"unicode_decimal": 58918
},
{
"icon_id": "34180925",
"name": "过压实验",
"font_class": "guoyashiy",
"unicode": "e6ca",
"unicode_decimal": 59082
},
{
"icon_id": "15065397",
"name": "连续性验证",
"font_class": "lianxuxingyanz",
"unicode": "e619",
"unicode_decimal": 58905
},
{
"icon_id": "28512727",
"name": "工频耐受试验",
"font_class": "gongpinnaishou",
"unicode": "e639",
"unicode_decimal": 58937
},
{
"icon_id": "6677522",
"name": "爬电距离",
"font_class": "padianjuli",
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "9892655",
"name": "壳体外观",
"font_class": "ketiwaiguan",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "1287174",
"name": "电气间隙",
"font_class": "dianqijianxi",
"unicode": "e636",
"unicode_decimal": 58934
},
{
"icon_id": "18507033",
"name": "导体布线",
"font_class": "daotibuxian",
"unicode": "e67a",
"unicode_decimal": 59002
},
{
"icon_id": "14377849",
"name": "元气件选择与安装",
"font_class": "yuanqijianxzaz",
"unicode": "e70c",
"unicode_decimal": 59148
},
{
"icon_id": "2477506",
"name": "剩余电流保护器",
"font_class": "sydianliubaohuqi",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "681021",
"name": "柜体",
"font_class": "guiti",
"unicode": "e72e",
"unicode_decimal": 59182
},
{
"icon_id": "6582342",
"name": "机械操作",
"font_class": "jixiecaozuo",
"unicode": "e635",
"unicode_decimal": 58933
},
{
"icon_id": "12770935",
"name": "通电操作",
"font_class": "tongdiancaozuo",
"unicode": "e611",
"unicode_decimal": 58897
},
{
"icon_id": "29263294",
"name": "绝缘电阻",
"font_class": "jueyuandianzhu",
"unicode": "e663",
"unicode_decimal": 58979
},
{
"icon_id": "6527123",
"name": "网关日志",
"font_class": "wangguanrizhi",
"unicode": "e647",
"unicode_decimal": 58951
},
{
"icon_id": "9687759",
"name": "文件上传",
"font_class": "wenjianshangchuan",
"unicode": "e6ae",
"unicode_decimal": 59054
},
{
"icon_id": "17123061",
"name": "成品入库",
"font_class": "chengpinruku",
"unicode": "e600",
"unicode_decimal": 58880
},
{
"icon_id": "7577443",
"name": "浪涌保护器",
"font_class": "langyongbaohuqi",
"unicode": "e9d9",
"unicode_decimal": 59865
},
{
"icon_id": "11810498",
"name": "电容器",
"font_class": "dianrongqi",
"unicode": "e68a",
"unicode_decimal": 59018
},
{
"icon_id": "36284729",
"name": "避雷器",
"font_class": "bileiqi",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "36284773",
"name": "电流互感器",
"font_class": "dianliuhuganqi",
"unicode": "e60a",
"unicode_decimal": 58890
},
{
"icon_id": "17828156",
"name": "母排",
"font_class": "mupai",
"unicode": "e700",
"unicode_decimal": 59136
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>

After

Width:  |  Height:  |  Size: 276 B

@ -0,0 +1,41 @@
@import './base.css';
@import './font.css';
@import './cus.css';
@import './iconfont/iconfont.css';
* {
font-family: 'AlibabaPuHuiTi-3-55-Regular';
}
#app {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0px;
padding: 0px;
}
a,
.green {
text-decoration: none;
color: hsla(160, 100%, 37%, 1);
transition: 0.4s;
}
@media (hover: hover) {
a:hover {
background-color: hsla(160, 100%, 37%, 0.2);
}
}
/* @media (min-width: 1024px) {
body {
display: flex;
}
#app {
display: grid;
margin: 0px;
padding: 0px;
}
} */

@ -0,0 +1,41 @@
<script setup lang="ts">
defineProps<{
msg: string
}>()
</script>
<template>
<div class="greetings">
<h1 class="green">{{ msg }}</h1>
<h3>
Youve successfully created a project with
<a href="https://vitejs.dev/" target="_blank" rel="noopener">Vite</a> +
<a href="https://vuejs.org/" target="_blank" rel="noopener">Vue 3</a>. What's next?
</h3>
</div>
</template>
<style scoped>
h1 {
font-weight: 500;
font-size: 2.6rem;
position: relative;
top: -10px;
}
h3 {
font-size: 1.2rem;
}
.greetings h1,
.greetings h3 {
text-align: center;
}
@media (min-width: 1024px) {
.greetings h1,
.greetings h3 {
text-align: left;
}
}
</style>

@ -0,0 +1,88 @@
<script setup lang="ts">
import WelcomeItem from './WelcomeItem.vue'
import DocumentationIcon from './icons/IconDocumentation.vue'
import ToolingIcon from './icons/IconTooling.vue'
import EcosystemIcon from './icons/IconEcosystem.vue'
import CommunityIcon from './icons/IconCommunity.vue'
import SupportIcon from './icons/IconSupport.vue'
</script>
<template>
<WelcomeItem>
<template #icon>
<DocumentationIcon />
</template>
<template #heading>Documentation</template>
Vues
<a href="https://vuejs.org/" target="_blank" rel="noopener">official documentation</a>
provides you with all information you need to get started.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<ToolingIcon />
</template>
<template #heading>Tooling</template>
This project is served and bundled with
<a href="https://vitejs.dev/guide/features.html" target="_blank" rel="noopener">Vite</a>. The
recommended IDE setup is
<a href="https://code.visualstudio.com/" target="_blank" rel="noopener">VSCode</a> +
<a href="https://github.com/johnsoncodehk/volar" target="_blank" rel="noopener">Volar</a>. If
you need to test your components and web pages, check out
<a href="https://www.cypress.io/" target="_blank" rel="noopener">Cypress</a> and
<a href="https://on.cypress.io/component" target="_blank" rel="noopener"
>Cypress Component Testing</a
>.
<br />
More instructions are available in <code>README.md</code>.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<EcosystemIcon />
</template>
<template #heading>Ecosystem</template>
Get official tools and libraries for your project:
<a href="https://pinia.vuejs.org/" target="_blank" rel="noopener">Pinia</a>,
<a href="https://router.vuejs.org/" target="_blank" rel="noopener">Vue Router</a>,
<a href="https://test-utils.vuejs.org/" target="_blank" rel="noopener">Vue Test Utils</a>, and
<a href="https://github.com/vuejs/devtools" target="_blank" rel="noopener">Vue Dev Tools</a>. If
you need more resources, we suggest paying
<a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">Awesome Vue</a>
a visit.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<CommunityIcon />
</template>
<template #heading>Community</template>
Got stuck? Ask your question on
<a href="https://chat.vuejs.org" target="_blank" rel="noopener">Vue Land</a>, our official
Discord server, or
<a href="https://stackoverflow.com/questions/tagged/vue.js" target="_blank" rel="noopener"
>StackOverflow</a
>. You should also subscribe to
<a href="https://news.vuejs.org" target="_blank" rel="noopener">our mailing list</a> and follow
the official
<a href="https://twitter.com/vuejs" target="_blank" rel="noopener">@vuejs</a>
twitter account for latest news in the Vue world.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<SupportIcon />
</template>
<template #heading>Support Vue</template>
As an independent project, Vue relies on community backing for its sustainability. You can help
us by
<a href="https://vuejs.org/sponsor/" target="_blank" rel="noopener">becoming a sponsor</a>.
</WelcomeItem>
</template>

@ -0,0 +1,87 @@
<template>
<div class="item">
<i>
<slot name="icon"></slot>
</i>
<div class="details">
<h3>
<slot name="heading"></slot>
</h3>
<slot></slot>
</div>
</div>
</template>
<style scoped>
.item {
margin-top: 2rem;
display: flex;
position: relative;
}
.details {
flex: 1;
margin-left: 1rem;
}
i {
display: flex;
place-items: center;
place-content: center;
width: 32px;
height: 32px;
color: var(--color-text);
}
h3 {
font-size: 1.2rem;
font-weight: 500;
margin-bottom: 0.4rem;
color: var(--color-heading);
}
@media (min-width: 1024px) {
.item {
margin-top: 0;
padding: 0.4rem 0 1rem calc(var(--section-gap) / 2);
}
i {
top: calc(50% - 25px);
left: -26px;
position: absolute;
border: 1px solid var(--color-border);
background: var(--color-background);
border-radius: 8px;
width: 50px;
height: 50px;
}
.item:before {
content: ' ';
border-left: 1px solid var(--color-border);
position: absolute;
left: 0;
bottom: calc(50% + 25px);
height: calc(50% - 25px);
}
.item:after {
content: ' ';
border-left: 1px solid var(--color-border);
position: absolute;
left: 0;
top: calc(50% + 25px);
height: calc(50% - 25px);
}
.item:first-of-type:before {
display: none;
}
.item:last-of-type:after {
display: none;
}
}
</style>

@ -0,0 +1,43 @@
<template>
<div ref="refXyG2IntervalA1" class="xy-g2-interval-a1"></div>
</template>
<script lang="ts" setup name="XyG2IntervalA1">
import { onMounted, ref } from 'vue'
import { Chart } from '@antv/g2'
const refXyG2IntervalA1 = ref()
let chart;
onMounted(() => {
chart = renderBarChart(refXyG2IntervalA1.value);
});
function renderBarChart(container: any) {
let chart = new Chart({
container: container,
autoFit: true
});
chart.data([
{ date: '2023/11/01', number: 100 },
{ date: '23/11/02', number: 150 },
{ date: '23/11/03', number: 200 },
{ date: '23/11/04', number: 180 },
{ date: '23/11/05', number: 120 },
{ date: '23/11/06', number: 100 },
{ date: '23/11/07', number: 150 },
{ date: '23/11/08', number: 120 },
]);
chart.interval().encode('x', 'date').encode('y', 'number');
chart.render();
return chart;
}
</script>
<style scoped>
.xy-g2-interval-a1 {
width: 100%;
height: 100%;
}
</style>

@ -0,0 +1,68 @@
<template>
<div class="xyz-com-tabs-page-a">
<a-tabs type="editable-card" :activeKey="paneActiveKey" :hideAdd="true" size="small" @edit="fnEditA"
@change="fnChangeA">
<a-tab-pane v-for="pane in paneList" :key="pane.name" :tab="t('route.' + pane.name)"
:closable=pane.closable>
</a-tab-pane>
</a-tabs>
</div>
</template>
<script lang="ts" setup name="XyzComTabsPageA">
import { onMounted, computed } from 'vue'
import { useTabsPageAStore } from '@/stores/xyzCom/tabsPageA'
import { useI18n } from 'vue-i18n'
import { useRouter } from 'vue-router'
import XEUtils from 'xe-utils'
const router = useRouter() //
const { t } = useI18n()
const store: any = useTabsPageAStore()
const paneList = computed(() => {
let rt = store.paneList
rt = XEUtils.filter(rt, (item: any) => {
if (item.name !== 'login') {
return true
} else {
return false
}
})
return rt
})
const paneActiveKey = computed(() => store.paneActiveKey)
// const panesA = ref(
// [
// { key: 1, title: '', content: '1', closable: false },
// { key: 2, title: '', content: '2', closable: true }
// ]
// );
// |
// action[add|remove]
const fnEditA = async (targetKey: string, action: string) => {
switch (action) {
case 'remove':
store.fnPaneRemove(targetKey)
if (paneActiveKey.value == targetKey) {
router.go(-1)
}
break;
default:
break;
}
}
//
const fnChangeA = async (activeKey: string) => {
router.push({ name: activeKey })
}
onMounted(() => {
})
</script>
<style>
:where(.xyz-com-tabs-page-a .css-dev-only-do-not-override-1qb1s0s).ant-tabs-top>.ant-tabs-nav {
margin: 2px;
}
</style>

@ -0,0 +1,51 @@
<template>
<div ref="containerRef" class="interval-basic-a"></div>
</template>
<script lang="ts" setup name="XyzG2IntervalA">
import { onMounted, ref } from 'vue'
import { Chart } from '@antv/g2'
const containerRef = ref()
let chart;
onMounted(() => {
chart = renderBarChart(containerRef.value);
});
function renderBarChart(container: any) {
let chart = new Chart({
container: container,
autoFit: true
});
chart.data([
{ date: '23/11/01', number: 100 },
{ date: '23/11/02', number: 150 },
{ date: '23/11/03', number: 200 },
{ date: '23/11/04', number: 180 },
{ date: '23/11/05', number: 120 },
{ date: '23/11/06', number: 120 },
{ date: '23/11/07', number: 150 },
{ date: '23/11/08', number: 120 },
]);
chart.interval().encode('x', 'date').encode('y', 'number');
chart
.line()
.encode('x', 'date')
.encode('y', 'number')
.encode('shape', 'smooth')
.style('stroke', '#fdae6b')
.style('lineWidth', 2)
.scale('y', { independent: true });
chart.render();
return chart;
}
</script>
<style scoped>
.interval-basic-a {
width: 100%;
height: 100%;
}
</style>

@ -0,0 +1,11 @@
import { describe, it, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import HelloWorld from '../HelloWorld.vue'
describe('HelloWorld', () => {
it('renders properly', () => {
const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } })
expect(wrapper.text()).toContain('Hello Vitest')
})
})

@ -0,0 +1,59 @@
<template>
<div ref="containerRef" class="line-basic-a"></div>
</template>
<script lang="ts" setup name="LineBasicA">
import { onMounted, ref } from 'vue'
import { Chart } from '@antv/g2'
import * as dashboradApi from '@/api/gw/dashborad'
const dashboardChart: any = ref([])
const containerRef: any = ref()
let chart;
onMounted(async () => {
await fnGetDashboardChart()
chart = renderBarChart(containerRef.value);
});
// Dashboard
const fnGetDashboardChart = async () => {
let res = await dashboradApi.getDashboardChart()
dashboardChart.value = res
}
function renderBarChart(container: any) {
const chart = new Chart({
container: container,
autoFit: true
});
chart.axis({
x: {
title: '',
line: true,
arrow: true,
lineArrowOffset: 15,
lineArrowSize: 5,
lineLineWidth: 1,
// Grid
},
y: {
title: '',
line: true,
arrow: true,
lineArrowOffset: 15,
lineArrowSize: 5,
lineLineWidth: 1,
// Grid
},
}).line({ fill: '#000000' }).data(dashboardChart.value).encode('x', 'date').encode('y', 'number').encode('color', '#3CB371')
chart.render();
return chart;
}
</script>
<style scoped>
.line-basic-a {
width: 100%;
height: 100%;
}
</style>

@ -0,0 +1,7 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor">
<path
d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z"
/>
</svg>
</template>

@ -0,0 +1,7 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" fill="currentColor">
<path
d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z"
/>
</svg>
</template>

@ -0,0 +1,7 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="20" fill="currentColor">
<path
d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z"
/>
</svg>
</template>

@ -0,0 +1,7 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor">
<path
d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z"
/>
</svg>
</template>

@ -0,0 +1,19 @@
<!-- This icon is from <https://github.com/Templarian/MaterialDesign>, distributed under Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) license-->
<template>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
aria-hidden="true"
role="img"
class="iconify iconify--mdi"
width="24"
height="24"
preserveAspectRatio="xMidYMid meet"
viewBox="0 0 24 24"
>
<path
d="M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z"
fill="currentColor"
></path>
</svg>
</template>

@ -0,0 +1,18 @@
const config: {
base_url: string
result_code: number | string
default_headers: string
request_timeout: number
} = {
// api请求基础路径
base_url: import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL,
// 接口成功返回状态码
result_code: 200,
// 接口请求超时时间
request_timeout: 30000,
// 默认接口请求类型
// 可选值:'application/json'|'application/x-www-form-urlencoded'|'multipart/form-data'
default_headers: 'application/json'
}
export { config }

@ -0,0 +1,26 @@
import { service } from '@/config/axios/service'
import { config } from '@/config/axios/config'
const { default_headers } = config
const request = (option: any) => {
const { url, method, params, data, headersType, responseType, ...config } = option
return service({
url: url,
method,
params,
data,
...config,
responseType: responseType,
headers: {
'Content-Type': headersType || default_headers
}
})
}
export default {
post: async (option: any) => {
const res = await request({ method: 'POST', ...option })
return res.data
}
}

@ -0,0 +1,32 @@
import axios from 'axios'
import { config } from '@/config/axios/config'
const { base_url, request_timeout } = config
// 创建axios实例
const service = axios.create({
baseURL: base_url, // api 的 base_url
timeout: request_timeout, // 请求超时时间
withCredentials: false // 禁用 Cookie 等信息
})
// request拦截器
service.interceptors.request.use(
(config) => {
return config
},
(error: any) => {
Promise.reject(error)
}
)
// response 拦截器
service.interceptors.response.use(
async (response: any) => {
return response
},
(error: any) => {
Promise.reject(error)
}
)
export { service }

@ -0,0 +1,18 @@
// 配置浏览器本地存储,可存对象数组。
import WebStorageCache from 'web-storage-cache'
// 缓存前缀
const cacheKeyPre = 'gw'
export const CACHE_KEY = {
paneList: cacheKeyPre + 'PaneList',
userInfo: cacheKeyPre + 'User'
}
// type = 'localStorage' | 'sessionStorage'
export const useCache = (type: any = 'localStorage') => {
const wsCache: any = new WebStorageCache({
storage: type
})
return {
wsCache
}
}

@ -0,0 +1,54 @@
const en_US = {
test: {
hello: 'hello'
},
route: {
// 首页
home: 'home',
// 业务订单
businessOrder: 'businessOrder',
obtainPurchaseOrder: 'obtainPurchaseOrder',
dataCenterPurchaseOrder: 'dataCenterPurchaseOrder',
saleOrder: 'saleOrder',
productionOrder: 'productionOrder',
productionWorkOrder: 'productionWorkOrder',
keyRawMaterialInventory: 'keyRawMaterialInventory',
sparePartsWarehouse: 'sparePartsWarehouse',
manufacturedInventory: 'manufacturedInventory',
// 配电箱
distributionBox: 'distributionBox',
boxMateQuality: 'boxMateQuality',
muPai: 'muPai',
biLeiQi: 'biLeiQi',
langYongBaoHuQi: 'langYongBaoHuQi',
dianLiuHuGanQi: 'dianLiuHuGanQi',
shengYuDianLiuDongZuoBaoHu: 'shengYuDianLiuDongZuoBaoHu',
duanLuQi: 'duanLuQi',
dianRongQi: 'dianRongQi',
fusedIsolationSwitch: 'fusedIsolationSwitch',
componentInspect: 'componentInspect',
daoXian: 'daoXian',
elecGap: 'elecGap',
boxAppStruct: 'boxAppStruct',
elecDistance: 'elecDistance',
powerFrequancyTesting: 'powerFrequancyTesting',
protectionCircuit: 'protectionCircuit',
voltageProtection: 'voltageProtection',
phaseLossProtectionTesting: 'phaseLossProtectionTesting',
appQualityInspection: 'appQualityInspection',
machineOperation: 'machineOperation',
powerOperationTesting: 'powerOperationTesting',
insulationResistance: 'insulationResistance',
appIPGrade: 'appIPGrade',
finishedProductWarehousing: 'finishedProductWarehousing',
fileUpload: 'fileUpload',
// 系统设置
systemSettings: 'systemSettings',
baseSupplier: 'baseSupplier',
baseMaterial: 'baseMaterial',
baseComposition: 'baseComposition',
baseVoltage: 'baseVoltage',
}
}
export default en_US

@ -0,0 +1,54 @@
const zh_CN = {
test: {
hello: '你好'
},
route: {
// 首页
home: '首页',
// 业务订单
businessOrder: '业务订单',
obtainPurchaseOrder: '获取采购订单',
dataCenterPurchaseOrder: '数据中心采购订单',
saleOrder: '销售订单',
productionOrder: '生产订单',
productionWorkOrder: '生产工单',
keyRawMaterialInventory: '重点原材料库存',
sparePartsWarehouse: '备品备件库存',
manufacturedInventory: '产成品库存',
// 配电箱
distributionBox: '配电箱',
boxMateQuality: '柜体材质,厚度及尺寸',
muPai: '母排',
biLeiQi: '避雷器',
langYongBaoHuQi: '浪涌保护器',
dianLiuHuGanQi: '电流互感器',
shengYuDianLiuDongZuoBaoHu: '剩余电流动作保护器',
duanLuQi: '断路器',
dianRongQi: '电容器',
fusedIsolationSwitch: '熔断器式隔离开关',
componentInspect: '元器件选择及安装检查',
daoXian: '导体和布线',
elecGap: '电气间隙',
boxAppStruct: '壳体外观结构',
elecDistance: '爬电距离',
powerFrequancyTesting: '工频耐受试验',
protectionCircuit: '保护措施和保护电路连续性验证',
voltageProtection: '工频过电压保护试验',
phaseLossProtectionTesting: '缺相保护试验',
appQualityInspection: '外观质量检查',
machineOperation: '机械操作',
powerOperationTesting: '通电操作试验',
insulationResistance: '绝缘电阻的验证',
appIPGrade: '成套设备的防护等级',
finishedProductWarehousing: '成品入库',
fileUpload: '文件上传',
// 系统设置
systemSettings: '系统设置',
baseSupplier: '供应商',
baseMaterial: '物料',
baseComposition: '材质',
baseVoltage: '电压等级',
}
}
export default zh_CN

@ -0,0 +1,29 @@
import './assets/main.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import Antd from 'ant-design-vue';
import VXETable from 'vxe-table'
// 初始化多语言
import { setupI18n } from '@/plugins/vueI18n'
import './permission'
import 'ant-design-vue/dist/reset.css'
import 'vxe-table/lib/style.css'
import './assets/cus.css'
// 创建实例
const setupAll = async () => {
const app = createApp(App)
await setupI18n(app)
app.use(createPinia())
app.use(router)
app.use(Antd)
app.use(VXETable)
app.mount('#app')
}
setupAll()

@ -0,0 +1,25 @@
// 路由
import router from '@/router'
import { getAccessToken } from '@/utils/auth'
import { useTabsPageAStore } from '@/stores/xyzCom/tabsPageA'
// 路由加载前
router.beforeEach(async (to, from, next) => {
fnUseTabsPageAStore(to)
// 登录处理
if (getAccessToken()) {
} else {
// 未登录
}
next()
})
// 路由加载前
router.afterEach(async (to) => {
})
// 导航卡片函数
const fnUseTabsPageAStore = async (to: any) => {
const storeA = useTabsPageAStore()
await storeA.fnPaneAdd(to)
// console.log(storeA.sNavs)
// console.log(to)
}

@ -0,0 +1,16 @@
import { createI18n } from 'vue-i18n'
import en_US from '@/locales/en_US'
import zh_CN from '@/locales/zh_CN'
// 多语言配置
export const setupI18n = async (app: any) => {
const messages = {
en_US: en_US,
zh_CN: zh_CN
}
const i18n = createI18n({
locale: 'zh_CN',
messages: messages,
allowComposition: true
})
app.use(i18n)
}

@ -0,0 +1,312 @@
import { createRouter, createWebHistory } from 'vue-router'
// 业务订单
import LoginView from '../views/Login/Login.vue'
import GwView from '../views/Gw/Gw.vue'
import HomeView from '../views/Gw/Home.vue'
import BusinessOrderView from '../views/Gw/BusinessOrder.vue'
import DistributionBoxView from '../views/Gw/DistributionBox.vue'
import SystemSettingsView from '../views/Gw/SystemSettings.vue'
// 业务订单
import DataCenterPurchaseOrderView from '../views/Gw/dataCenterPurchaseOrder/DataCenterPurchaseOrder.vue'
import SaleOrderView from '../views/Gw/saleOrder/SaleOrder.vue'
import ProductionOrderView from '../views/Gw/productionOrder/ProductionOrder.vue'
import ProductionWorkOrderView from '../views/Gw/productionWorkOrder/ProductionWorkOrder.vue'
import KeyRawMaterialInventoryView from '../views/Gw/keyRawMaterialInventory/KeyRawMaterialInventory.vue'
import SparePartsWarehouseView from '../views/Gw/sparePartsWarehouse/SparePartsWarehouse.vue'
import ManufacturedInventoryView from '../views/Gw/manufacturedInventory/ManufacturedInventory.vue'
// 配件箱
import BoxMateQualityView from '../views/Gw/boxMateQuality/BoxMateQuality.vue'
import BiLeiQi from '../views/Gw/biLeiQi/BiLeiQi.vue'
import DianRongQiView from '../views/Gw/dianRongQi/DianRongQi.vue'
import DuanLuQiView from '../views/Gw/duanLuQi/DuanLuQi.vue'
import FusedIsolationSwitchView from '../views/Gw/fusedIsolationSwitch/FusedIsolationSwitch.vue'
import AppQualityInspectionView from '../views/Gw/appQualityInspection/AppQualityInspection.vue'
import BoxAppStructView from '../views/Gw/boxAppStruct/BoxAppStruct.vue'
import ComponentInspectView from '../views/Gw/componentInspect/ComponentInspect.vue'
import DaoXianView from '../views/Gw/daoXian/DaoXian.vue'
import DianLiuHuGanQiView from '../views/Gw/dianLiuHuGanQi/DianLiuHuGanQi.vue'
import ElecDistanceView from '../views/Gw/elecDistance/ElecDistance.vue'
import ElecGapView from '../views/Gw/elecGap/ElecGap.vue'
import InsulationResistanceView from '../views/Gw/insulationResistance/InsulationResistance.vue'
import LangYongBaoHuQiView from '../views/Gw/langYongBaoHuQi/LangYongBaoHuQi.vue'
import MachineOperationView from '../views/Gw/machineOperation/MachineOperation.vue'
import MuPaiView from '../views/Gw/muPai/MuPai.vue'
import PhaseLossProtectionTestingView from '../views/Gw/phaseLossProtectionTesting/PhaseLossProtectionTesting.vue'
import PowerFrequancyTestingView from '../views/Gw/powerFrequancyTesting/PowerFrequancyTesting.vue'
import PowerOperationTestingView from '../views/Gw/powerOperationTesting/PowerOperationTesting.vue'
import ProtectionCircuitView from '../views/Gw/protectionCircuit/ProtectionCircuit.vue'
import ShengYuDianLiuDongZuoBaoHuView from '../views/Gw/shengYuDianLiuDongZuoBaoHu/ShengYuDianLiuDongZuoBaoHu.vue'
import VoltageProtectionView from '../views/Gw/voltageProtection/VoltageProtection.vue'
import AppIPGradeView from '../views/Gw/appIPGrade/AppIPGrade.vue'
import FinishedProductWarehousingView from '../views/Gw/finishedProductWarehousing/FinishedProductWarehousing.vue'
import FileUploadView from '../views/Gw/fileUpload/FileUpload.vue'
// 系统设置
import BaseCompositionView from '../views/Gw/baseComposition/BaseComposition.vue'
import BaseMaterialView from '../views/Gw/baseMaterial/BaseMaterial.vue'
import BaseSupplierView from '../views/Gw/baseSupplier/BaseSupplier.vue'
import BaseVoltageView from '../views/Gw/baseVoltage/BaseVoltage.vue'
import { useUserStore } from '@/stores/user'
import { storeToRefs } from 'pinia'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'gw',
component: GwView,
children: [
{
path: '',
name: 'home',
component: HomeView
},
{
path: 'business-order',
children: [
{
path: '',
name: 'businessOrder',
component: BusinessOrderView
},
{
path: 'data-center-purchase-order',
name: 'dataCenterPurchaseOrder',
component: DataCenterPurchaseOrderView
},
{
path: 'sale-order',
name: 'saleOrder',
component: SaleOrderView
},
{
path: 'production-order',
name: 'productionOrder',
component: ProductionOrderView
},
{
path: 'production-work-order',
name: 'productionWorkOrder',
component: ProductionWorkOrderView
},
{
path: 'key-raw-material-inventory',
name: 'keyRawMaterialInventory',
component: KeyRawMaterialInventoryView
},
{
path: 'spare-parts-warehouse',
name: 'sparePartsWarehouse',
component: SparePartsWarehouseView
},
{
path: 'manufactured-inventory',
name: 'manufacturedInventory',
component: ManufacturedInventoryView
}
]
},
{
path: 'distribution-box',
children: [
{
path: '',
name: 'distributionBox',
component: DistributionBoxView
},
{
path: 'box-mate-quality',
name: 'boxMateQuality',
component: BoxMateQualityView
},
{
path: 'mu-pai',
name: 'muPai',
component: MuPaiView
},
{
path: 'bi-lei-qi',
name: 'biLeiQi',
component: BiLeiQi
},
{
path: 'lang-yong-bao-hu-qi',
name: 'langYongBaoHuQi',
component: LangYongBaoHuQiView
},
{
path: 'dian-liu-Hu-gan-qi',
name: 'dianLiuHuGanQi',
component: DianLiuHuGanQiView
},
{
path: 'sheng-yu-dian-liu-dong-zuo-bao-hu',
name: 'shengYuDianLiuDongZuoBaoHu',
component: ShengYuDianLiuDongZuoBaoHuView
},
{
path: 'duan-lu-qi',
name: 'duanLuQi',
component: DuanLuQiView
},
{
path: 'dian-rong-qi',
name: 'dianRongQi',
component: DianRongQiView
},
{
path: 'fused-isolation-switch',
name: 'fusedIsolationSwitch',
component: FusedIsolationSwitchView
},
{
path: 'component-inspect',
name: 'componentInspect',
component: ComponentInspectView
},
{
path: 'dao-xian',
name: 'daoXian',
component: DaoXianView
},
{
path: 'elec-gap',
name: 'elecGap',
component: ElecGapView
},
{
path: 'box-app-struct',
name: 'boxAppStruct',
component: BoxAppStructView
},
{
path: 'elec-distance',
name: 'elecDistance',
component: ElecDistanceView
},
{
path: 'power-frequancy-testing',
name: 'powerFrequancyTesting',
component: PowerFrequancyTestingView
},
{
path: 'protection-circuit',
name: 'protectionCircuit',
component: ProtectionCircuitView
},
{
path: 'voltage-protection',
name: 'voltageProtection',
component: VoltageProtectionView
},
{
path: 'phase-loss-protection-testing',
name: 'phaseLossProtectionTesting',
component: PhaseLossProtectionTestingView
},
{
path: 'app-quality-inspection',
name: 'appQualityInspection',
component: AppQualityInspectionView
},
{
path: 'machine-operation',
name: 'machineOperation',
component: MachineOperationView
},
{
path: 'power-operation-testing',
name: 'powerOperationTesting',
component: PowerOperationTestingView
},
{
path: 'insulation-resistance',
name: 'insulationResistance',
component: InsulationResistanceView
},
{
path: 'app-ip-grade',
name: 'appIPGrade',
component: AppIPGradeView
},
{
path: 'finished-product-warehousing',
name: 'finishedProductWarehousing',
component: FinishedProductWarehousingView
},
{
path: 'file-upload',
name: 'fileUpload',
component: FileUploadView
}
]
},
{
path: 'system-settings',
children: [
{
path: '',
name: 'systemSettings',
component: SystemSettingsView
},
{
path: 'base-composition',
name: 'baseComposition',
component: BaseCompositionView
},
{
path: 'base-material',
name: 'baseMaterial',
component: BaseMaterialView
},
{
path: 'base-supplier',
name: 'baseSupplier',
component: BaseSupplierView
},
{
path: 'base-voltage',
name: 'baseVoltage',
component: BaseVoltageView
}
]
}
]
},
{
path: '/login',
name: 'login',
component: LoginView
},
{
path: '/about',
name: 'about',
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/AboutView.vue')
}
]
})
// 守卫
router.beforeEach((to, from) => {
const userStore = useUserStore()
const { isLogin } = storeToRefs(userStore)
if (isLogin.value) {
if (to.name == 'login') {
router.push({ name: 'home' })
return false
} else {
return true
}
} else {
if (to.name == 'login') {
return true
} else {
router.push({ name: 'login' })
return false
}
}
})
export default router

@ -0,0 +1,12 @@
import { ref, computed } from 'vue'
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', () => {
const count = ref(0)
const doubleCount = computed(() => count.value * 2)
function increment() {
count.value++
}
return { count, doubleCount, increment }
})

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save