diff --git a/src/api/construction-person/entry-and-exit-manage/entry-file.js b/src/api/construction-person/entry-and-exit-manage/entry-file.js new file mode 100644 index 0000000..36dc1d2 --- /dev/null +++ b/src/api/construction-person/entry-and-exit-manage/entry-file.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 获取人员入场附件接口 +export const getEntryFileAPI = (data) => { + return request({ + url: '/bmw/worker/getWorkerFileMsg', + method: 'GET', + params: data, + }) +} diff --git a/src/api/construction-person/todo/index.js b/src/api/construction-person/todo/index.js new file mode 100644 index 0000000..e6545ad --- /dev/null +++ b/src/api/construction-person/todo/index.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 待办事项 获取待办事项列表接口 +export const getTodoListAPI = (data) => { + return request({ + url: '/bmw/todo/list', + method: 'get', + params: data, + }) +} diff --git a/src/assets/icons/svg/message_1.svg b/src/assets/icons/svg/message_1.svg new file mode 100644 index 0000000..594aeb7 --- /dev/null +++ b/src/assets/icons/svg/message_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Message/index.vue b/src/components/Message/index.vue new file mode 100644 index 0000000..872cd87 --- /dev/null +++ b/src/components/Message/index.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/components/TableModel/index.vue b/src/components/TableModel/index.vue index 444f5a2..0d9ec5d 100644 --- a/src/components/TableModel/index.vue +++ b/src/components/TableModel/index.vue @@ -396,6 +396,21 @@ export default { } else { this.$set(this.queryParams, e.f_model, '') } + + // 根据配置生成必填校验规则(仅对设置了 required 的项生效) + if (e.required) { + const field = e.f_model + const message = + e.requiredMessage || `请选择${e.f_label || ''}`.trim() + // 针对选择类、输入类统一用 change 触发 + this.$set(this.formRules, field, [ + { + required: true, + message, + trigger: 'change', + }, + ]) + } }) if (this.sendParams !== null) { for (let key in this.sendParams) { @@ -453,7 +468,14 @@ export default { }, /** 查询按钮 */ handleQuery() { - this.getTableList() + if (this.$refs.queryFormRef) { + this.$refs.queryFormRef.validate((valid) => { + if (!valid) return + this.getTableList() + }) + } else { + this.getTableList() + } }, // 根据传递的参数进行查询 diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 9e1dfd9..53879e9 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -20,8 +20,8 @@
+ + + + diff --git a/src/views/construction-person/entry-and-exit-manage/entry-file/index.vue b/src/views/construction-person/entry-and-exit-manage/entry-file/index.vue new file mode 100644 index 0000000..8e6bce7 --- /dev/null +++ b/src/views/construction-person/entry-and-exit-manage/entry-file/index.vue @@ -0,0 +1,158 @@ + + + diff --git a/src/views/construction-person/to-do/config.js b/src/views/construction-person/to-do/config.js new file mode 100644 index 0000000..727b1f9 --- /dev/null +++ b/src/views/construction-person/to-do/config.js @@ -0,0 +1,24 @@ +export const formLabel = [ + { + f_label: '分包名称', + f_model: 'subName', + f_type: 'ipt', + f_width: '180px', + isShow: false, // 是否展示label + }, +] + +export const columnsList = [ + { t_props: 'proName', t_label: '工程' }, + { t_props: 'content', t_label: '信息内容' }, + { t_props: 'updateUser', t_label: '提交人' }, + { t_props: 'createTime', t_label: '提交时间' }, +] + +export const dialogConfig = { + outerTitle: '人员入场附件详情', + minHeight: '90vh', + maxHeight: '90vh', + outerWidth: '90%', + outerVisible: false, +} diff --git a/src/views/construction-person/to-do/index.vue b/src/views/construction-person/to-do/index.vue new file mode 100644 index 0000000..fac5646 --- /dev/null +++ b/src/views/construction-person/to-do/index.vue @@ -0,0 +1,84 @@ + + +