diff --git a/src/views/system/user/user-interface.ts b/src/views/system/user/user-interface.ts
index d8ea8b5..9596c7b 100644
--- a/src/views/system/user/user-interface.ts
+++ b/src/views/system/user/user-interface.ts
@@ -35,6 +35,7 @@
birthday?: string
sex?: string // 性别
roleName?: string
+ attr1?: string
}
// 用户列表返回值类型
export interface userType {
diff --git a/.env.development b/.env.development
index d0d78d2..35bd2f1 100644
--- a/.env.development
+++ b/.env.development
@@ -1,9 +1,9 @@
# 页面标题
VITE_APP_TITLE = 计量信息系统
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://111.198.10.15:21611
-# VITE_APP_API_BASEURL = http://111.198.10.15:11638
-# VITE_APP_API_BASEURL = http://111.198.10.15:21609
+# VITE_APP_API_BASEURL = http://139.198.29.133:8089
+# VITE_APP_API_BASEURL = http://111.198.10.15:21611
+VITE_APP_API_BASEURL = http://192.168.8.107:5909
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/.env.production b/.env.production
index 4d63cc4..c9ea810 100644
--- a/.env.production
+++ b/.env.production
@@ -1,7 +1,7 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 西昌计量信息系统
+VITE_APP_TITLE = 计量信息系统
# 接口请求地址,会设置到 axios 的 baseURL 参数上
VITE_APP_API_BASEURL = http://111.198.10.15:21611
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
diff --git a/package.json b/package.json
index e3741e8..e7ce0c1 100644
--- a/package.json
+++ b/package.json
@@ -58,6 +58,7 @@
"@types/path-browserify": "^1.0.0",
"@types/qrcode": "^1.5.0",
"@types/qs": "^6.9.7",
+ "@types/vue": "^2.0.0",
"@vitejs/plugin-vue": "^3.2.0",
"@vitejs/plugin-vue-jsx": "^2.1.1",
"autoprefixer": "^10.4.13",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ad08515..4ffa026 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,6 +10,7 @@
'@types/path-browserify': ^1.0.0
'@types/qrcode': ^1.5.0
'@types/qs': ^6.9.7
+ '@types/vue': ^2.0.0
'@vitejs/plugin-vue': ^3.2.0
'@vitejs/plugin-vue-jsx': ^2.1.1
'@vueuse/core': ^9.5.0
@@ -116,6 +117,7 @@
'@types/path-browserify': 1.0.0
'@types/qrcode': registry.npmmirror.com/@types/qrcode/1.5.0
'@types/qs': 6.9.7
+ '@types/vue': 2.0.0
'@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.44
'@vitejs/plugin-vue-jsx': 2.1.1_vite@3.2.3+vue@3.2.44
autoprefixer: 10.4.13
@@ -950,6 +952,13 @@
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
dev: true
+ /@types/vue/2.0.0:
+ resolution: {integrity: sha512-WDElkBv/o4lVwu6wYHB06AXs4Xo2fwDjJUpvPRc1QQdzkUSiGFjrYuSCy8raxLE5FObgKq8ND7R5gSZTFLK60w==}
+ deprecated: This is a stub types definition for vuejs (https://github.com/vuejs/vue). vuejs provides its own type definitions, so you don't need @types/vue installed!
+ dependencies:
+ vue: 3.2.44
+ dev: true
+
/@types/web-bluetooth/0.0.16:
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
diff --git a/public/config/config.json b/public/config/config.json
index 3bd0a89..0127d2f 100644
--- a/public/config/config.json
+++ b/public/config/config.json
@@ -1,4 +1,4 @@
{
"title":"计量业务系统",
- "baseUrl": "http://111.198.10.15:21611"
+ "baseUrl": "http://192.168.8.107:5909"
}
diff --git a/src/api/eqpt/device/certificate.ts b/src/api/eqpt/device/certificate.ts
new file mode 100644
index 0000000..85e510d
--- /dev/null
+++ b/src/api/eqpt/device/certificate.ts
@@ -0,0 +1,12 @@
+/**
+ * 设备台账-证书管理管理
+ */
+import request from '@/api/index'
+// 分组列表
+export function getCertificateList(data: object) {
+ return request({
+ url: '/equipment/certificate/listPage',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/eqpt/device/group.ts b/src/api/eqpt/device/group.ts
new file mode 100644
index 0000000..d534327
--- /dev/null
+++ b/src/api/eqpt/device/group.ts
@@ -0,0 +1,43 @@
+/**
+ * 设备台账-设备分组管理
+ */
+import request from '@/api/index'
+// 分组列表
+export function getGroupList(params: object) {
+ return request({
+ url: '/equipment/group/listPage',
+ method: 'get',
+ params,
+ })
+}
+// 编辑
+export function updateGroup(data: object) {
+ return request({
+ url: '/equipment/group/update',
+ method: 'post',
+ data,
+ })
+}
+// 编辑
+export function addGroup(data: object) {
+ return request({
+ url: '/equipment/group/add',
+ method: 'post',
+ data,
+ })
+}
+// 删除
+export function delGroup(id: string) {
+ return request({
+ url: `/equipment/group/delete?groupId=${id}`,
+ method: 'post',
+ })
+}
+// 详情
+export function detailGroup(params: object) {
+ return request({
+ url: '/equipment/group/detail',
+ method: 'get',
+ params,
+ })
+}
diff --git a/src/api/eqpt/device/info.ts b/src/api/eqpt/device/info.ts
index 3af7a85..97e82c3 100644
--- a/src/api/eqpt/device/info.ts
+++ b/src/api/eqpt/device/info.ts
@@ -9,22 +9,29 @@
if (statusName === '全部') {
return request({
url: `${prefix}/listPage`,
- method: 'get',
- params,
+ method: 'post',
+ data: params,
})
}
else if (statusName === '已审批') {
return request({
url: '/equipment/approval/approvedListPage',
- method: 'get',
- params,
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '待审批') {
+ return request({
+ url: '/equipment/approval/toApprovalListPage',
+ method: 'post',
+ data: params,
})
}
else {
return request({
url: '/equipment/approval/listPage',
- method: 'get',
- params,
+ method: 'post',
+ data: params,
})
}
}
@@ -32,14 +39,30 @@
export function getInfoListTogether(params: object) {
return request({
url: `${prefix}/groupByName`,
- method: 'get',
- params,
+ method: 'post',
+ data: params,
})
}
// 获取设备列表
export function getInfoList(params: object) {
return request({
url: `${prefix}/list`,
+ method: 'post',
+ data: params,
+ })
+}
+// 获取设备详情
+export function getInfoDetail(params: object) {
+ return request({
+ url: '/equipment/info/detail',
+ method: 'get',
+ params,
+ })
+}
+// 获取设备审批状态基本信息
+export function getApprovalDetail(params: object) {
+ return request({
+ url: 'equipment/approval/detail',
method: 'get',
params,
})
@@ -60,3 +83,56 @@
data,
})
}
+// 删除记录
+export function deleteInfo(data: object) {
+ return request({
+ url: `/equipment/approval/delete?id=${data.id}`,
+ method: 'post',
+ })
+}
+// 删除设备
+// export function deleteDevice(data: object) {
+// return request({
+// url: '/equipment/approval/delete',
+// method: 'post',
+// data,
+// })
+// }
+// 取消
+export function cancelInfo(data: object) {
+ return request({
+ url: '/equipment/approval/cancel',
+ method: 'post',
+ data,
+ })
+}
+// 审批操作
+export function handlerApproval(type: string, data: { processId?: string; taskId?: string; comments: string }) {
+ return request({
+ url: `/equipment/approval/${type}`,
+ method: 'post',
+ data,
+ })
+}
+// 审批记录
+export function getApprovalRecord(id: string) {
+ return request({
+ url: `/equipment/approval/equipmentLog?equipmentId=${id}`,
+ method: 'get',
+ })
+}
+// 设备流转日志
+
+export function getTurnoverLogRecord(id: string) {
+ return request({
+ url: `/equipment/turnoverLog/list?equipmentId=${id}`,
+ method: 'get',
+ })
+}
+// 设备状态变更记录
+export function getStatusLogRecord(id: string) {
+ return request({
+ url: `/equipment/statusLog/list?equipmentId=${id}`,
+ method: 'get',
+ })
+}
diff --git a/src/api/eqpt/device/remind.ts b/src/api/eqpt/device/remind.ts
new file mode 100644
index 0000000..4f6097e
--- /dev/null
+++ b/src/api/eqpt/device/remind.ts
@@ -0,0 +1,12 @@
+/**
+ * 设备台账-到期提醒管理
+ */
+import request from '@/api/index'
+// 列表
+export function getRemindList(data: object) {
+ return request({
+ url: '/equipment/remind/listPage',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/eqpt/document/index.ts b/src/api/eqpt/document/index.ts
new file mode 100644
index 0000000..636a5e4
--- /dev/null
+++ b/src/api/eqpt/document/index.ts
@@ -0,0 +1,42 @@
+/**
+ * 文档管理接口
+ */
+import request from '@/api/index'
+// 分页列表
+export function getListPage(params: object) {
+ return request({
+ url: '/file/listPage',
+ method: 'get',
+ params,
+ })
+}
+// 新建
+export function addDocument(data: object) {
+ return request({
+ url: '/file/add',
+ method: 'post',
+ data,
+ })
+}
+// 更新
+export function updateDocument(data: object) {
+ return request({
+ url: '/file/update',
+ method: 'post',
+ data,
+ })
+}
+// 详情
+export function detailDocument(id: string) {
+ return request({
+ url: `/file/log?fileId=${id}`,
+ method: 'get',
+ })
+}
+// 删除
+export function delDocument(id: string) {
+ return request({
+ url: `/file/remove?fileId=${id}`,
+ method: 'post',
+ })
+}
diff --git a/src/api/eqpt/measurementPlan/dept.ts b/src/api/eqpt/measurementPlan/dept.ts
new file mode 100644
index 0000000..2634685
--- /dev/null
+++ b/src/api/eqpt/measurementPlan/dept.ts
@@ -0,0 +1,28 @@
+/**
+ * 部门/负责人送检通知接口
+ */
+import request from '@/api/index'
+// 分页列表
+export function getListPage(params: object) {
+ return request({
+ url: '/planNotify/listPage',
+ method: 'get',
+ params,
+ })
+}
+// 聚合列表
+export function getListTogether(params: object) {
+ return request({
+ url: '/planNotify/equipmentAggr',
+ method: 'get',
+ params,
+ })
+}
+// 展开列表
+export function getListExpand(params: object) {
+ return request({
+ url: '/planNotify/relationList',
+ method: 'get',
+ params,
+ })
+}
diff --git a/src/api/eqpt/measurementPlan/early.ts b/src/api/eqpt/measurementPlan/early.ts
new file mode 100644
index 0000000..4e00d72
--- /dev/null
+++ b/src/api/eqpt/measurementPlan/early.ts
@@ -0,0 +1,91 @@
+/**
+ * 延迟/送检申请接口
+ */
+import request from '@/api/index'
+
+// 延迟/送检列表-(不同状态)
+export function getListPage(params: object, statusName: string) {
+ if (statusName === '全部') {
+ return request({
+ url: '/inspection/allPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+ else if (statusName === '已审批') {
+ return request({
+ url: '/inspection/approval/approvedListPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+ else if (statusName === '待审批') {
+ return request({
+ url: '/inspection/approval/toApprovalListPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+ else {
+ return request({
+ url: '/inspection/approval/listPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+}
+// 保存编辑
+export function editApply(data: object) {
+ return request({
+ url: '/inspection/approval/saveOrUpdate',
+ method: 'post',
+ data,
+ })
+}
+// 提交
+export function submitApply(data: object) {
+ return request({
+ url: '/inspection/approval/submit',
+ method: 'post',
+ data,
+ })
+}
+// 审批操作
+export function handlerApproval(type: string, data: { processId?: string; taskId?: string; comments: string }) {
+ return request({
+ url: `/inspection/approval/${type}`,
+ method: 'post',
+ data,
+ })
+}
+// 取消
+export function cancelApply(data: object) {
+ return request({
+ url: '/inspection/approval/cancel',
+ method: 'post',
+ data,
+ })
+}
+// 详情信息
+export function detailApply(id: string) {
+ return request({
+ url: `/inspection/detail?id=${id}`,
+ method: 'get',
+ })
+}
+// 删除
+export function delApply(data: object) {
+ return request({
+ url: '/inspection/approval/delete',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/eqpt/measurementPlan/paln.ts b/src/api/eqpt/measurementPlan/paln.ts
new file mode 100644
index 0000000..e1723ec
--- /dev/null
+++ b/src/api/eqpt/measurementPlan/paln.ts
@@ -0,0 +1,119 @@
+/**
+ * 计量计划接口
+ */
+import request from '@/api/index'
+
+// 计量计划列表-(不同状态)
+export function getListPage(params: object, statusName: string) {
+ if (statusName === '全部') {
+ return request({
+ url: '/plan/allPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+ else if (statusName === '已审批') {
+ return request({
+ url: '/plan/approval/approvedListPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+ else if (statusName === '待审批') {
+ return request({
+ url: '/plan/approval/toApprovalListPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+ else {
+ return request({
+ url: '/plan/approval/listPage',
+ method: 'post',
+ data: {
+ ...params,
+ },
+ })
+ }
+}
+// 保存
+export function editPlan(data: object) {
+ return request({
+ url: '/plan/approval/saveOrUpdate',
+ method: 'post',
+ data,
+ })
+}
+// 提交
+export function submitPlan(data: object) {
+ return request({
+ url: '/plan/approval/submit',
+ method: 'post',
+ data,
+ })
+}
+// 详情
+export function detailPlan(id: string) {
+ return request({
+ url: `/plan/detail?id=${id}`,
+ })
+}
+// 删除
+export function delPlan(id: string) {
+ return request({
+ url: '/plan/approval/delete',
+ method: 'post',
+ data: {
+ id,
+ },
+ })
+}
+// 取消
+export function cancelPlan(data: object) {
+ return request({
+ url: '/plan/approval/cancel',
+ method: 'post',
+ data,
+ })
+}
+// 审批操作
+export function handlerApproval(type: string, data: { processId?: string; taskId?: string; comments: string }) {
+ return request({
+ url: `/plan/approval/${type}`,
+ method: 'post',
+ data,
+ })
+}
+// 获取聚合数据
+export function getInfoListTogether(id: string) {
+ return request({
+ url: '/plan/equipmentAggr',
+ params: {
+ planId: id,
+ },
+ })
+}
+// 获取展开数据
+export function getInfoList(id: string, name: string) {
+ return request({
+ url: '/plan/relationList',
+ params: {
+ planId: id,
+ equipmentName: name,
+ },
+ })
+}
+// 发送送检通知
+
+export function sendNotify(id: string) {
+ return request({
+ url: `/planNotify/notify?planId=${id}`,
+ method: 'post',
+ })
+}
diff --git a/src/api/eqpt/measurementPlan/task.ts b/src/api/eqpt/measurementPlan/task.ts
new file mode 100644
index 0000000..3d2901a
--- /dev/null
+++ b/src/api/eqpt/measurementPlan/task.ts
@@ -0,0 +1,44 @@
+/**
+ * r任务单管理接口
+ */
+import request from '@/api/index'
+// 分页列表
+export function getListPage(data: object) {
+ return request({
+ url: '/business/order/listPage',
+ method: 'post',
+ data,
+ })
+}
+// 新建
+export function addTask(data: object) {
+ return request({
+ url: '/business/order/add',
+ method: 'post',
+ data,
+ })
+}
+// 更新
+export function updateTask(data: object) {
+ return request({
+ url: '/business/order/update',
+ method: 'post',
+ data,
+ })
+}
+// 详情
+export function detailTask(data: object) {
+ return request({
+ url: '/business/order/detail',
+ method: 'post',
+ data,
+ })
+}
+// 取消任务单
+export function cancelTask(data: object) {
+ return request({
+ url: '/business/order/cancel',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/eqpt/status/index.ts b/src/api/eqpt/status/index.ts
new file mode 100644
index 0000000..993c9d9
--- /dev/null
+++ b/src/api/eqpt/status/index.ts
@@ -0,0 +1,83 @@
+/**
+ * 状态管理相关接口
+ */
+import request from '@/api/index'
+
+// 不同状态的列表
+export function getListPage(params: object, statusName: string) {
+ if (statusName === '全部') {
+ return request({
+ url: '/status/allPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '已审批') {
+ return request({
+ url: '/status/approval/approvedListPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '待审批') {
+ return request({
+ url: '/status/approval/toApprovalListPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else {
+ return request({
+ url: '/status/approval/listPage',
+ method: 'post',
+ data: params,
+ })
+ }
+}
+// 保存编辑
+export function editStatus(data: object) {
+ return request({
+ url: '/status/approval/saveOrUpdate',
+ method: 'post',
+ data,
+ })
+}
+// 提交
+export function submitStatus(data: object) {
+ return request({
+ url: '/status/approval/submit',
+ method: 'post',
+ data,
+ })
+}
+// 删除记录
+export function deleteStatus(id: string) {
+ return request({
+ url: `/status/approval/delete?id=${id}`,
+ method: 'post',
+ })
+}
+// 取消
+export function cancelStatus(data: object) {
+ return request({
+ url: '/status/approval/cancel',
+ method: 'post',
+ data,
+ })
+}
+// 详情
+export function detailStatus(params: object) {
+ return request({
+ url: '/status/approval/detail',
+ method: 'get',
+ params,
+ })
+}
+// 审批操作
+export function handlerApproval(type: string, data: { processId?: string; taskId?: string; comments: string }) {
+ return request({
+ url: `/status/approval/${type}`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/eqpt/subpackage/certificate.ts b/src/api/eqpt/subpackage/certificate.ts
new file mode 100644
index 0000000..f6f3ea6
--- /dev/null
+++ b/src/api/eqpt/subpackage/certificate.ts
@@ -0,0 +1,27 @@
+/**
+ * 分包证书管理接口
+ */
+import request from '@/api/index'
+// 列表
+export function getListPage(params: object) {
+ return request({
+ url: '/subcontract/certificate/listPage',
+ method: 'get',
+ params,
+ })
+}
+// 新建编辑
+export function editCertificate(data: object) {
+ return request({
+ url: '/subcontract/certificate/addOrUpdate',
+ method: 'post',
+ data,
+ })
+}
+// 删除记录
+export function deleteCertificate(data: object) {
+ return request({
+ url: `/subcontract/certificate/remove?id=${data.id}`,
+ method: 'post',
+ })
+}
diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts
new file mode 100644
index 0000000..e1bbc12
--- /dev/null
+++ b/src/api/eqpt/subpackage/directory.ts
@@ -0,0 +1,83 @@
+/**
+ * 分包名录管理接口
+ */
+import request from '@/api/index'
+
+// 不同状态列表分页
+export function getListPage(params: object, statusName: string) {
+ if (statusName === '全部') {
+ return request({
+ url: '/subcontractor/allPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '已审批') {
+ return request({
+ url: '/subcontractor/approval/approvedListPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '待审批') {
+ return request({
+ url: '/subcontractor/approval/toApprovalListPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else {
+ return request({
+ url: '/subcontractor/approval/listPage',
+ method: 'post',
+ data: params,
+ })
+ }
+}
+// 详情
+export function getDetail(params: object) {
+ return request({
+ url: '/subcontractor/detail',
+ method: 'get',
+ params,
+ })
+}
+// 保存编辑
+export function editDirectory(data: object) {
+ return request({
+ url: '/subcontractor/approval/saveOrUpdate',
+ method: 'post',
+ data,
+ })
+}
+// 提交
+export function submitDirectory(data: object) {
+ return request({
+ url: '/subcontractor/approval/submit',
+ method: 'post',
+ data,
+ })
+}
+// 删除记录
+export function deleteDirectory(data: object) {
+ return request({
+ url: `/subcontractor/remove?id=${data.id}`,
+ method: 'post',
+ })
+}
+// 取消
+export function cancelDirectory(data: object) {
+ return request({
+ url: '/subcontractor/approval/cancel',
+ method: 'post',
+ data,
+ })
+}
+// 审批操作
+export function handlerApproval(type: string, data: { processId?: string; taskId?: string; comments: string }) {
+ return request({
+ url: `/subcontractor/approval/${type}`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/eqpt/subpackage/review.ts b/src/api/eqpt/subpackage/review.ts
new file mode 100644
index 0000000..d5bb694
--- /dev/null
+++ b/src/api/eqpt/subpackage/review.ts
@@ -0,0 +1,83 @@
+/**
+ * 分包评审表管理接口
+ */
+import request from '@/api/index'
+
+// 不同状态列表分页
+export function getListPage(params: object, statusName: string) {
+ if (statusName === '全部') {
+ return request({
+ url: '/subcontract/review/allPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '已审批') {
+ return request({
+ url: '/subcontract/review/approval/approvedListPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else if (statusName === '待审批') {
+ return request({
+ url: '/subcontract/review/approval/toApprovalListPage',
+ method: 'post',
+ data: params,
+ })
+ }
+ else {
+ return request({
+ url: '/subcontract/review/approval/listPage',
+ method: 'post',
+ data: params,
+ })
+ }
+}
+// 详情
+export function getDetail(params: object) {
+ return request({
+ url: '/subcontract/review/detail',
+ method: 'get',
+ params,
+ })
+}
+// 保存编辑
+export function editReview(data: object) {
+ return request({
+ url: '/subcontract/review/approval/saveOrUpdate',
+ method: 'post',
+ data,
+ })
+}
+// 提交
+export function submitReview(data: object) {
+ return request({
+ url: '/subcontract/review/approval/submit',
+ method: 'post',
+ data,
+ })
+}
+// 删除记录
+export function deleteReview(data: object) {
+ return request({
+ url: `/subcontract/review/approval/delete?id=${data.id}`,
+ method: 'post',
+ })
+}
+// 取消
+export function cancelReview(data: object) {
+ return request({
+ url: '/subcontract/review/approval/cancel',
+ method: 'post',
+ data,
+ })
+}
+// 审批操作
+export function handlerApproval(type: string, data: { processId?: string; taskId?: string; comments: string }) {
+ return request({
+ url: `/subcontract/review/approval/${type}`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/system/dept.ts b/src/api/system/dept.ts
index befae46..363a960 100644
--- a/src/api/system/dept.ts
+++ b/src/api/system/dept.ts
@@ -41,7 +41,7 @@
// 添加组织机构
export function addDept(data: object) {
return request({
- url: '/sys/extend/dept/add',
+ url: '/sys/dept/add',
method: 'post',
data,
})
@@ -49,7 +49,7 @@
// 修改组织机构
export function updateDept(data: object) {
return request({
- url: '/sys/extend/dept/update',
+ url: '/sys/dept/update',
method: 'post',
data,
})
@@ -57,7 +57,7 @@
// 删除组织机构
export function delDept(id: string) {
return request({
- url: '/sys/extend/dept/delete',
+ url: '/sys/dept/delete',
method: 'post',
data: {
id,
diff --git a/src/api/system/user.ts b/src/api/system/user.ts
index b76afc5..1f8697d 100644
--- a/src/api/system/user.ts
+++ b/src/api/system/user.ts
@@ -16,11 +16,11 @@
// 添加用户
export function addUser(data: object) {
- return request.post(`${prefix}mgr/add`, data)
+ return request.post('system/mgr/add', data)
}
// 修改用户
export function updateUser(data: object) {
- return request.post(`${prefix}mgr/update`, data)
+ return request.post('system/mgr/update', data)
}
// 删除用户
export function delUser(data: { id: string }) {
@@ -69,3 +69,9 @@
// paramsSerializer: (params) => qs.stringify(params, { indices: false })
})
}
+// 获取用户所在单位
+export function getUserDept() {
+ return request({
+ url: '/system/company',
+ })
+}
diff --git a/src/assets/icons/icon-jidu.svg b/src/assets/icons/icon-jidu.svg
new file mode 100644
index 0000000..54fe8d2
--- /dev/null
+++ b/src/assets/icons/icon-jidu.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-month.svg b/src/assets/icons/icon-month.svg
new file mode 100644
index 0000000..a862c8a
--- /dev/null
+++ b/src/assets/icons/icon-month.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-year.svg b/src/assets/icons/icon-year.svg
new file mode 100644
index 0000000..de4220d
--- /dev/null
+++ b/src/assets/icons/icon-year.svg
@@ -0,0 +1 @@
+
diff --git a/src/components/Approval/ApprovalDialog.vue b/src/components/Approval/ApprovalDialog.vue
index 2fb919e..2bb0eef 100644
--- a/src/components/Approval/ApprovalDialog.vue
+++ b/src/components/Approval/ApprovalDialog.vue
@@ -3,7 +3,7 @@
import { ElMessage } from 'element-plus'
import dayjs from 'dayjs'
import useUserStore from '@/store/modules/user'
-import { submitApproval } from '@/api/approval'
+import { handlerApproval } from '@/api/eqpt/device/info'
/**
* 审批弹窗
*/
@@ -26,6 +26,8 @@
comments: '', // 备注
user: '', // 当前用户
approvalTime: '', // 当前时间
+ processInstanceId: '',
+ id: '',
}
// 弹窗类型 agree同意 refuse拒绝 reject驳回 revoke取消
const type = ref('agree')
@@ -50,9 +52,11 @@
* @param type 审批类型
* @param taskId 任务id
*/
-function initDialog(type: string, taskId: string) {
+function initDialog(type: string, taskId: string, processInstanceId: string, id: string) {
formData.type = type
formData.taskId = taskId
+ formData.processInstanceId = processInstanceId
+ formData.id = id
formData.user = userInfo.name
formData.approvalTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
formData.comments = ''
@@ -65,7 +69,7 @@
if (valid) {
btnLoading.value = true
if (formData.type) {
- submitApproval(formData.type, { taskId: formData.taskId, comments: formData.comments }).then((res) => {
+ handlerApproval(formData.type, { taskId: formData.taskId, comments: formData.comments, processInstanceId: formData.processInstanceId, id: formData.id }).then((res) => {
ElMessage.success('审批完成')
btnLoading.value = false
dialogVisible.value = false
@@ -108,9 +112,9 @@
同意
-
+
拒绝
diff --git a/src/components/DetailPage/DetailBlockCom.vue b/src/components/DetailPage/DetailBlockCom.vue
index 13bd2aa..3eee911 100644
--- a/src/components/DetailPage/DetailBlockCom.vue
+++ b/src/components/DetailPage/DetailBlockCom.vue
@@ -40,7 +40,7 @@
.content {
background-color: #fff;
- // padding: 0 10px 20px;
+ padding: 0 10px 20px;
margin-top: 10px;
}
}
diff --git a/src/components/dialog/selectEmployeesDialog.vue b/src/components/dialog/selectEmployeesDialog.vue
index b3c1920..54ca54c 100644
--- a/src/components/dialog/selectEmployeesDialog.vue
+++ b/src/components/dialog/selectEmployeesDialog.vue
@@ -51,7 +51,7 @@
endTime: '',
deptId: '',
offset: 1,
- limit: 20,
+ limit: 30,
sort: 'id',
deptType: '',
})
diff --git a/src/layouts/components/Tools/index.vue b/src/layouts/components/Tools/index.vue
index 9f30b7e..f5bc3c9 100644
--- a/src/layouts/components/Tools/index.vue
+++ b/src/layouts/components/Tools/index.vue
@@ -64,6 +64,8 @@
eventBus.emit('global-hotkeys-intro-toggle')
break
case 'logout':
+ localStorage.removeItem('currentSys')
+ routeStore.removeRoutes()
userStore.logout().then(() => {
router.push({
name: 'login',
@@ -98,7 +100,7 @@
-
+
diff --git a/src/router/modules/tested.ts b/src/router/modules/tested.ts
index c105f62..c91417a 100644
--- a/src/router/modules/tested.ts
+++ b/src/router/modules/tested.ts
@@ -66,6 +66,30 @@
activeMenu: '/planlist',
},
},
+ {
+ path: '/plan/:type',
+ name: 'PlanEdit',
+ component: () => import('@/views/tested/MeasurementPlan/plan/components/edit.vue'),
+ meta: {
+ title: '计量计划编辑',
+ auth: '/tested/metering/plan',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/planlist',
+ },
+ },
+ {
+ path: '/plan/detail',
+ name: 'PlanDetail',
+ component: () => import('@/views/tested/MeasurementPlan/plan/components/detail.vue'),
+ meta: {
+ title: '计量计划详情',
+ auth: '/tested/metering/plan',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/planlist',
+ },
+ },
],
},
{
@@ -107,7 +131,7 @@
{
path: '/ealypage',
name: 'EalyPage',
- component: () => import('@/views/tested/MeasurementPlan/ealy/index.vue'),
+ component: () => import('@/views/tested/MeasurementPlan/early/index.vue'),
meta: {
title: '提前送检申请',
auth: '/tested/metering/ealy',
@@ -116,6 +140,30 @@
activeMenu: '/meteringealy',
},
},
+ {
+ path: '/ealy/:type',
+ name: 'EalyEdit',
+ component: () => import('@/views/tested/MeasurementPlan/early/components/edit.vue'),
+ meta: {
+ title: '提前送检编辑',
+ auth: '/tested/metering/ealy',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/meteringealy',
+ },
+ },
+ {
+ path: '/ealy/detail',
+ name: 'EalyDetail',
+ component: () => import('@/views/tested/MeasurementPlan/early/components/detail.vue'),
+ meta: {
+ title: '提前送检编辑',
+ auth: '/tested/metering/ealy',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/meteringealy',
+ },
+ },
],
},
{
@@ -141,6 +189,30 @@
activeMenu: '/meteringdelay',
},
},
+ {
+ path: '/delay/:type',
+ name: 'DealyEdit',
+ component: () => import('@/views/tested/MeasurementPlan/early/components/edit.vue'),
+ meta: {
+ title: '延迟送检编辑',
+ auth: '/tested/metering/delay',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/meteringdelay',
+ },
+ },
+ {
+ path: '/delay/detail',
+ name: 'DealyDetail',
+ component: () => import('@/views/tested/MeasurementPlan/early/components/detail.vue'),
+ meta: {
+ title: '延迟送检详情',
+ auth: '/tested/metering/delay',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/meteringdelay',
+ },
+ },
],
},
{
@@ -191,6 +263,18 @@
activeMenu: '/meteringdept',
},
},
+ {
+ path: '/meteringdept/:type',
+ name: 'MeteringdetEdit',
+ component: () => import('@/views/tested/MeasurementPlan/dept/components/edit.vue'),
+ meta: {
+ title: '部门送检通知编辑',
+ auth: '/tested/metering/dept',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/meteringdept',
+ },
+ },
],
},
{
@@ -216,6 +300,18 @@
activeMenu: '/meteringtask',
},
},
+ {
+ path: '/meteringtask/:type',
+ name: 'MeteringtaskEdit',
+ component: () => import('@/views/tested/MeasurementPlan/task/components/edit.vue'),
+ meta: {
+ title: '任务单管理编辑',
+ auth: '/tested/metering/task',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/meteringtask',
+ },
+ },
],
},
],
@@ -267,6 +363,18 @@
activeMenu: '/devicelist',
},
},
+ {
+ path: '/info/detail',
+ name: 'DeviceDetail',
+ component: () => import('@/views/tested/device/info/components/detail.vue'),
+ meta: {
+ title: '设备信息详情',
+ auth: '/tested/device/info',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/devicelist',
+ },
+ },
],
},
{
@@ -292,6 +400,30 @@
activeMenu: '/speciallist',
},
},
+ {
+ path: '/speciallist/:type',
+ name: 'SpeciaEdit',
+ component: () => import('@/views/tested/device/info/components/edit.vue'),
+ meta: {
+ title: '设备信息编辑',
+ auth: '/tested/device/special',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/speciallist',
+ },
+ },
+ {
+ path: '/speciallist/detail',
+ name: 'SpeciaDetail',
+ component: () => import('@/views/tested/device/info/components/detail.vue'),
+ meta: {
+ title: '设备信息编辑',
+ auth: '/tested/device/special',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/speciallist',
+ },
+ },
],
},
{
@@ -317,6 +449,18 @@
activeMenu: '/grouplist',
},
},
+ {
+ path: '/group/:type',
+ name: 'GroupEdit',
+ component: () => import('@/views/tested/device/group/components/edit.vue'),
+ meta: {
+ title: '分组信息编辑',
+ auth: '/tested/device/group',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/grouplist',
+ },
+ },
],
},
{
@@ -342,6 +486,18 @@
activeMenu: '/dcertificatelist',
},
},
+ {
+ path: '/certificate/:type',
+ name: 'CertificateEdit',
+ component: () => import('@/views/tested/device/certificate/components/edit.vue'),
+ meta: {
+ title: '证书管理编辑',
+ auth: '/tested/device/certificate',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/dcertificatelist',
+ },
+ },
],
},
{
@@ -367,6 +523,30 @@
activeMenu: '/dremindlist',
},
},
+ {
+ path: '/dremindlist/:type',
+ name: 'DremindlistEdit',
+ component: () => import('@/views/tested/device/remind/components/edit.vue'),
+ meta: {
+ title: '到期提醒编辑',
+ auth: '/tested/device/remind',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/dremindlist',
+ },
+ },
+ {
+ path: '/dremindlist/detail',
+ name: 'dremindlistDetail',
+ component: () => import('@/views/tested/device/info/components/detail.vue'),
+ meta: {
+ title: '到期提醒详情',
+ auth: '/tested/device/remind',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/dremindlist',
+ },
+ },
],
},
],
@@ -406,6 +586,18 @@
activeMenu: '/seallist',
},
},
+ {
+ path: '/sealpage/:type',
+ name: 'SealEdit',
+ component: () => import('@/views/tested/status/delay/components/edit.vue'),
+ meta: {
+ title: '封存申请',
+ auth: '/tested/status/seal',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/seallist',
+ },
+ },
],
},
{
@@ -431,6 +623,18 @@
activeMenu: '/unseallist',
},
},
+ {
+ path: '/unsealpage/:type',
+ name: 'UnSealPageEdit',
+ component: () => import('@/views/tested/status/delay/components/edit.vue'),
+ meta: {
+ title: '启封申请',
+ auth: '/tested/status/unseal',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/unseallist',
+ },
+ },
],
},
{
@@ -456,6 +660,18 @@
activeMenu: '/disablelist',
},
},
+ {
+ path: '/disablepage/:type',
+ name: 'SDiaableEdit',
+ component: () => import('@/views/tested/status/delay/components/edit.vue'),
+ meta: {
+ title: '禁用申请',
+ auth: '/tested/status/disable',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/disablelist',
+ },
+ },
],
},
{
@@ -481,6 +697,18 @@
activeMenu: '/scraplist',
},
},
+ {
+ path: '/scrappage/:type',
+ name: 'SCrapEdit',
+ component: () => import('@/views/tested/status/delay/components/edit.vue'),
+ meta: {
+ title: '报废申请',
+ auth: '/tested/status/scrap',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/scraplist',
+ },
+ },
],
},
{
@@ -506,6 +734,18 @@
activeMenu: '/sdelaylist',
},
},
+ {
+ path: '/sdelaypage/:type',
+ name: 'SDealyEdit',
+ component: () => import('@/views/tested/status/delay/components/edit.vue'),
+ meta: {
+ title: '延用申请',
+ auth: '/tested/status/delay',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/sdelaylist',
+ },
+ },
],
},
],
@@ -535,6 +775,19 @@
activeMenu: '/documentlist',
},
},
+ {
+ path: '/documentlist/:type',
+ component: () => import('@/views/tested/document/list/edit.vue'),
+ name: 'docuemntEdit',
+ meta: {
+ title: '文档管理',
+ icon: 'ep:key',
+ auth: '/tested/document',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/documentlist',
+ },
+ },
],
},
// 计量业务管理
@@ -711,6 +964,18 @@
activeMenu: '/directorylist',
},
},
+ {
+ path: '/directorypage/:type',
+ name: 'DirectoryEdit',
+ component: () => import('@/views/tested/subpackage/directory/components/edit.vue'),
+ meta: {
+ title: '测试、校准或检定合格分包方名录',
+ auth: '/tested/subpackage/directory',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/directorylist',
+ },
+ },
],
},
{
@@ -733,7 +998,19 @@
auth: '/tested/subpackage/review',
sidebar: false,
breadcrumb: false,
- activeMenu: '/reviewpage',
+ activeMenu: '/reviewlist',
+ },
+ },
+ {
+ path: '/reviewpage/:type',
+ name: 'ReviewPageEdit',
+ component: () => import('@/views/tested/subpackage/review/components/edit.vue'),
+ meta: {
+ title: '测试、校准或检定工作分包评审表',
+ auth: '/tested/subpackage/review',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/reviewlist',
},
},
],
@@ -761,6 +1038,18 @@
activeMenu: '/pcertificatelist',
},
},
+ {
+ path: '/pcertificatepage/:type',
+ name: 'PcertificatePageEdit',
+ component: () => import('@/views/tested/subpackage/certificate/components/edit.vue'),
+ meta: {
+ title: '分包证书管理编辑',
+ auth: '/tested/subpackage/certificate',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/pcertificatelist',
+ },
+ },
],
},
],
diff --git a/src/utils/applyBtns.ts b/src/utils/applyBtns.ts
new file mode 100644
index 0000000..e08ffe1
--- /dev/null
+++ b/src/utils/applyBtns.ts
@@ -0,0 +1,100 @@
+// 操作栏 编辑按钮
+export const editTextBtn = (applyStatus: string) => {
+ switch (applyStatus) {
+ case '全部':
+ return true
+ break
+ case '已审批':
+ return false
+ break
+ case '待审批':
+ return false
+ break
+ case '审批':
+ return false
+ break
+ case '草稿箱':
+ return false
+ break
+ case '审批中':
+ return false
+ break
+ case '已通过':
+ return false
+ break
+ case '未通过':
+ return false
+ break
+ case '已取消':
+ return false
+ break
+ }
+}
+// 编辑栏删除按钮
+export const delTextBtn = (applyStatus: string) => {
+ switch (applyStatus) {
+ case '全部':
+ return true
+ break
+ case '已审批':
+ return false
+ break
+ case '待审批':
+ return false
+ break
+ case '审批':
+ return false
+ break
+ case '草稿箱':
+ return true
+ break
+ case '审批中':
+ return false
+ break
+ case '已通过':
+ return false
+ break
+ case '未通过':
+ return false
+ break
+ case '已取消':
+ return true
+ break
+ }
+}
+// 编辑页面中编辑按钮
+export const editBtn = (applyStatus: string, type: string) => {
+ if (applyStatus === '审批' && type === 'detail') {
+ return true
+ }
+ else if (applyStatus === '草稿箱' && type === 'detail') {
+ return true
+ }
+ else if (applyStatus === '未通过' && type === 'detail') {
+ return true
+ }
+ else if (applyStatus === '已取消' && type === 'detail') {
+ return true
+ }
+ else {
+ return false
+ }
+}
+// 编辑页面中提交保存按钮
+export const submitBtn = (applyStatus: string, type: string) => {
+ if (applyStatus === '全部' && type !== 'detail') {
+ return true
+ }
+ else if (applyStatus === '草稿箱' && type === 'update') {
+ return true
+ }
+ else if (applyStatus === '未通过' && type === 'update') {
+ return true
+ }
+ else if (applyStatus === '已取消' && type === 'update') {
+ return true
+ }
+ else {
+ return false
+ }
+}
diff --git a/src/utils/buttonPerm.ts b/src/utils/buttonPerm.ts
index a71d150..da0001f 100644
--- a/src/utils/buttonPerm.ts
+++ b/src/utils/buttonPerm.ts
@@ -10,7 +10,7 @@
agree: {
if: (row: any, permPath: string) => {
error(permPath)
- return hasPermission(permPath) && row.approvalStatusName === '待审批' && [1, 2, 3].includes(row.decisionItem)
+ return hasPermission(permPath) && row.approvalStatusName === '待审批'
},
disabled: (row: any) => {
return row.approvalStatusName !== '待审批' && row.approvalStatusName !== '审批中'
@@ -19,7 +19,7 @@
reject: {
if: (row: any, permPath: string) => {
error(permPath)
- return hasPermission(permPath) && row.approvalStatusName === '待审批' && [1, 2].includes(row.decisionItem)
+ return hasPermission(permPath) && row.approvalStatusName === '待审批'
},
disabled: (row: any) => {
return row.approvalStatusName !== '待审批' && row.approvalStatusName !== '审批中'
@@ -37,8 +37,8 @@
edit: {
if: (row: any, permPath: string) => {
error(permPath)
- // eslint-disable-next-line no-mixed-operators
- return hasPermission(permPath) && row.approvalStatusName === '未通过-驳回' || row.approvalStatusName === '草稿箱' || row.approvalStatusName === '已取消'
+
+ return hasPermission(permPath) && row.approvalStatusName === '全部'
},
},
submit: {
@@ -59,7 +59,7 @@
delete: {
if: (row: any, permPath: string) => {
error(permPath)
- return hasPermission(permPath) && row.approvalStatusName !== '未通过' && row.approvalStatusName !== '已通过' && row.approvalStatusName !== '未通过-驳回' && row.approvalStatusName !== '审批中'
+ return hasPermission(permPath) && row.approvalStatusName !== '待审批' && row.approvalStatusName !== '已通过' && row.approvalStatusName !== '审批中' && row.approvalStatusName !== '审批' && row.approvalStatusName !== '已审批'
},
disabled: (row: any) => {
return row.approvalStatusName === '未通过' || row.approvalStatusName === '已通过'
diff --git a/src/utils/scheduleDict.ts b/src/utils/scheduleDict.ts
index e7a6597..b6cd934 100644
--- a/src/utils/scheduleDict.ts
+++ b/src/utils/scheduleDict.ts
@@ -2,5 +2,15 @@
* 流程字典, 流程代号:流程id-对应表单中的formId
*/
export enum SCHEDULE {
- DEVICE_INFO_APPROVAL = 'sbxxgl', // 设备信息管理,
+ DEVICE_INFO_APPROVAL = 'sbtzgl ', // 设备台账,
+ METERING_PLAN_APPROVAL = 'jljhgl', // 计量计划
+ METERING_PLAN_EARLY = 'tqsjsq', // 提前送检申请
+ METERING_PLAN_DEALY = 'ycsjsq', // 延迟送检申请
+ SUBCONTRACTOR_APPROVAL = 'fbfmlgl', // 分包方名录管理
+ SUBCONTRACT_REVIEW_APPROVAL = 'fbfpsbgl', // 分包方评审表
+ EQUIPMENT_SEALED_APPROVAL = 'sbfcsq', // 设备封存申请
+ EQUIPMENT_UNSEALED_APPROVAL = 'sbgfsq', // 设备启封由请
+ EQUIPMENT_DISABLE_APPROVAL = 'sbjysq', // 设备禁用申请
+ EQUIPMENT_SCRAP_APPROVAL = 'sbbfsq', // 设备报废申请
+ EQUIPMENT_DELAY_APPROVAL = 'sbyysq"', // 设备延用申请
}
diff --git a/src/utils/useCheckList.ts b/src/utils/useCheckList.ts
new file mode 100644
index 0000000..31a16b9
--- /dev/null
+++ b/src/utils/useCheckList.ts
@@ -0,0 +1,29 @@
+import { ElMessage } from 'element-plus'
+import type { TableColumn } from '@/components/NormalTable/table_interface'
+
+/**
+ * 检查列表
+ * @param list 要检查的表格数据
+ * @param columns // 表头信息
+ * @param tableTitle // 表格名称
+ */
+export function useCheckList(list: { [key: string]: string }[], columns: TableColumn, tableTitle = '') {
+ for (let index = 0; index < list.length; index++) {
+ const item = list[index]
+ for (const prop of columns) {
+ // 检查必填
+ if (prop.required && !item[prop.value]) {
+ ElMessage.warning(`请先完善${tableTitle}第${index + 1}行中${prop.text}`)
+ return false
+ }
+ // 验证正则
+ if (prop.reg && typeof prop.reg === 'function') {
+ if (!prop.reg(item[prop.value])) {
+ ElMessage.warning(`${tableTitle}第${index + 1}行中${prop.text}输入不合法`)
+ return false
+ }
+ }
+ }
+ }
+ return true
+}
diff --git a/src/views/dashboard.vue b/src/views/dashboard.vue
index 968f136..6294ad5 100644
--- a/src/views/dashboard.vue
+++ b/src/views/dashboard.vue
@@ -322,3 +322,16 @@
color: #fff !important;
}
+
+
diff --git a/src/views/login.vue b/src/views/login.vue
index 714b44f..01c0cba 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -211,7 +211,7 @@
- 华东计量综合系统
+ 计量信息系统
diff --git a/src/views/system/user/user-interface.ts b/src/views/system/user/user-interface.ts
index d8ea8b5..9596c7b 100644
--- a/src/views/system/user/user-interface.ts
+++ b/src/views/system/user/user-interface.ts
@@ -35,6 +35,7 @@
birthday?: string
sex?: string // 性别
roleName?: string
+ attr1?: string
}
// 用户列表返回值类型
export interface userType {
diff --git a/src/views/system/user/userAdd.vue b/src/views/system/user/userAdd.vue
index 5387580..d9be3d1 100644
--- a/src/views/system/user/userAdd.vue
+++ b/src/views/system/user/userAdd.vue
@@ -26,6 +26,7 @@
rePassword: '', // 重复密码
birthday: '',
sex: '', // 性别
+ attr1: '', // 人员类别
})// 表单
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
@@ -36,6 +37,7 @@
const roleTreeList = ref([])// 角色树列表数据
const deptTreeList = ref([])
const sexList = ref<{ id: string; value: string; name: string }[]>()// 性别选项
+const perTypeList = ref<{ id: string; value: string; name: string }[]>()// 人员类别列表
const textMap: { [key: string]: string } = {
update: '编辑用户',
create: '新增用户',
@@ -71,6 +73,7 @@
roleid: [{ required: true, message: '角色必选', trigger: ['blur', 'change'] }],
email: [{ required: false, message: '请输入邮箱地址', trigger: 'blur' }, { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
phone: [{ required: false, pattern: /^1[34578]\d{9}$/, message: '请输入正确的手机号', trigger: ['blur', 'change'] }],
+ attr1: [{ required: true, message: '人员类别必选', trigger: ['blur', 'change'] }],
})// 前端校验规则
const roleName = ref()// 角色名,展示用
const btnLoading = ref(false)// 保存按钮的加载中状态
@@ -185,6 +188,9 @@
getDictByCode('sex').then((response) => {
sexList.value = response.data
})
+ getDictByCode('bizStaffType').then((response) => {
+ perTypeList.value = response.data
+ })
fetchRoleTree()
fetchDeptTree()
dialogStatus.value = dialogStatusflag
@@ -307,6 +313,15 @@
+
+
+
+
+
+
+
+
+