diff --git a/folder-alias.json b/folder-alias.json
index a643b7b4..18cac9a9 100644
--- a/folder-alias.json
+++ b/folder-alias.json
@@ -7,5 +7,11 @@
},
"server/form": {
"description": "流程表单配置"
+ },
+ "web/src/views/sitePersonnel": {
+ "description": "现场人员管理"
+ },
+ "web/src/views/sitePersonnel/realName": {
+ "description": "实名制与信息管理"
}
}
\ No newline at end of file
diff --git a/package.json b/package.json
index 25d02719..c39db36e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "zilber-admin",
"version": "1.0.0",
- "description": "致博后台管理系统",
+ "description": "智慧工地管理系统",
"author": "ChengYu",
"license": "MIT",
"scripts": {
diff --git a/web/.env.development b/web/.env.development
index ab4b0e64..eb61da73 100644
--- a/web/.env.development
+++ b/web/.env.development
@@ -1,10 +1,10 @@
# 页面标题
-VITE_APP_TITLE = 致博管理系统
+VITE_APP_TITLE = 智慧工地管理系统
# 开发环境配置
VITE_APP_ENV = 'development'
-# 致博管理系统/开发环境
+# 智慧工地管理系统/开发环境
VITE_APP_BASE_API = '/dev-api'
# 开发环境-NODE-工作流接口
VITE_APP_BASE_PROCESS_API = 'http://127.0.0.1:3095/process'
diff --git a/web/.env.production b/web/.env.production
index c7d7688e..e38b5a98 100644
--- a/web/.env.production
+++ b/web/.env.production
@@ -1,10 +1,10 @@
# 页面标题
-VITE_APP_TITLE = 致博管理系统
+VITE_APP_TITLE = 智慧工地管理系统
# 生产环境配置
VITE_APP_ENV = 'production'
-# 致博管理系统/生产环境
+# 智慧工地管理系统/生产环境
#VITE_APP_BASE_API = 'http://39.100.74.100:8080'
VITE_APP_BASE_API = 'http://127.0.0.1:3095/ry'
# 生产环境-NODE-工作流接口
diff --git a/web/.env.staging b/web/.env.staging
index a0a4710e..a2cb9a98 100644
--- a/web/.env.staging
+++ b/web/.env.staging
@@ -1,10 +1,10 @@
# 页面标题
-VITE_APP_TITLE = 致博管理系统
+VITE_APP_TITLE = 智慧工地管理系统
# 生产环境配置
VITE_APP_ENV = 'staging'
-# 致博管理系统/生产环境
+# 智慧工地管理系统/生产环境
VITE_APP_BASE_API = '/stage-api'
# 生产环境-NODE-工作流接口
VITE_APP_BASE_PROCESS_API = 'http://127.0.0.1:3095/process'
diff --git a/web/README.md b/web/README.md
index bf45be22..d891e2a7 100644
--- a/web/README.md
+++ b/web/README.md
@@ -1,4 +1,4 @@
## 说明
-基于致博的致博后台管理系统模板
+基于致博的智慧工地管理系统模板
## 使用文档
[文档地址](https://www.zilber.cn/doc/rp/)
diff --git a/web/folder-alias.json b/web/folder-alias.json
new file mode 100644
index 00000000..52f24f09
--- /dev/null
+++ b/web/folder-alias.json
@@ -0,0 +1,32 @@
+{
+ "src/views/constructionScheduling/construction-report": {
+ "description": "施工报告"
+ },
+ "src/views/constructionScheduling/engineering-log": {
+ "description": "工程日志"
+ },
+ "src/views/constructionScheduling/resource-scheduling": {
+ "description": "资源调度"
+ },
+ "src/views/constructionScheduling/production-plan": {
+ "description": "生产计划"
+ },
+ "src/views/constructionScheduling/progress-tracking": {
+ "description": "进度跟踪"
+ },
+ "src/views/sitePersonnel/safety-education": {
+ "description": "安全教育"
+ },
+ "src/views/sitePersonnel/realName": {
+ "description": "实名制与信息管理"
+ },
+ "src/views/vehicleMachinery/car-manage": {
+ "description": "运输车辆管理"
+ },
+ "src/views/vehicleMachinery/construction-achinery": {
+ "description": "施工机械管理"
+ },
+ "src/views/constructionScheduling/resource-management": {
+ "description": "资源管理"
+ }
+}
\ No newline at end of file
diff --git a/web/index.html b/web/index.html
index cd1b7e97..f05f929d 100644
--- a/web/index.html
+++ b/web/index.html
@@ -7,7 +7,7 @@
-
致博管理系统
+ 智慧工地管理系统
diff --git a/web/src/views/constructionScheduling/construction-report/options.js b/web/src/views/constructionScheduling/construction-report/options.js
new file mode 100644
index 00000000..8c559aab
--- /dev/null
+++ b/web/src/views/constructionScheduling/construction-report/options.js
@@ -0,0 +1,235 @@
+export const baseModelOptions = () => {
+ return [
+ {
+ tag: "el-date-picker",
+ label: '报告日期:',
+ key: 'date',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择报告日期', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择报告日期',
+ },
+ },
+
+ {
+ tag: 'BaseSelect',
+ label: '报告周期:',
+ key: 'cycle',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择报告周期', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择报告周期',
+ options: [{
+ value: "日",
+ label: "日"
+ }, {
+ value: "周",
+ label: "周"
+ }, {
+ value: "月",
+ label: "月"
+ }]
+ },
+ },
+ {
+ tag: 'BaseSelect',
+ label: '项目名称:',
+ key: 'planId',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择项目名称', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择项目名称',
+ options: []
+ },
+ },
+ // {
+ // tag: 'el-input',
+ // label: '材料使用:',
+ // key: 'materialsUse',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择材料使用', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入材料使用',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '人力投入:',
+ // key: 'manpower',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择人力投入', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入人力投入',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '质量安全:',
+ // key: 'qs',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择质量安全', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入质量安全',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '机械设备运行:',
+ // key: 'equipmentOperation',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择机械设备运行', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入机械设备运行',
+ // },
+ // },
+ {
+ tag: 'el-input',
+ label: '建议:',
+ key: 'advises',
+ value: '',
+ default: '',
+ // rules: [
+ // { required: true, message: '请输入报告周期', trigger: 'blur' },
+ // ],
+ attribute: {//属性
+ type: 'textarea',
+ placeholder: '请输入建议',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '总体进度:',
+ key: 'totalProgress',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入总体进度', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ max: 100,
+ placeholder: '请输入总体进度',
+ },
+ },
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'BaseSelect',
+ label: '项目名称:',
+ key: 'planId',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择项目名称', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择项目名称',
+ options: []
+ },
+ },
+ // {
+ // tag: 'el-input',
+ // label: '材料使用:',
+ // key: 'materialsUse',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择材料使用', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入材料使用',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '人力投入:',
+ // key: 'manpower',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择人力投入', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入人力投入',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '质量安全:',
+ // key: 'qs',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择质量安全', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入质量安全',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '机械设备运行:',
+ // key: 'equipmentOperation',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择机械设备运行', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入机械设备运行',
+ // },
+ // },
+
+ {
+ tag: "el-date-picker",
+ label: '报告日期:',
+ key: 'date',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择报告日期', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择报告日期',
+ },
+ },
+
+
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/engineering-log/api.js b/web/src/views/constructionScheduling/engineering-log/api.js
new file mode 100644
index 00000000..f50203db
--- /dev/null
+++ b/web/src/views/constructionScheduling/engineering-log/api.js
@@ -0,0 +1,66 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const iengineerlogList = (arg) => {
+ return axios.request({
+ url: '/iengineerlog/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const iengineerlogGetById = (arg) => {
+ return axios.request({
+ url: `/iengineerlog/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const iengineerlogAdd = (arg) => {
+ return axios.request({
+ url: '/iengineerlog/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const iengineerlogUpdate = (arg) => {
+ return axios.request({
+ url: '/iengineerlog/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const iengineerlogDelete = (arg) => {
+ return axios.request({
+ url: '/iengineerlog/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/engineering-log/index.vue b/web/src/views/constructionScheduling/engineering-log/index.vue
new file mode 100644
index 00000000..089668cb
--- /dev/null
+++ b/web/src/views/constructionScheduling/engineering-log/index.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/web/src/views/constructionScheduling/engineering-log/options.js b/web/src/views/constructionScheduling/engineering-log/options.js
new file mode 100644
index 00000000..285c7fbc
--- /dev/null
+++ b/web/src/views/constructionScheduling/engineering-log/options.js
@@ -0,0 +1,223 @@
+export const baseModelOptions = () => {
+ function validatePhoneNumber(phoneNumber) {
+ const regex = /^1[3-9]\d{9}$/;
+ return regex.test(phoneNumber);
+ }
+ const validatePass2 = (rule, value, callback) => {
+ if (value === '') {
+ callback(new Error('请输入现场负责人联系方式'))
+ } else {
+ if (!validatePhoneNumber(value)) {
+ callback(new Error('手机号格式不正确'))
+ return
+ }
+ callback()
+ }
+ }
+ return [
+ {
+ tag: "el-date-picker",
+ label: '日期:',
+ key: 'date',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择日期', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择日期',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '天气:',
+ key: 'weather',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入天气',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '温度:',
+ key: 'temperature',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入温度',
+ },
+ },
+
+ {
+ tag: 'el-input',
+ label: '风力:',
+ key: 'wind',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入风力',
+ },
+ },
+
+ {
+ tag: 'el-input',
+ label: '现场负责人:',
+ key: 'principalName',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入现场负责人', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入现场负责人',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '联系方式:',
+ key: 'principalTel',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, validator: validatePass2, trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入联系方式',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '施工情况:',
+ key: 'constructionSituation',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入施工情况',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '其他事项:',
+ key: 'otherBusiness',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'textarea',
+ placeholder: '请输入其他事项',
+ },
+ },
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '现场负责人:',
+ key: 'principalName',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择现场负责人', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入现场负责人',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '联系方式:',
+ key: 'principalTel',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入联系方式', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入联系方式',
+ },
+ },
+ // {
+ // tag: "el-date-picker",
+ // label: '日期:',
+ // key: 'date',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请选择日期', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // valueFormat: "YYYY-MM-DD",
+ // type: "date",
+ // placeholder: '请选择日期',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '温度:',
+ // key: 'temperature',
+ // value: '',
+ // default: '',
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入温度',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '天气:',
+ // key: 'weather',
+ // value: '',
+ // default: '',
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入天气',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '风力:',
+ // key: 'wind',
+ // value: '',
+ // default: '',
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入风力',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '施工情况:',
+ // key: 'constructionSituation',
+ // value: '',
+ // default: '',
+ // attribute: {//属性
+ // type: 'textarea',
+ // placeholder: '请输入施工情况',
+ // },
+ // },
+ // {
+ // tag: 'el-input',
+ // label: '其他事项:',
+ // key: 'otherBusiness',
+ // value: '',
+ // default: '',
+ // attribute: {//属性
+ // type: 'textarea',
+ // placeholder: '请输入其他事项',
+ // },
+ // },
+
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/production-plan/api.js b/web/src/views/constructionScheduling/production-plan/api.js
new file mode 100644
index 00000000..952eb464
--- /dev/null
+++ b/web/src/views/constructionScheduling/production-plan/api.js
@@ -0,0 +1,56 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const iproductionplanGetById = (arg) => {
+ return axios.request({
+ url: `/iproductionplan/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const iproductionplanAdd = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const iproductionplanUpdate = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const iproductionplanDelete = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/production-plan/index.vue b/web/src/views/constructionScheduling/production-plan/index.vue
new file mode 100644
index 00000000..ad8ca59c
--- /dev/null
+++ b/web/src/views/constructionScheduling/production-plan/index.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/web/src/views/constructionScheduling/production-plan/options.js b/web/src/views/constructionScheduling/production-plan/options.js
new file mode 100644
index 00000000..471fe0cc
--- /dev/null
+++ b/web/src/views/constructionScheduling/production-plan/options.js
@@ -0,0 +1,251 @@
+export const baseModelOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '计划名称:',
+ key: 'planName',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入计划名称', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入计划名称',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '项目阶段:',
+ key: 'projectStage',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入项目阶段', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入项目阶段',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '计划描述:',
+ key: 'description',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入计划描述', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'textarea',
+ placeholder: '请输入计划描述',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '计划开始时间:',
+ key: 'startTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划开始时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择计划开始时间',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '计划结束时间:',
+ key: 'endTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划结束时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择计划结束时间',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '总工期(天):',
+ key: 'duration',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入总工期(天)', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min:0,
+ placeholder: '请输入总工期(天)',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '关键节点时间:',
+ key: 'keystageTime',
+ value: "",
+ default: "",
+ rules: [
+ {
+ required: true,
+ message: "请选择关键节点时间",
+ trigger: "blur",
+ },
+ ],
+ attribute: {
+ //属性
+ placeholder: "请选择关键节点时间",
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '计划负责人:',
+ key: 'principal',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入计划负责人', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入计划负责人',
+ },
+ },
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '计划名称:',
+ key: 'planName',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入计划名称', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入计划名称',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '项目阶段:',
+ key: 'projectStage',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入项目阶段', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入项目阶段',
+ },
+ },
+
+ // {
+ // tag: 'el-input',
+ // label: '总工期天数:',
+ // key: 'duration',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请输入总工期天数', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入总工期天数',
+ // },
+ // },
+ // {
+ // tag: "el-date-picker",
+ // label: '关键节点时间:',
+ // key: 'keystageTime',
+ // value: "",
+ // default: "",
+ // rules: [
+ // {
+ // required: true,
+ // message: "请选择关键节点时间",
+ // trigger: "blur",
+ // },
+ // ],
+ // attribute: {
+ // //属性
+ // placeholder: "请选择关键节点时间",
+ // valueFormat: "YYYY-MM-DD",
+ // type: "date",
+ // },
+ // },
+ {
+ tag: "el-date-picker",
+ label: '计划开始时间:',
+ key: 'startTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划开始时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择计划开始时间',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '计划结束时间:',
+ key: 'endTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划结束时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择计划结束时间',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '计划负责人:',
+ key: 'principal',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入计划负责人', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入计划负责人',
+ },
+ },
+
+ // {
+ // tag: 'el-input',
+ // label: '计划描述:',
+ // key: 'description',
+ // value: '',
+ // default: '',
+ // rules: [
+ // { required: true, message: '请输入计划描述', trigger: 'blur' },
+ // ],
+ // attribute: {//属性
+ // type: 'text',
+ // placeholder: '请输入计划描述',
+ // },
+ // },
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/progress-tracking/api.js b/web/src/views/constructionScheduling/progress-tracking/api.js
new file mode 100644
index 00000000..4ba26c75
--- /dev/null
+++ b/web/src/views/constructionScheduling/progress-tracking/api.js
@@ -0,0 +1,66 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const iprogressList = (arg) => {
+ return axios.request({
+ url: '/iprogress/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const iprogressGetById = (arg) => {
+ return axios.request({
+ url: `/iprogress/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const iprogressAdd = (arg) => {
+ return axios.request({
+ url: '/iprogress/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const iprogressUpdate = (arg) => {
+ return axios.request({
+ url: '/iprogress/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const iprogressDelete = (arg) => {
+ return axios.request({
+ url: '/iprogress/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/progress-tracking/index.vue b/web/src/views/constructionScheduling/progress-tracking/index.vue
new file mode 100644
index 00000000..fad783aa
--- /dev/null
+++ b/web/src/views/constructionScheduling/progress-tracking/index.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/web/src/views/constructionScheduling/progress-tracking/options.js b/web/src/views/constructionScheduling/progress-tracking/options.js
new file mode 100644
index 00000000..0f5688b1
--- /dev/null
+++ b/web/src/views/constructionScheduling/progress-tracking/options.js
@@ -0,0 +1,54 @@
+export const baseModelOptions = () => {
+ return [
+ {
+ tag: 'BaseSelect',
+ label: '项目名称:',
+ key: 'planId',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择项目名称', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择项目名称',
+ options: []
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '当日完成进度:',
+ key: 'dayProgress',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入当日完成进度', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ max: 100,
+ placeholder: '请输入当日完成进度',
+ },
+ },
+
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'BaseSelect',
+ label: '项目名称:',
+ key: 'planId',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择项目名称', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择项目名称',
+ options: []
+ },
+ },
+
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/resource-management/api.js b/web/src/views/constructionScheduling/resource-management/api.js
new file mode 100644
index 00000000..b88433a2
--- /dev/null
+++ b/web/src/views/constructionScheduling/resource-management/api.js
@@ -0,0 +1,98 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const listOne = (arg) => {
+ return axios.request({
+ url: '/imanpower/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+export const listTwo = (arg) => {
+ return axios.request({
+ url: '/imaterials/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const byIdOne = (arg) => {
+ return axios.request({
+ url: `/imanpower/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+export const byIdTwo = (arg) => {
+ return axios.request({
+ url: `/imaterials/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 添加数据:
+export const addOne = (arg) => {
+ return axios.request({
+ url: '/imanpower/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+ })
+}
+export const addTwo = (arg) => {
+ return axios.request({
+ url: '/imaterials/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+ })
+}
+// 修改数据:
+export const editOne = (arg) => {
+ return axios.request({
+ url: '/imanpower/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+export const editTwo = (arg) => {
+ return axios.request({
+ url: '/imaterials/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+// 删除数据:
+export const deleteOne = (arg) => {
+ return axios.request({
+ url: '/imanpower/delete',
+ method: 'delete',
+ params: {
+ id: arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+export const deleteTwo = (arg) => {
+ return axios.request({
+ url: '/imaterials/delete',
+ method: 'delete',
+ params: {
+ id: arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
diff --git a/web/src/views/constructionScheduling/resource-management/index.vue b/web/src/views/constructionScheduling/resource-management/index.vue
new file mode 100644
index 00000000..193a2fda
--- /dev/null
+++ b/web/src/views/constructionScheduling/resource-management/index.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/web/src/views/constructionScheduling/resource-management/options.js b/web/src/views/constructionScheduling/resource-management/options.js
new file mode 100644
index 00000000..1d08555e
--- /dev/null
+++ b/web/src/views/constructionScheduling/resource-management/options.js
@@ -0,0 +1,286 @@
+export const baseModelOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '人员姓名:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入人员姓名', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入人员姓名',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '工种:',
+ key: 'workType',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入工种', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入工种',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '数量(人):',
+ key: 'quantity',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入数量', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ placeholder: '请输入数量',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '计划投入时间(天):',
+ key: 'planDevoteTime',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入计划投入时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ placeholder: '请输入计划投入时间',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '实际投入时间(天):',
+ key: 'actualDevoteTime',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入实际投入时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ placeholder: '请输入实际投入时间',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '预计离场时间:',
+ key: 'leaveTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择预计离场时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择预计离场时间',
+ },
+ },
+
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '人员姓名:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入人员姓名', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入人员姓名',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '工种:',
+ key: 'workType',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入工种', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入工种',
+ },
+ },
+
+
+ ]
+}
+
+export const baseModelOptionstwo = () => {
+ return [{
+ tag: 'el-input',
+ label: '材料名称:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入材料名称', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入材料名称',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '规格型号:',
+ key: 'specification',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入规格型号', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入规格型号',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '单位:',
+ key: 'unit',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入单位', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入单位',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '计划需求量:',
+ key: 'planNeed',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入计划需求量', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ placeholder: '请输入计划需求量',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '实际进厂量:',
+ key: 'actualIn',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入实际进厂量', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ placeholder: '请输入实际进厂量',
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '剩余量:',
+ key: 'surplus',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入剩余量', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ placeholder: '请输入剩余量',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '供应商:',
+ key: 'supplierName',
+ value: '',
+ default: '',
+ // rules: [
+ // { required: true, message: '请输入供应商', trigger: 'blur' },
+ // ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入供应商',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '采购时间:',
+ key: 'purchaseTime',
+ value: '',
+ default: '',
+ // rules: [
+ // { required: true, message: '请选择采购时间', trigger: 'blur' },
+ // ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择采购时间',
+ },
+ }, {
+ tag: "el-date-picker",
+ label: '预计使用时间:',
+ key: 'planUseTime',
+ value: '',
+ default: '',
+ // rules: [
+ // { required: true, message: '请选择预计使用时间', trigger: 'blur' },
+ // ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择预计使用时间',
+ },
+ },]
+}
+export const baseFilterOptionstwo = () => {
+ return [{
+ tag: 'el-input',
+ label: '材料名称:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入材料名称', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入材料名称',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '规格型号:',
+ key: 'specification',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入规格型号', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入规格型号',
+ },
+ },
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/resource-scheduling/api.js b/web/src/views/constructionScheduling/resource-scheduling/api.js
new file mode 100644
index 00000000..b07a7f83
--- /dev/null
+++ b/web/src/views/constructionScheduling/resource-scheduling/api.js
@@ -0,0 +1,66 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const iresourcescheduleList = (arg) => {
+ return axios.request({
+ url: '/iresourceschedule/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const iresourcescheduleGetById = (arg) => {
+ return axios.request({
+ url: `/iresourceschedule/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const iresourcescheduleAdd = (arg) => {
+ return axios.request({
+ url: '/iresourceschedule/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const iresourcescheduleUpdate = (arg) => {
+ return axios.request({
+ url: '/iresourceschedule/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const iresourcescheduleDelete = (arg) => {
+ return axios.request({
+ url: '/iresourceschedule/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/constructionScheduling/resource-scheduling/index.vue b/web/src/views/constructionScheduling/resource-scheduling/index.vue
new file mode 100644
index 00000000..d0d88b10
--- /dev/null
+++ b/web/src/views/constructionScheduling/resource-scheduling/index.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/web/src/views/constructionScheduling/resource-scheduling/options.js b/web/src/views/constructionScheduling/resource-scheduling/options.js
new file mode 100644
index 00000000..82a982ae
--- /dev/null
+++ b/web/src/views/constructionScheduling/resource-scheduling/options.js
@@ -0,0 +1,94 @@
+export const baseModelOptions = () => {
+ return [
+ {
+ tag: 'BaseSelect',
+ label: '计划名称:',
+ key: 'planId',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划名称', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择计划名称',
+ options: []
+ },
+ },
+ {
+ tag: 'el-input-number',
+ label: '当前进度:',
+ key: 'currentProgress',
+ value: 0,
+ default: 0,
+ rules: [
+ { required: true, message: '请输入当前进度', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ min: 0,
+ max: 100,
+ placeholder: '请输入当前进度',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '计划开始时间:',
+ key: 'startTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划开始时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择计划开始时间',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '计划结束时间:',
+ key: 'endTime',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划结束时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择计划结束时间',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '调度建议:',
+ key: 'advises',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'textarea',
+ placeholder: '请输入调度建议',
+ },
+ },
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'BaseSelect',
+ label: '计划名称:',
+ key: 'planId',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择计划名称', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择计划名称',
+ options: []
+ },
+ },
+
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/login.vue b/web/src/views/login.vue
index cd290f54..4dc4d9f0 100644
--- a/web/src/views/login.vue
+++ b/web/src/views/login.vue
@@ -1,28 +1,33 @@
+
- 致博后台管理系统
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
- 记住密码
-
-
+
+
+
+
登 录
登 录 中...
-
+
-
diff --git a/web/src/views/sitePersonnel/realName/options.js b/web/src/views/sitePersonnel/realName/options.js
new file mode 100644
index 00000000..195846d2
--- /dev/null
+++ b/web/src/views/sitePersonnel/realName/options.js
@@ -0,0 +1,155 @@
+export const baseModelOptions = () => {
+ function validateIDCard(idCard) {
+ // 15 位身份证号码正则
+ const regex15 = /^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/;
+ // 18 位身份证号码正则
+ const regex18 = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$/;
+
+ return regex15.test(idCard) || regex18.test(idCard);
+ }
+ const validatePass = (rule, value, callback) => {
+ if (value === '') {
+ callback(new Error('请输入身份证'))
+ } else {
+ if (!validateIDCard(value)) {
+ callback(new Error('身份证格式不正确'))
+ return
+ }
+ callback()
+ }
+ }
+ function validatePhoneNumber(phoneNumber) {
+ const regex = /^1[3-9]\d{9}$/;
+ return regex.test(phoneNumber);
+ }
+ const validatePass2 = (rule, value, callback) => {
+ if (value === '') {
+ callback()
+ } else {
+ if (!validatePhoneNumber(value)) {
+ callback(new Error('手机号格式不正确'))
+ return
+ }
+ callback()
+ }
+ }
+ return [
+ {
+ tag: 'el-input',
+ label: '姓名:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入姓名', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入姓名',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '身份证:',
+ key: 'idCard',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, validator: validatePass, trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入身份证',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '工种:',
+ key: 'workType',
+ value: '',
+ default: '',
+ // rules: [
+ // { required: true, message: '请输入工种', trigger: 'blur' },
+ // ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入工种',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '联系方式:',
+ key: 'tel',
+ value: '',
+ default: '',
+ rules: [
+ { required: false, validator: validatePass2, trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入联系方式',
+ },
+ },
+
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '姓名:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入姓名', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入姓名',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '身份证:',
+ key: 'idCard',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入身份证', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入身份证',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '工种:',
+ key: 'workType',
+ value: '',
+ default: '',
+ // rules: [
+ // { required: true, message: '请输入工种', trigger: 'blur' },
+ // ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入工种',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '联系方式:',
+ key: 'tel',
+ value: '',
+ default: '',
+
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入联系方式',
+ },
+ },
+
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/sitePersonnel/safety-education/api.js b/web/src/views/sitePersonnel/safety-education/api.js
new file mode 100644
index 00000000..eefff638
--- /dev/null
+++ b/web/src/views/sitePersonnel/safety-education/api.js
@@ -0,0 +1,66 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const isafeList = (arg) => {
+ return axios.request({
+ url: '/isafe/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const isafeGetById = (arg) => {
+ return axios.request({
+ url: `/isafe/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const isafeAdd = (arg) => {
+ return axios.request({
+ url: '/isafe/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const isafeUpdate = (arg) => {
+ return axios.request({
+ url: '/isafe/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const isafeDelete = (arg) => {
+ return axios.request({
+ url: '/isafe/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/sitePersonnel/safety-education/index.vue b/web/src/views/sitePersonnel/safety-education/index.vue
new file mode 100644
index 00000000..05601b8a
--- /dev/null
+++ b/web/src/views/sitePersonnel/safety-education/index.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
diff --git a/web/src/views/sitePersonnel/safety-education/options.js b/web/src/views/sitePersonnel/safety-education/options.js
new file mode 100644
index 00000000..50020110
--- /dev/null
+++ b/web/src/views/sitePersonnel/safety-education/options.js
@@ -0,0 +1,69 @@
+export const baseModelOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '姓名:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入姓名', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入姓名',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '安全教育时间:',
+ key: 'date',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择安全教育时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择安全教育时间',
+ },
+ },
+
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '姓名:',
+ key: 'name',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请输入姓名', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入姓名',
+ },
+ },
+ {
+ tag: "el-date-picker",
+ label: '安全教育时间:',
+ key: 'date',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择安全教育时间', trigger: 'blur' },
+ ],
+ attribute: {//属性
+ valueFormat: "YYYY-MM-DD",
+ type: "date",
+ placeholder: '请选择安全教育时间',
+ },
+ },
+
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/system/role/options.js b/web/src/views/system/role/options.js
index 9237c483..25910650 100644
--- a/web/src/views/system/role/options.js
+++ b/web/src/views/system/role/options.js
@@ -32,8 +32,8 @@ export const baseModelOptions = () => {
tag: 'el-input-number',
label: '角色顺序:',
key: 'roleSort',
- value: '',
- default: '',
+ value: 0,
+ default: 0,
attribute: {//属性
type: 'text',
placeholder: '请输入角色顺序',
diff --git a/web/src/views/system/user/profile/userAvatar.vue b/web/src/views/system/user/profile/userAvatar.vue
index 8e9982aa..a46ee9e3 100644
--- a/web/src/views/system/user/profile/userAvatar.vue
+++ b/web/src/views/system/user/profile/userAvatar.vue
@@ -1,5 +1,7 @@
-
+
+
点击上传头像
+
![]()
diff --git a/web/src/views/vehicleMachinery/car-manage/api.js b/web/src/views/vehicleMachinery/car-manage/api.js
new file mode 100644
index 00000000..844a9d08
--- /dev/null
+++ b/web/src/views/vehicleMachinery/car-manage/api.js
@@ -0,0 +1,66 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const vehicleList = (arg) => {
+ return axios.request({
+ url: '/vehicle/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const vehicleGetById = (arg) => {
+ return axios.request({
+ url: `/vehicle/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const vehicleAdd = (arg) => {
+ return axios.request({
+ url: '/vehicle/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const vehicleUpdate = (arg) => {
+ return axios.request({
+ url: '/vehicle/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const vehicleDelete = (arg) => {
+ return axios.request({
+ url: '/vehicle/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/vehicleMachinery/car-manage/index.vue b/web/src/views/vehicleMachinery/car-manage/index.vue
new file mode 100644
index 00000000..566b951d
--- /dev/null
+++ b/web/src/views/vehicleMachinery/car-manage/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.equipType == 'WIRED' ? '有线' : scope.row.equipType == 'WIRELESS' ? '无线' : '-' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.enabledFlag == '0' ? '不启用' : scope.row.enabledFlag == '1' ? '启用' : '-' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/vehicleMachinery/car-manage/options.js b/web/src/views/vehicleMachinery/car-manage/options.js
new file mode 100644
index 00000000..21bc35c2
--- /dev/null
+++ b/web/src/views/vehicleMachinery/car-manage/options.js
@@ -0,0 +1,43 @@
+export const baseModelOptions = () => {
+ return [
+
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '设备名称:',
+ key: 'deviceName',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入设备名称',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: 'IMEI:',
+ key: 'imei',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入IMEI',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '设备类型:',
+ key: 'mcType',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入设备类型',
+ },
+ },
+ ]
+}
\ No newline at end of file
diff --git a/web/src/views/vehicleMachinery/construction-achinery/api.js b/web/src/views/vehicleMachinery/construction-achinery/api.js
new file mode 100644
index 00000000..844a9d08
--- /dev/null
+++ b/web/src/views/vehicleMachinery/construction-achinery/api.js
@@ -0,0 +1,66 @@
+import axios from '@/utils/request'
+// 查询分页数据:
+export const vehicleList = (arg) => {
+ return axios.request({
+ url: '/vehicle/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+// 查询详情数据:
+export const vehicleGetById = (arg) => {
+ return axios.request({
+ url: `/vehicle/getById`,
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 添加数据:
+export const vehicleAdd = (arg) => {
+ return axios.request({
+ url: '/vehicle/add',
+ method: 'post',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 修改数据:
+export const vehicleUpdate = (arg) => {
+ return axios.request({
+ url: '/vehicle/update',
+ method: 'put',
+ data: arg,
+ dataType: 'json',
+
+ })
+}
+
+// 删除数据:
+export const vehicleDelete = (arg) => {
+ return axios.request({
+ url: '/vehicle/delete',
+ method: 'delete',
+ params: {
+ id:arg.id[0]
+ },
+ dataType: 'json',
+
+ })
+}
+// 查询分页数据:
+export const iproductionplanList = (arg) => {
+ return axios.request({
+ url: '/iproductionplan/list',
+ method: 'get',
+ params: arg,
+ dataType: 'json',
+
+ })
+}
\ No newline at end of file
diff --git a/web/src/views/vehicleMachinery/construction-achinery/index.vue b/web/src/views/vehicleMachinery/construction-achinery/index.vue
new file mode 100644
index 00000000..f98dd54b
--- /dev/null
+++ b/web/src/views/vehicleMachinery/construction-achinery/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.equipType == 'WIRED' ? '有线' : scope.row.equipType == 'WIRELESS' ? '无线' : '-' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.enabledFlag == '0' ? '不启用' : scope.row.enabledFlag == '1' ? '启用' : '-' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/vehicleMachinery/construction-achinery/options.js b/web/src/views/vehicleMachinery/construction-achinery/options.js
new file mode 100644
index 00000000..1e9a8f69
--- /dev/null
+++ b/web/src/views/vehicleMachinery/construction-achinery/options.js
@@ -0,0 +1,63 @@
+export const baseModelOptions = () => {
+ return [
+
+ ]
+}
+
+export const baseFilterOptions = () => {
+ return [
+ {
+ tag: 'el-input',
+ label: '设备名称:',
+ key: 'deviceName',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入设备名称',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: 'IMEI:',
+ key: 'imei',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入IMEI',
+ },
+ },
+ {
+ tag: 'el-input',
+ label: '设备型号:',
+ key: 'mcType',
+ value: '',
+ default: '',
+ attribute: {//属性
+ type: 'text',
+ placeholder: '请输入设备型号',
+ },
+ },
+ {
+ tag: 'BaseSelect',
+ label: '设备类型:',
+ key: 'equipType',
+ value: '',
+ default: '',
+ rules: [
+ { required: true, message: '请选择设备类型', trigger: 'blur' },
+ ],
+ attribute: { //属性
+ placeholder: '请选择设备类型',
+ options: [{
+ value: "WIRED",
+ label: "有线"
+ },{
+ value: "WIRELESS",
+ label: "无线"
+ }]
+ },
+ },
+ ]
+}
\ No newline at end of file
diff --git a/web/stats.html b/web/stats.html
index 3947d919..5e8b199c 100644
--- a/web/stats.html
+++ b/web/stats.html
@@ -8,8 +8,9 @@
Rollup Visualizer