diff --git a/ah-jjzhgd-web/src/api/basic/projectCost.js b/ah-jjzhgd-web/src/api/basic/projectCost.js
new file mode 100644
index 0000000..0e60f89
--- /dev/null
+++ b/ah-jjzhgd-web/src/api/basic/projectCost.js
@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+// 查询工程成本列表
+export function getProjectCostList(data) {
+ return request({
+ url: '/background/back/area/getProCostList',
+ method: 'get',
+ params: data
+ })
+}
+
+// 新增工程成本
+export function addProjectCostItem(data) {
+ return request({
+ url: '/background/back/area/addCost',
+ method: 'post',
+ data
+ })
+}
+
+// 编辑工程成本
+export function updateProjectCostItem(data) {
+ return request({
+ url: '/background/back/area/updateCost',
+ method: 'post',
+ data
+ })
+}
+
+// 删除工程成本
+export function deleteProjectCostItem(data) {
+ return request({
+ url: '/background/back/area/deleteCost',
+ method: 'post',
+ data
+ })
+}
diff --git a/ah-jjzhgd-web/src/api/car-man/helmet.js b/ah-jjzhgd-web/src/api/car-man/helmet.js
new file mode 100644
index 0000000..7e34817
--- /dev/null
+++ b/ah-jjzhgd-web/src/api/car-man/helmet.js
@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+// 查询安全帽
+export function getHelmet(data) {
+ return request({
+ url: '/background/back/personnel/getBindDetail',
+ method: 'get',
+ params: data
+ })
+}
+
+// 修改安全帽绑定
+export function updateHelmet(data) {
+ return request({
+ url: '/background/back/personnel/bindDev',
+ method: 'post',
+ data
+ })
+}
+
+// 绑定安全帽
+export function bindHelmet(data) {
+ return request({
+ url: '/background/back/personnel/bindDev',
+ method: 'post',
+ data
+ })
+}
+
+// 解绑安全帽
+export function unbindHelmet(data) {
+ return request({
+ url: '/background/back/personnel/delBind',
+ method: 'get',
+ params: data
+ })
+}
+
+// 获取安全帽列表
+export function getHelmetList(data) {
+ return request({
+ url: '/background/back/device/getDeviceListByType',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/ah-jjzhgd-web/src/views/basic/project/components/CostTable.vue b/ah-jjzhgd-web/src/views/basic/project/components/CostTable.vue
new file mode 100644
index 0000000..5f3cb5a
--- /dev/null
+++ b/ah-jjzhgd-web/src/views/basic/project/components/CostTable.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+ 查询
+
+
+ 新增
+
+
+
+
+
+
+
+ {{ (listQuery.pageNum - 1) * 10 + scope.$index + 1 }}
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ah-jjzhgd-web/src/views/basic/project/index.vue b/ah-jjzhgd-web/src/views/basic/project/index.vue
index 8bcb291..37606eb 100644
--- a/ah-jjzhgd-web/src/views/basic/project/index.vue
+++ b/ah-jjzhgd-web/src/views/basic/project/index.vue
@@ -103,6 +103,7 @@
编辑
工序计划
+ 工程成本
杆塔管理
完工
删除
@@ -304,6 +305,8 @@
+
+
@@ -325,6 +328,7 @@ import _ from 'lodash/fp'
import { downloadFile } from '@/utils/download'
import ProjectStatusSelect from '@/views/basic/project/components/ProjectStatusSelect.vue'
import GtTable from '@/views/basic/project/components/GtTable.vue'
+import CostTable from '@/views/basic/project/components/CostTable.vue'
const defaultTmp = {
org: '',
@@ -355,7 +359,7 @@ const defaultCompleteTmp = {
}
export default {
- components: { GtTable, ProjectStatusSelect, Pagination, BuildSelect, ProcessTable },
+ components: { CostTable, GtTable, ProjectStatusSelect, Pagination, BuildSelect, ProcessTable },
directives: { waves },
data() {
return {
@@ -390,6 +394,7 @@ export default {
completeModalVisible: false,
processModalVisible: false,
gtModalVisible: false,
+ costModalVisible: false,
processType: '',
bidCode: '',
completeForm: _.cloneDeep(defaultCompleteTmp),
@@ -609,6 +614,10 @@ export default {
this.bidCode = row.bidCode
this.gtModalVisible = true
},
+ handleCost(row) {
+ this.bidCode = row.bidCode
+ this.costModalVisible = true
+ },
// 删除数据
handleDelete(row, index) {
this.$confirm(`确定要删除该数据吗?`, {
diff --git a/ah-jjzhgd-web/src/views/man-car/staff/components/HelmetSelect.vue b/ah-jjzhgd-web/src/views/man-car/staff/components/HelmetSelect.vue
new file mode 100644
index 0000000..a328235
--- /dev/null
+++ b/ah-jjzhgd-web/src/views/man-car/staff/components/HelmetSelect.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
diff --git a/ah-jjzhgd-web/src/views/man-car/staff/index.vue b/ah-jjzhgd-web/src/views/man-car/staff/index.vue
index c3f9aa3..f86508d 100644
--- a/ah-jjzhgd-web/src/views/man-car/staff/index.vue
+++ b/ah-jjzhgd-web/src/views/man-car/staff/index.vue
@@ -73,6 +73,8 @@
编辑
+ 绑定安全帽
+ 解绑安全帽
删除
@@ -86,7 +88,7 @@
@pagination="getList"
/>
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -174,6 +199,8 @@ import {
} from '@/api/car-man/staff'
import ProfessionSelect from '@/views/man-car/staff/components/ProfessionSelect.vue'
import AccessRecordTable from '@/views/man-car/staff/components/AccessRecordTable.vue'
+import HelmetSelect from '@/views/man-car/staff/components/HelmetSelect.vue'
+import { bindHelmet, getHelmet, unbindHelmet, updateHelmet } from '@/api/car-man/helmet'
const defaultTmp = {
teamId: '',
@@ -183,8 +210,13 @@ const defaultTmp = {
userType: '',
userId: ''
}
+
+const defaultTmp2 = {
+ devId: ''
+}
+
export default {
- components: { ProfessionSelect, TeamSelect, ProjectSelect, Pagination, AccessRecordTable },
+ components: { HelmetSelect, ProfessionSelect, TeamSelect, ProjectSelect, Pagination, AccessRecordTable },
data() {
return {
tableKey: 0,
@@ -203,13 +235,15 @@ export default {
bidCode: ''
},
tableHeight: 650,
- showReviewer: false,
temp: _.cloneDeep(defaultTmp),
+ temp2: _.cloneDeep(defaultTmp2),
dialogFormVisible: false,
dialogFormVisible2: false,
dialogStatus: '',
- downloadLoading: false,
+ bindVisible: false,
currentUserId: '',
+ currentDevId: '',
+ currentBindId: '',
textMap: {
update: '编辑',
create: '新增'
@@ -222,6 +256,9 @@ export default {
phone: [{ required: true, message: '不能为空', trigger: 'blur' }],
userType: [{ required: true, message: '不能为空', trigger: 'blur' }],
imageList: [{ required: true, validator: this.validateImageNum, message: '不能为空', trigger: 'change' }]
+ },
+ rules2: {
+ devId: [{ required: true, message: '请选择', trigger: 'change' }]
}
}
},
@@ -393,6 +430,12 @@ export default {
this.imageList = []
this.delFiles = []
},
+ handleClosedBindModal() {
+ this.$refs['dataForm2'].resetFields()
+ this.temp2 = _.cloneDeep(defaultTmp2)
+ this.currentDevId = ''
+ this.currentBindId = ''
+ },
handleValidateField(name, type) {
this.$refs[name].validateField(type)
},
@@ -412,6 +455,81 @@ export default {
}
this.imageList = uploadFiles
this.handleValidateField('dataForm', 'imageList')
+ },
+ handleBind(row) {
+ this.temp2.userId = row.userId
+ getHelmet({ userId: row.userId }).then(res => {
+ this.temp2.devId = res.data.devId
+ this.currentBindId = res.data.id
+ this.currentDevId = res.data.devId
+ this.bindVisible = true
+ })
+ },
+ bindHelmet() {
+ this.$refs['dataForm2'].validate((valid) => {
+ if (valid) {
+ bindHelmet({ userId: this.temp2.userId, devId: this.temp2.devId }).then((response) => {
+ this.$message({
+ showClose: true,
+ message: response.msg,
+ type: 'success',
+ duration: 2000
+ })
+ this.getList()
+ }).finally(() => {
+ this.bindVisible = false
+ })
+ }
+ })
+ },
+ updateBindHelmet() {
+ this.$refs['dataForm2'].validate((valid) => {
+ if (valid) {
+ updateHelmet({ id: this.currentBindId, devId: this.temp2.devId }).then((response) => {
+ this.$message({
+ showClose: true,
+ message: response.msg,
+ type: 'success',
+ duration: 2000
+ })
+ this.getList()
+ }).finally(() => {
+ this.bindVisible = false
+ })
+ }
+ })
+ },
+ handleUnbind(row) {
+ this.$confirm(`确定要解绑安全帽吗?`, {
+ type: 'warning',
+ title: '操作提示',
+ beforeClose: async(action, instance, done) => {
+ if (action === 'confirm') {
+ const { data } = await getHelmet({ userId: row.userId })
+ if (!data) {
+ this.$message({
+ showClose: true,
+ message: '暂未绑定安全帽',
+ type: 'success',
+ duration: 2000
+ })
+ return
+ }
+ unbindHelmet({ userId: row.userId }).then((response) => {
+ done()
+ this.$message({
+ showClose: true,
+ message: response.msg,
+ type: 'success',
+ duration: 2000
+ })
+ this.getList()
+ })
+ } else {
+ done()
+ }
+ }
+ })
}
}
}