From e2dd163efc3a9ea9b40a707b57b12473c07a6d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Thu, 20 Mar 2025 00:53:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProProjectInfoSubdeptsGroupMapper.java | 10 + .../mapper/ProProjectInfoSubdeptsMapper.java | 10 + .../ProProjectInfoSubdeptsUsersMapper.java | 8 + .../ProProjectInfoSubdeptsGroupMapper.xml | 21 + .../manage/ProProjectInfoSubdeptsMapper.xml | 18 + .../ProProjectInfoSubdeptsUsersMapper.xml | 34 + .../ProProjectInfoSubdeptsController.java | 30 +- ...ProProjectInfoSubdeptsGroupController.java | 36 +- ...ProProjectInfoSubdeptsUsersController.java | 30 +- .../controller/wechat/WxController.java | 8 +- .../IProProjectInfoSubdeptsGroupService.java | 12 +- .../IProProjectInfoSubdeptsService.java | 12 +- .../IProProjectInfoSubdeptsUsersService.java | 12 +- ...roProjectInfoSubdeptsGroupServiceImpl.java | 33 +- .../ProProjectInfoSubdeptsServiceImpl.java | 86 +- ...roProjectInfoSubdeptsUsersServiceImpl.java | 66 +- .../service/impl/SysUserServiceImpl.java | 17 + yanzhu-ui-app/miniprogram/api/project.js | 27 + yanzhu-ui-app/miniprogram/app.json | 11 +- .../components/select-group-person/index.wxml | 2 +- yanzhu-ui-app/miniprogram/images/cz_1.png | Bin 1960 -> 0 bytes yanzhu-ui-app/miniprogram/images/cz_2.png | Bin 1317 -> 0 bytes yanzhu-ui-app/miniprogram/images/dingwei.png | Bin 4176 -> 0 bytes .../miniprogram/images/exam-icon.png | Bin 704 -> 0 bytes .../miniprogram/images/i_location.png | Bin 4541 -> 0 bytes .../miniprogram/images/i_mechanics.png | Bin 4895 -> 0 bytes .../miniprogram/images/i_personnel.png | Bin 4250 -> 0 bytes yanzhu-ui-app/miniprogram/images/icon_1.png | Bin 3365 -> 0 bytes yanzhu-ui-app/miniprogram/images/icon_2.png | Bin 2592 -> 0 bytes yanzhu-ui-app/miniprogram/images/icon_3.png | Bin 3580 -> 0 bytes yanzhu-ui-app/miniprogram/images/icon_4.png | Bin 3215 -> 0 bytes yanzhu-ui-app/miniprogram/images/icon_5.png | Bin 2647 -> 0 bytes yanzhu-ui-app/miniprogram/images/jt.png | Bin 2899 -> 0 bytes .../miniprogram/images/loading_i.gif | Bin 35941 -> 0 bytes .../miniprogram/images/middl_right.png | Bin 3159 -> 0 bytes .../miniprogram/images/middle_left.png | Bin 3123 -> 0 bytes .../miniprogram/images/todaySubmit2.png | Bin 17539 -> 0 bytes yanzhu-ui-app/miniprogram/images/user_3.png | Bin 4920 -> 0 bytes yanzhu-ui-app/miniprogram/images/wl_fg.png | Bin 1961 -> 0 bytes .../project_flowable/detailTask/index.js | 2 +- .../pages/project_flowable/editTask/index.js | 2 +- .../pages/project_flowable/finished/index.js | 2 +- .../pages/project_flowable/initTask/index.js | 2 +- .../project_flowable/initTask/index.wxml | 2 +- .../myFlowDefinition/index.js | 2 +- .../project_flowable/myProcessIns/index.js | 2 +- .../pages/project_problemmodify/add/index.js | 2 +- .../project_problemmodify/check/index.js | 2 +- .../project_problemmodify/draft/index.js | 2 +- .../pages/project_problemmodify/info/index.js | 4 +- .../pages/project_problemmodify/list/index.js | 15 +- .../project_problemmodify/list/index.wxml | 12 +- .../project_problemmodify/modify/index.js | 2 +- .../miniprogram/pages/project_qr/index.js | 57 +- .../miniprogram/pages/project_qr/index.wxml | 22 +- .../pages/project_subdepts/add/index.js | 743 ++++++++++++++++++ .../pages/project_subdepts/add/index.json | 8 + .../pages/project_subdepts/add/index.wxml | 204 +++++ .../pages/project_subdepts/add/index.wxss | 11 + .../pages/project_subdepts/info/index.js | 66 ++ .../pages/project_subdepts/info/index.json | 3 + .../pages/project_subdepts/info/index.wxml | 2 + .../pages/project_subdepts/info/index.wxss | 1 + .../pages/project_subdepts/list/index.js | 211 +++++ .../pages/project_subdepts/list/index.json | 8 + .../pages/project_subdepts/list/index.wxml | 57 ++ .../pages/project_subdepts/list/index.wxss | 1 + .../pages/project_subgroups/add/index.js | 66 ++ .../pages/project_subgroups/add/index.json | 3 + .../pages/project_subgroups/add/index.wxml | 2 + .../pages/project_subgroups/add/index.wxss | 1 + .../pages/project_subgroups/info/index.js | 66 ++ .../pages/project_subgroups/info/index.json | 3 + .../pages/project_subgroups/info/index.wxml | 2 + .../pages/project_subgroups/info/index.wxss | 1 + .../pages/project_subgroups/list/index.js | 66 ++ .../pages/project_subgroups/list/index.json | 3 + .../pages/project_subgroups/list/index.wxml | 2 + .../pages/project_subgroups/list/index.wxss | 1 + .../pages/project_subusers/add/index.js | 66 ++ .../pages/project_subusers/add/index.json | 3 + .../pages/project_subusers/add/index.wxml | 2 + .../pages/project_subusers/add/index.wxss | 1 + .../pages/project_subusers/info/index.js | 66 ++ .../pages/project_subusers/info/index.json | 3 + .../pages/project_subusers/info/index.wxml | 2 + .../pages/project_subusers/info/index.wxss | 1 + .../pages/project_subusers/list/index.js | 66 ++ .../pages/project_subusers/list/index.json | 3 + .../pages/project_subusers/list/index.wxml | 2 + .../pages/project_subusers/list/index.wxss | 1 + .../miniprogram/pages/sign_mags/index.wxml | 2 +- 92 files changed, 2231 insertions(+), 133 deletions(-) delete mode 100644 yanzhu-ui-app/miniprogram/images/cz_1.png delete mode 100644 yanzhu-ui-app/miniprogram/images/cz_2.png delete mode 100644 yanzhu-ui-app/miniprogram/images/dingwei.png delete mode 100644 yanzhu-ui-app/miniprogram/images/exam-icon.png delete mode 100644 yanzhu-ui-app/miniprogram/images/i_location.png delete mode 100644 yanzhu-ui-app/miniprogram/images/i_mechanics.png delete mode 100644 yanzhu-ui-app/miniprogram/images/i_personnel.png delete mode 100644 yanzhu-ui-app/miniprogram/images/icon_1.png delete mode 100644 yanzhu-ui-app/miniprogram/images/icon_2.png delete mode 100644 yanzhu-ui-app/miniprogram/images/icon_3.png delete mode 100644 yanzhu-ui-app/miniprogram/images/icon_4.png delete mode 100644 yanzhu-ui-app/miniprogram/images/icon_5.png delete mode 100644 yanzhu-ui-app/miniprogram/images/jt.png delete mode 100644 yanzhu-ui-app/miniprogram/images/loading_i.gif delete mode 100644 yanzhu-ui-app/miniprogram/images/middl_right.png delete mode 100644 yanzhu-ui-app/miniprogram/images/middle_left.png delete mode 100644 yanzhu-ui-app/miniprogram/images/todaySubmit2.png delete mode 100644 yanzhu-ui-app/miniprogram/images/user_3.png delete mode 100644 yanzhu-ui-app/miniprogram/images/wl_fg.png create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/info/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/info/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/info/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/info/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/list/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/list/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/list/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subdepts/list/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/add/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/add/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/add/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/add/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/info/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/info/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/info/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/info/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/list/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/list/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/list/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subgroups/list/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/add/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/add/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/add/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/add/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/info/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/info/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/info/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/info/index.wxss create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/list/index.js create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/list/index.json create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/list/index.wxml create mode 100644 yanzhu-ui-app/miniprogram/pages/project_subusers/list/index.wxss diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsGroupMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsGroupMapper.java index c20e4db3..bdbf4592 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsGroupMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsGroupMapper.java @@ -1,6 +1,8 @@ package com.yanzhu.manage.mapper; import java.util.List; +import java.util.Map; + import com.yanzhu.manage.domain.ProProjectInfoSubdeptsGroup; import org.apache.ibatis.annotations.Param; @@ -28,6 +30,14 @@ public interface ProProjectInfoSubdeptsGroupMapper */ public List selectProProjectInfoSubdeptsGroupList(ProProjectInfoSubdeptsGroup proProjectInfoSubdeptsGroup); + /** + * 统计分包单位班组信息 + * + * @param proProjectInfoSubdeptsGroup 分包单位班组 + * @return 分包单位班组集合 + */ + public List> findProProjectInfoSubdeptsGroupCount(ProProjectInfoSubdeptsGroup proProjectInfoSubdeptsGroup); + /** * 新增分包单位班组 * diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsMapper.java index 86698817..71e92a2e 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsMapper.java @@ -1,6 +1,8 @@ package com.yanzhu.manage.mapper; import java.util.List; +import java.util.Map; + import com.yanzhu.manage.domain.ProProjectInfoSubdepts; import org.apache.ibatis.annotations.Param; @@ -28,6 +30,14 @@ public interface ProProjectInfoSubdeptsMapper */ public List selectProProjectInfoSubdeptsList(ProProjectInfoSubdepts proProjectInfoSubdepts); + /** + * 统计分包单位信息 + * + * @param proProjectInfoSubdepts 分包单位 + * @return 分包单位集合 + */ + public List> findProProjectInfoSubdeptsCount(ProProjectInfoSubdepts proProjectInfoSubdepts); + /** * 新增分包单位 * diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsUsersMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsUsersMapper.java index 942087fe..3fa3c781 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsUsersMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoSubdeptsUsersMapper.java @@ -39,6 +39,14 @@ public interface ProProjectInfoSubdeptsUsersMapper */ public List selectProProjectInfoSubdeptsUsersList(ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers); + /** + * 统计分包单位工人列表 + * + * @param proProjectInfoSubdeptsUsers 分包单位工人 + * @return 分包单位工人集合 + */ + public List> findProProjectInfoSubdeptsUsersCount(ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers); + /** * 新增分包单位工人 * diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsGroupMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsGroupMapper.xml index 1405c15b..46c14564 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsGroupMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsGroupMapper.xml @@ -60,6 +60,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by psg.id desc + + + + + + @@ -533,7 +533,7 @@ 个人半身近照 - [进场扫脸,请上传清晰照片] + [进场扫脸,请上传清晰照片] @@ -595,7 +595,7 @@ 开户银行网点 - [开户银行地址] + [开户银行地址] @@ -908,7 +908,7 @@ 3、受教育本人签名 - [点击签名进行修改] + [点击签名进行修改] diff --git a/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.js b/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.js new file mode 100644 index 00000000..1cc21a22 --- /dev/null +++ b/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.js @@ -0,0 +1,743 @@ +import config from '../../../config' +import { + getToken +} from '../../../utils/auth' +import { + findDictCache, + findCardOcrFront +} from '../../../api/publics' +import { + registerSubDeptsGL +} from '../../../api/project' +const app = getApp() +Page({ + + /** + * 页面的初始数据 + */ + data: { + limit: 1, + maxDate: new Date(2088, 1, 1).getTime(), + form: { + subDeptType: "3", + subDeptName: "", + subDeptCode: "", + businessLicensePath: "", + subDeptInfos: { + legalPersonCardImgPos: "", + legalPersonCardImgInv: "", + legalPerson: "", + legalPersonCard: "" + }, + contractInfos: "", + useDates: "", + startWorkDates: "", + endWorkDates: "", + leaderCardImgPos: "", + leaderCardImgInv: "", + leaderUserPicture: "", + subDeptLeaderPowerPath: "", + subDeptLeaderName: "", + subDeptLeaderCode: "", + subDeptLeaderPhone: "", + nation: "", + nativePlace: "", + address: "", + emergencyContact: "", + contactPhone: "", + leaderDegreeGrade: "" + }, + eduCationalType: [], + subDeptTypeList: [], + active: 0, + flowNodes: [{ + text: '信息登记' + }, { + text: '视频学习' + }, { + text: '在线考试' + }, { + text: '文件签署' + }], + loadShow: false, + imgBase: config.baseImgUrl, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + if (!getToken()) { + wx.redirectTo({ + url: '../../../login/login', + }) + } + this.setData({ + "form.projectId": app.globalData.useProjectId, + "form.projectName": app.globalData.useProjectName + }); + this.getDictCache(); + }, + + /** + * 获取字典缓存数据 + */ + getDictCache() { + // 初始化单位类型 + findDictCache("sub_dept_type").then(res => { + if (res.code == 200) { + let list = []; + res.data.forEach(item => { + if (item.dictValue != "1") { + list.push({ + "id": item.dictValue, + "text": item.dictLabel + }); + } + }); + this.setData({ + subDeptTypeList: list + }); + } + }); + // 初始化学历类型 + findDictCache("educational_type").then(res => { + if (res.code == 200) { + let eduCationalType = []; + res.data.forEach(item => { + eduCationalType.push({ + "id": item.dictValue, + "text": item.dictLabel + }); + }) + this.setData({ + eduCationalType + }); + } + }) + }, + + //取消页面 + cancelSaveView() { + this.returnToPage() + }, + + /** + * 委托代理提交参建单位信息 + */ + submitSubDeptValues() { + let { + form + } = this.data; + let subDeptInfos = form.subDeptInfos; + if (!subDeptInfos) { + subDeptInfos = {}; + } + //数据效验 + if (!form.projectId) { + app.toast("数据异常,请刷新页面重试!") + return false; + } + //数据效验 + if (!form.subDeptType) { + app.toast("请选择单位类型!"); + return false; + } + if (!form.subDeptName) { + app.toast("请填写单位名称!"); + return false; + } + if (!form.subDeptCode) { + app.toast("请填写单位社会信用代码!"); + return false; + } + if (!form.useDates) { + app.toast("请选择进入场地时间!"); + return false; + } + if (form.subDeptType == "4" || form.subDeptType == "5") { + if (!form.businessLicensePath || form.businessLicensePath.length == 0) { + app.toast("请上传营业执照副本!"); + return false; + } + if (!subDeptInfos.legalPersonCardImgPos || subDeptInfos.legalPersonCardImgPos.length == 0) { + app.toast("请上传法人身份证正面照!"); + return false; + } + if (!subDeptInfos.legalPersonCardImgInv || subDeptInfos.legalPersonCardImgInv.length == 0) { + app.toast("请上传法人身份证反面照!"); + return false; + } + if (!subDeptInfos.legalPerson) { + app.toast("请填写法人姓名!"); + return false; + } + if (!subDeptInfos.legalPersonCard) { + app.toast("请填写法人身份证号!"); + return false; + } + if (!form.contractInfos) { + app.toast("请填写合同约定的承包范围!"); + return false; + } + if (!form.startWorkDates) { + app.toast("请选择计划开工时间!"); + return false; + } + if (!form.endWorkDates) { + app.toast("请选择计划完工时间!"); + return false; + } + if (!form.leaderCardImgPos || form.leaderCardImgPos.length == 0) { + app.toast("请上传委托人身份证正面照!"); + return false; + } + if (!form.leaderCardImgInv || form.leaderCardImgInv.length == 0) { + app.toast("请上传委托人身份证反面照!"); + return false; + } + if (!form.leaderUserPicture || form.leaderUserPicture.length == 0) { + app.toast("请上传委托人半身近照!"); + return false; + } + if (!form.subDeptLeaderPowerPath || form.subDeptLeaderPowerPath.length == 0) { + app.toast("请上传委托人单位委托书!"); + return false; + } + if (!form.subDeptLeaderName) { + app.toast("请填写委托人姓名!"); + return false; + } + if (!form.subDeptLeaderCode) { + app.toast("请填写委托人身份证号!"); + return false; + } else { + const cardCodePattern = /^[1-9]\d{5}(18|19|20|21|22)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|[Xx])$/; + if (!cardCodePattern.test(form.subDeptLeaderCode)) { + app.toast("身份证号码不正确!"); + return false; + } + } + if (!form.subDeptLeaderPhone) { + app.toast("请填写委托人联系电话!"); + return false; + } + if (!form.nativePlace) { + app.toast("请填写籍贯!"); + return false; + } + if (!form.nation) { + app.toast("请填写民族!"); + return false; + } + if (!form.address) { + app.toast("请填写地址!"); + return false; + } + if (!form.emergencyContact) { + app.toast("请填写紧急联系人!"); + return false; + } + if (!form.contactPhone) { + app.toast("请填写紧急联系人电话!"); + return false; + } else { + const phonePattern = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/; + if (!phonePattern.test(form.contactPhone)) { + app.toast("紧急联系人电话不正确!"); + return false; + } + } + if (!form.leaderDegreeGrade) { + app.toast("请选择委托人学历信息!"); + return false; + } + } + let that = this; + //弹出确认 + wx.showModal({ + title: '提示', + content: '是否确认保存参建单位信息?', + success: function (sm) { + if (sm.confirm) { + that.submitSubDeptForm(); + } + } + }) + }, + + /** + * 委托代理提交参建单位表单 + */ + submitSubDeptForm() { + let _form = { + ...this.data.form + }; + let subDeptInfos = { + ..._form.subDeptInfos + }; + this.setData({ + loadShow: true + }) + let uploadFiles = []; + if (_form.businessLicensePath && _form.businessLicensePath.length > 0) { + uploadFiles.push({ + type: 'businessLicensePath', + path: _form.businessLicensePath[0] + }); + } + if (subDeptInfos.legalPersonCardImgPos && subDeptInfos.legalPersonCardImgPos.length > 0) { + uploadFiles.push({ + type: 'legalPersonCardImgPos', + path: subDeptInfos.legalPersonCardImgPos[0] + }); + } + if (subDeptInfos.legalPersonCardImgInv && subDeptInfos.legalPersonCardImgInv.length > 0) { + uploadFiles.push({ + type: 'legalPersonCardImgInv', + path: subDeptInfos.legalPersonCardImgInv[0] + }); + } + if (_form.leaderCardImgPos && _form.leaderCardImgPos.length > 0) { + uploadFiles.push({ + type: 'leaderCardImgPos', + path: _form.leaderCardImgPos[0] + }); + } + if (_form.leaderCardImgInv && _form.leaderCardImgInv.length > 0) { + uploadFiles.push({ + type: 'leaderCardImgInv', + path: _form.leaderCardImgInv[0] + }); + } + if (_form.leaderUserPicture && _form.leaderUserPicture.length > 0) { + uploadFiles.push({ + type: 'leaderUserPicture', + path: _form.leaderUserPicture[0] + }); + } + if (_form.subDeptLeaderPowerPath && _form.subDeptLeaderPowerPath.length > 0) { + uploadFiles.push({ + type: 'subDeptLeaderPowerPath', + path: _form.subDeptLeaderPowerPath[0] + }); + } + let that = this; + let uploads = []; + uploadFiles.forEach(async (item) => { + let obj; + if (item.path.indexOf(this.data.imgBase) > -1) { + obj = { + data: { + data: { + url: item.path.replace(this.data.imgBase, "") + } + } + } + } else { + //这里复杂的图片上传,改为同步上传,因为小程序只能上传一张图片 + obj = await that.syncUploadImage(item.path); + } + if (item.type == "businessLicensePath") { + _form.businessLicensePath = obj.data.data.url; + } + if (item.type == "legalPersonCardImgPos") { + subDeptInfos.legalPersonCardImgPos = obj.data.data.url; + } + if (item.type == "legalPersonCardImgInv") { + subDeptInfos.legalPersonCardImgInv = obj.data.data.url; + } + if (item.type == "leaderCardImgPos") { + _form.leaderCardImgPos = obj.data.data.url; + } + if (item.type == "leaderCardImgInv") { + _form.leaderCardImgInv = obj.data.data.url; + } + if (item.type == "leaderUserPicture") { + _form.leaderUserPicture = obj.data.data.url; + } + if (item.type == "subDeptLeaderPowerPath") { + _form.subDeptLeaderPowerPath = obj.data.data.url; + } + uploads.push(obj.data.data.url); + //验证图片上传完毕 + if (uploads.length == uploadFiles.length) { + _form.subDeptInfos = JSON.stringify(subDeptInfos); + let leaderUserInfos = {}; + leaderUserInfos.nation = _form.nation; + leaderUserInfos.nativePlace = _form.nativePlace; + leaderUserInfos.address = _form.address; + leaderUserInfos.emergencyContact = _form.emergencyContact; + leaderUserInfos.contactPhone = _form.contactPhone; + leaderUserInfos.cardImgPos = _form.leaderCardImgPos; + leaderUserInfos.cardImgInv = _form.leaderCardImgInv; + _form.leaderUserInfos = JSON.stringify(leaderUserInfos); + registerSubDeptsGL(_form).then(res => { + this.setData({ + loadShow: false + }); + if (res.code == 200) { + app.toast("新增数据成功!") + setTimeout(() => { + wx.redirectTo({ + url: `../list/index`, + }) + }, 200) + } + }); + } + }); + }, + + //选择单位类型 + onSubDeptType(e) { + this.setData({ + "form.subDeptType": e.detail.id + }) + }, + + //填写单位名称 + onSubDeptName(e) { + this.setData({ + "form.subDeptName": e.detail.value + }) + }, + + //填写信用代码 + onSubDeptCode(e) { + this.setData({ + "form.subDeptCode": e.detail.value + }) + }, + + /** + * 营业执照副本 + * @param {*} options + */ + fileUpload0(options) { + let file = options.detail; + this.setData({ + "form.businessLicensePath": file + }); + }, + + /** + * 法人身份证正面 + * @param {*} options + */ + fileUpload1(options) { + let file = options.detail; + this.setData({ + "form.subDeptInfos.legalPersonCardImgPos": file + }); + file.forEach(async (item, idx) => { + let obj = await this.syncUploadImage(item); + findCardOcrFront(obj.data.data.url).then(res => { + if (res.code == 200) { + this.setData({ + "form.subDeptInfos.legalPerson": res.data.name, + "form.subDeptInfos.legalPersonCard": res.data.cardId + }) + if (!res.data.name || !res.data.cardId) { + this.setData({ + "form.subDeptInfos.legalPersonCardImgPos": [] + }); + app.toast("身份证正面照识别失败!请重新上传"); + } + } + }); + }) + }, + + /** + * 法人身份证反面 + * @param {*} options + */ + fileUpload2(options) { + let file = options.detail; + this.setData({ + "form.subDeptInfos.legalPersonCardImgInv": file + }); + }, + + /** 单位法人姓名 */ + inputInfoslegalPerson(e) { + this.setData({ + "form.subDeptInfos.legalPerson": e.detail.value + }) + }, + + /** 单位法人身份证号 */ + inputInfoslegalPersonCard(e) { + this.setData({ + "form.subDeptInfos.legalPersonCard": e.detail.value + }) + }, + + /** 进入场地时间 */ + onInputTime0(e) { + this.setData({ + "form.useDates": e.detail + }) + }, + + /** 计划开工时间 */ + onInputTime1(e) { + this.setData({ + "form.startWorkDates": e.detail + }) + }, + + /** 计划完工时间 */ + onInputTime2(e) { + this.setData({ + "form.endWorkDates": e.detail + }) + }, + + /** + * 委托人身份证反面 + * @param {*} options + */ + fileUpload3(options) { + let file = options.detail; + this.setData({ + "form.leaderCardImgPos": file + }); + file.forEach(async (item, idx) => { + let obj = await this.syncUploadImage(item); + findCardOcrFront(obj.data.data.url).then(res => { + if (res.code == 200) { + this.setData({ + "form.subDeptLeaderName": res.data.name, + "form.subDeptLeaderCode": res.data.cardId, + "form.nation": res.data.nation, + "form.nativePlace": res.data.native, + "form.address": res.data.address + }) + if (!res.data.name || !res.data.cardId) { + this.setData({ + "form.leaderCardImgPos": [] + }); + app.toast("身份证正面照识别失败!请重新上传"); + } + } + }); + }) + }, + + /** + * 委托人身份证反面 + * @param {*} options + */ + fileUpload4(options) { + let file = options.detail; + this.setData({ + "form.leaderCardImgInv": file + }); + }, + + /** + * 委托人半身照 + * @param {*} options + */ + fileUpload5(options) { + let file = options.detail; + this.setData({ + "form.leaderUserPicture": file + }); + }, + + /** + * 委托人委托书 + * @param {*} options + */ + fileUpload6(options) { + let file = options.detail; + debugger + this.setData({ + "form.subDeptLeaderPowerPath": file + }); + }, + + /** + * 输入负责人姓名 + * @param {*} e + */ + inputLeaderName(e) { + this.setData({ + "form.subDeptLeaderName": e.detail.value + }) + }, + + /** + * 输入负责人身份证号 + * @param {*} e + */ + inputLeaderCode(e) { + this.setData({ + "form.subDeptLeaderCode": e.detail.value + }) + }, + + /** + * 输入负责人联系电话 + * @param {*} e + */ + subDeptLeaderPhone(e) { + this.setData({ + "form.subDeptLeaderPhone": e.detail.value + }) + }, + + /** + * 个人籍贯 + * @param {*} e + */ + inputOriginNative(e) { + this.setData({ + "form.nativePlace": e.detail.value + }) + }, + + /** + * 个人民族 + * @param {*} e + */ + inputOriginNation(e) { + this.setData({ + "form.nation": e.detail.value + }) + }, + + /** + * 个人籍贯地址 + * @param {*} e + */ + inputOriginAddress(e) { + this.setData({ + "form.address": e.detail.value + }) + }, + + /** + * 紧急联系人 + * @param {*} e + */ + inputUrgentUser(e) { + this.setData({ + "form.emergencyContact": e.detail.value + }) + }, + + /** + * 紧急联系人电话 + * @param {*} e + */ + inputUrgentUserPhone(e) { + this.setData({ + "form.contactPhone": e.detail.value + }) + }, + + /** + * 文化程度 + * @param {*} e + */ + onLeaderDegreeGrade(e) { + this.setData({ + "form.leaderDegreeGrade": e.detail.id + }) + }, + + /** + * 这里考虑上传图片异步问题,封装为同步 + */ + syncUploadImage(file) { + let _baseUrl = config.baseUrl; + return new Promise((resolve, reject) => { + wx.uploadFile({ + url: _baseUrl + "/file/upload", // 上传的服务器接口地址 + filePath: file, + header: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + 'Authorization': 'Bearer ' + getToken() + }, + name: "file", //上传的所需字段,后端提供 + formData: {}, + success: (res) => { + // 上传完成操作 + const data = JSON.parse(res.data) + resolve({ + data: data + }) + }, + fail: (err) => { + //上传失败:修改pedding为reject + console.log("访问接口失败", err); + wx.showToast({ + title: "网络出错,上传失败", + icon: 'none', + duration: 1000 + }); + reject(err) + } + }); + }) + }, + + returnToPage: function () { + wx.redirectTo({ + url: `../list/index?type=${this.data.type}` + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.json b/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.json new file mode 100644 index 00000000..6d420795 --- /dev/null +++ b/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-steps": "@vant/weapp/steps/index", + "van-notice-bar": "@vant/weapp/notice-bar/index", + "van-overlay": "@vant/weapp/overlay/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.wxml b/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.wxml new file mode 100644 index 00000000..24515774 --- /dev/null +++ b/yanzhu-ui-app/miniprogram/pages/project_subdepts/add/index.wxml @@ -0,0 +1,204 @@ + + + + + + + + + + 新增参建单位 + + + + + + + + + {{form.projectName}} + + + 单位类型 + + + + + + 单位名称 + +