diff --git a/config.js b/config.js index 7cc9c74..3541cc9 100644 --- a/config.js +++ b/config.js @@ -37,6 +37,12 @@ module.exports = { bmwUrl: 'http://192.168.0.14:19999/exam-bmw', // 体检-基础路径 tjBaseUrl: 'http://192.168.0.14:20000/AppPeaManager', + //实名制移动端-登录接口 + realLoginUrl:'http://192.168.0.14:9200/', + //实名制移动端-移动 + realAppUrl:'http://192.168.0.14:1913/app', + + // 应用信息 appInfo: { // 应用名称 diff --git a/package-lock.json b/package-lock.json index de0bb9a..452d3bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,43 +1,19 @@ { "name": "hello-uniapp", "version": "3.4.5", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "hello-uniapp", - "version": "3.4.5", - "license": "MIT", - "dependencies": { - "image-tools": "^1.4.0", - "luch-request": "^3.1.1" - } - }, - "node_modules/@dcloudio/types": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/@dcloudio/types/-/types-2.6.12.tgz", - "integrity": "sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==" - }, - "node_modules/image-tools": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", - "integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ==" - }, - "node_modules/luch-request": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/luch-request/-/luch-request-3.1.1.tgz", - "integrity": "sha512-p7+mlcEtgRcd0OfXC4XZbyiwSr1XgCeqNT7LlVUjnk7InYl/8d5Rk7BUqAYNA2WRafI1wRIUQWRWZRpeUwWR0w==", - "dependencies": { - "@dcloudio/types": "^2.0.16" - } - } - }, "dependencies": { "@dcloudio/types": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/@dcloudio/types/-/types-2.6.12.tgz", "integrity": "sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==" }, + "crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "image-tools": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", diff --git a/package.json b/package.json index 0bbe15b..1452229 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ }, "homepage": "https://github.com/dcloudio/hello-uniapp#readme", "dependencies": { + "crypto-js": "^4.2.0", "image-tools": "^1.4.0", "luch-request": "^3.1.1" }, diff --git a/pages.json b/pages.json index 2fd41dd..51896f3 100644 --- a/pages.json +++ b/pages.json @@ -5,7 +5,7 @@ "pages": [ // pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages // { - // "path": "pages/YNEduApp/index/index", + // "path": "pages/YNEduApp/index/index", // "style": { // "navigationStyle" : "custom" // } @@ -189,7 +189,7 @@ { "path": "pages/YNEduApp/user/myMsg", "style": { - "navigationStyle": "custom" + "navigationBarTitleText": "消息通知" } }, { @@ -199,42 +199,103 @@ } }, { - "path": "pages/HealthExaminationApp/index/index", - "style": { - "navigationStyle": "custom" - } - }, - { - "path": "pages/HealthExaminationApp/appointment/appointment", - "style": { - "navigationBarTitleText": "体检预约" - } - }, - { - "path": "pages/HealthExaminationApp/report/report", - "style": { - "navigationBarTitleText": "提交报告" - } - }, - { - "path": "pages/HealthExaminationApp/myAppointment/myAppointment", - "style": { - "navigationBarTitleText": "我的预约" - } - }, - { - "path": "pages/HealthExaminationApp/jobAppointment/jobAppointment", - "style": { - "navigationBarTitleText": "职业预约" - } - }, - { - "path" : "pages/YNEduApp/index/notices", + "path" : "pages/HealthExaminationApp/index/index", "style" : { - "navigationBarTitleText" : "公告通知" + "navigationStyle": "custom" } - } + }, + ////实名制二期-移动端 + {//首页 + "path": "pages/realName/index/index", + "style": { + "navigationStyle": "custom" + } + }, + {//工作台 + "path": "pages/realName/workbench/index", + "style": { + "navigationStyle": "custom" + } + }, + //人员录入 + {//人员录入 + "path": "pages/realName/workbench/personEnter/index", + "style": { + "navigationStyle": "custom" + } + }, + {//新增人员 + "path": "pages/realName/workbench/personEnter/addPeople", + "style": { + "navigationStyle": "custom" + } + }, + {//查询人员列表 + "path": "pages/realName/workbench/personEnter/searchPeople", + "style": { + "navigationStyle": "custom" + } + }, + {//查询人员列表 + "path": "pages/realName/workbench/personEnter/editPeople", + "style": { + "navigationStyle": "custom" + } + },{//人员库 + "path": "pages/realName/workbench/peopleLibrary/index", + "style": { + "navigationStyle": "custom" + } + }, + //合同见证 + {//合同见证-首页 + "path": "pages/realName/workbench/contractWitness/index", + "style": { + "navigationStyle": "custom" + } + }, + //工资卡见证 + {//工资卡见证-首页 + "path": "pages/realName/workbench/wageWitness/index", + "style": { + "navigationStyle": "custom" + } + }, + //电子合同 + {//电子合同-pdf + "path": "pages/realName/workbench/electronicContract/contractVideo", + "style": { + "navigationStyle": "custom" + } + }, + {//电子合同-pdf + "path": "pages/realName/workbench/electronicContract/contractPdf", + "style": { + "navigationStyle": "custom" + } + },{//电子合同-填写 + "path": "pages/realName/workbench/electronicContract/contractFill", + "style": { + "navigationStyle": "custom" + } + }, + + + + + {//考勤 + "path": "pages/realName/workAttendance/index", + "style": { + "navigationStyle": "custom" + } + }, + {//我的 + "path": "pages/realName/my/my", + "style": { + "navigationStyle": "custom" + } + } ], "globalStyle": { "fontFamily": "Helvetica, Arial, sans-serif", diff --git a/pages/gzt/index.vue b/pages/gzt/index.vue index f97353e..52e47c3 100644 --- a/pages/gzt/index.vue +++ b/pages/gzt/index.vue @@ -95,6 +95,7 @@ + + diff --git a/pages/realName/index/index.vue b/pages/realName/index/index.vue index 4106b30..50a2893 100644 --- a/pages/realName/index/index.vue +++ b/pages/realName/index/index.vue @@ -26,6 +26,7 @@ import TabbarConfig from '../util/tabbar.js' // import face from '../../../uni_modules/mcc-face/index' import { getStudentStudyWorkList } from '@/api/eduApp' import config from '@/config' +import AES from "@/utils/realNameAes.js"; export default { data() { return { @@ -51,9 +52,47 @@ export default { }, onLoad() { console.log('🚀 ~ mounted ~ mounted-index:') + this.getLogin() // this.getMsgList() }, methods: { + getLogin(){ + const realParams = { + username: AES.encrypt(uni.getStorageSync('userPhone')), + password: AES.encrypt('YNsbd@123456'), + jwtToken: uni.getStorageSync('App-Token') + } + uni.request({ + url: config.realLoginUrl + 'login', + method: 'POST', + data: JSON.stringify(realParams), + header: { + 'Content-Type': 'application/json' + }, + success: res => { + console.log('🚀 ~ gotoYy ~ res:', res) + // console.log('🚀 ~ gotoYy ~ res:', res.data.token) + if (res.data.code == 200) { + // uni.setStorageSync('tjToken', res.data.token) + uni.setStorageSync('realNameToken', res.data.data.access_token) + uni.setStorageSync('realNameUser', res.data.data.loginUser.sysUser) + + } else { + uni.showToast({ + title: res.message, + icon: 'none' + }) + } + }, + fail: err => { + console.log('🚀 ~ gotoYy ~ err:', err) + uni.showToast({ + title: err.message, + icon: 'none' + }) + } + }) + }, // 获取消息列表 async getMsgList() { uni.request({ diff --git a/pages/realName/util/chooseFile.js b/pages/realName/util/chooseFile.js new file mode 100644 index 0000000..272af53 --- /dev/null +++ b/pages/realName/util/chooseFile.js @@ -0,0 +1,94 @@ +export function chooseFile(callback, acceptType) { + + var CODE_REQUEST = 1000; + var main = plus.android.runtimeMainActivity(); + if (plus.os.name == 'Android') { + console.log("666"); + var Intent = plus.android.importClass('android.content.Intent'); + var intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + if (acceptType) { + intent.setType(acceptType); + } else { + intent.setType("*/*"); + } + main.onActivityResult = (requestCode, resultCode, data) => { + if (requestCode == CODE_REQUEST) { + const uri = data.getData(); + plus.android.importClass(uri); + const Build = plus.android.importClass('android.os.Build'); + const isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + const DocumentsContract = plus.android.importClass('android.provider.DocumentsContract'); + if (isKitKat && DocumentsContract.isDocumentUri(main, uri)) { + if ("com.android.externalstorage.documents" == uri.getAuthority()) { + console.log("6666"); + var docId = DocumentsContract.getDocumentId(uri); + var split = docId.split(":"); + var type = split[0]; + + if ("primary" == type) { + var Environment = plus.android.importClass('android.os.Environment'); + callback(Environment.getExternalStorageDirectory() + "/" + split[1]); + } else { + var System = plus.android.importClass('java.lang.System'); + var sdPath = System.getenv("SECONDARY_STORAGE"); + if (sdPath) { + callback(sdPath + "/" + split[1]); + } + } + } else if ("com.android.providers.downloads.documents" == uri.getAuthority()) { + var id = DocumentsContract.getDocumentId(uri); + var ContentUris = plus.android.importClass('android.content.ContentUris'); + var contentUri = ContentUris.withAppendedId( + // Uri.parse("content://downloads/public_downloads"), Long.valueOf(id)); + Uri.parse("content://downloads/public_downloads"), id); + callback(getDataColumn(main, contentUri, null, null)); + } else if ("com.android.providers.media.documents" == uri.getAuthority()) { + var docId = DocumentsContract.getDocumentId(uri); + var split = docId.split(":"); + console.log(split); + var type = split[0]; + console.log(type); + var MediaStore = plus.android.importClass('android.provider.MediaStore'); + if ("image" == type) { + contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; + } else if ("video" == type) { + contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; + } else if ("audio" == type) { + contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; + } else { + contentUri = MediaStore.Files.getContentUri("external"); + } + + console.log(contentUri); + var selection = "_id=?"; + var selectionArgs = new Array(); + selectionArgs[0] = split[1]; + + callback(getDataColumn(main, contentUri, selection, selectionArgs)); + } + } else if ("content" == uri.getScheme()) { + callback(getDataColumn(main, uri, null, null)); + } else if ("file" == uri.getScheme()) { + callback(uri.getPath()); + } + } + } + main.startActivityForResult(intent, CODE_REQUEST); + } +} + +function getDataColumn(main, uri, selection, selectionArgs) { + plus.android.importClass(main.getContentResolver()); + let cursor = main.getContentResolver().query(uri, ['_data'], selection, selectionArgs, + null); + plus.android.importClass(cursor); + if (cursor != null && cursor.moveToFirst()) { + var column_index = cursor.getColumnIndexOrThrow('_data'); + var result = cursor.getString(column_index) + cursor.close(); + return result; + } + return null; +} +export default chooseFile \ No newline at end of file diff --git a/pages/realName/workbench/contractWitness/index.vue b/pages/realName/workbench/contractWitness/index.vue new file mode 100644 index 0000000..a1a5925 --- /dev/null +++ b/pages/realName/workbench/contractWitness/index.vue @@ -0,0 +1,529 @@ + + + + + diff --git a/pages/realName/workbench/electronicContract/contractFill.vue b/pages/realName/workbench/electronicContract/contractFill.vue new file mode 100644 index 0000000..b1163f1 --- /dev/null +++ b/pages/realName/workbench/electronicContract/contractFill.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/pages/realName/workbench/electronicContract/contractPdf.vue b/pages/realName/workbench/electronicContract/contractPdf.vue new file mode 100644 index 0000000..a6e560d --- /dev/null +++ b/pages/realName/workbench/electronicContract/contractPdf.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/pages/realName/workbench/electronicContract/contractVideo.vue b/pages/realName/workbench/electronicContract/contractVideo.vue new file mode 100644 index 0000000..c174827 --- /dev/null +++ b/pages/realName/workbench/electronicContract/contractVideo.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/pages/realName/workbench/index.vue b/pages/realName/workbench/index.vue index 0b43857..a2ef7d0 100644 --- a/pages/realName/workbench/index.vue +++ b/pages/realName/workbench/index.vue @@ -4,10 +4,33 @@ + + + 合同见证 + 人员信息录入 + + + 人员库 + + + + 电子合同 + + + + 工资卡见证 + + + + 工资卡见证 + + + + @@ -43,10 +66,30 @@ }, methods: { goPersonEnter(){ - uni.navigateTo({ + uni.navigateTo({//人员录入 url: `/pages/realName/workbench/personEnter/index` }) - } + }, + goPeopleLibrary(){//人员库 + uni.navigateTo({ + url: `/pages/realName/workbench/peopleLibrary/index` + }) + }, + goeleContract(){//电子合同 + uni.navigateTo({ + url: `/pages/realName/workbench/electronicContract/contractVideo` + }) + }, + goContractWitness(){//合同见证 + uni.navigateTo({ + url: `/pages/realName/workbench/contractWitness/index` + }) + }, + goWageWitness(){//工资卡见证 + uni.navigateTo({ + url: `/pages/realName/workbench/wageWitness/index` + }) + }, } } @@ -55,11 +98,12 @@ .page { width: 100%; height: 100vh; - background: linear-gradient(#eaf0f7, #f8f8f8); + // box-sizing: border-box; // padding: 15vh 8vw; .view-box{ - width: 100%;height: 84vh;display: flex;flex-wrap: wrap; + width: 100%;height: auto;display: flex;flex-wrap: wrap;flex-direction: row; + margin-bottom: 100rpx; } .view-item{ width: 33%;height: 200rpx;display: flex;flex-direction:column;align-items: center;justify-content: center; diff --git a/pages/realName/workbench/peopleLibrary/index.vue b/pages/realName/workbench/peopleLibrary/index.vue new file mode 100644 index 0000000..c4c4c3b --- /dev/null +++ b/pages/realName/workbench/peopleLibrary/index.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/pages/realName/workbench/personEnter/addPeople.vue b/pages/realName/workbench/personEnter/addPeople.vue new file mode 100644 index 0000000..6ac12bc --- /dev/null +++ b/pages/realName/workbench/personEnter/addPeople.vue @@ -0,0 +1,1251 @@ + + + + + diff --git a/pages/realName/workbench/personEnter/editPeople.vue b/pages/realName/workbench/personEnter/editPeople.vue new file mode 100644 index 0000000..d6cd363 --- /dev/null +++ b/pages/realName/workbench/personEnter/editPeople.vue @@ -0,0 +1,1279 @@ + + + + + diff --git a/pages/realName/workbench/personEnter/index.vue b/pages/realName/workbench/personEnter/index.vue index 6b2e121..54581f8 100644 --- a/pages/realName/workbench/personEnter/index.vue +++ b/pages/realName/workbench/personEnter/index.vue @@ -2,7 +2,7 @@ 新增人员信息 - 修改人员信息 + 修改人员信息 人员识别查找 @@ -15,8 +15,8 @@ 临时人员 - 固定人员 - 分包管理人员 + 固定人员 + 分包管理人员 @@ -48,14 +48,32 @@ export default { closeAdd() { this.addPopup = false }, + //临时 tempPeople(){ this.addPopup = false; uni.navigateTo({ - url: `/pages/realName/workbench/personEnter/tempPeople` + url: `/pages/realName/workbench/personEnter/addPeople?workerType=0` + }) + }, + //固定 + fixedPeople(){ + this.addPopup = false; + uni.navigateTo({ + url: `/pages/realName/workbench/personEnter/addPeople?workerType=1` + }) + }, + //分包管理 + subPeople(){ + this.addPopup = false; + uni.navigateTo({ + url: `/pages/realName/workbench/personEnter/addPeople?workerType=2` + }) + }, + searchPerson(){ + uni.navigateTo({ + url: `/pages/realName/workbench/personEnter/searchPeople` }) }, - - // 返回 diff --git a/pages/realName/workbench/personEnter/searchPeople.vue b/pages/realName/workbench/personEnter/searchPeople.vue new file mode 100644 index 0000000..643b123 --- /dev/null +++ b/pages/realName/workbench/personEnter/searchPeople.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/pages/realName/workbench/personEnter/tempPeople.vue b/pages/realName/workbench/personEnter/tempPeople.vue deleted file mode 100644 index f48cc74..0000000 --- a/pages/realName/workbench/personEnter/tempPeople.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/pages/realName/workbench/wageWitness/index.vue b/pages/realName/workbench/wageWitness/index.vue new file mode 100644 index 0000000..7f15c5c --- /dev/null +++ b/pages/realName/workbench/wageWitness/index.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/static/realName/certificate.png b/static/realName/certificate.png new file mode 100644 index 0000000..70aa141 Binary files /dev/null and b/static/realName/certificate.png differ diff --git a/static/realName/contract_sign.png b/static/realName/contract_sign.png new file mode 100644 index 0000000..5466a1a Binary files /dev/null and b/static/realName/contract_sign.png differ diff --git a/static/realName/contract_witness.png b/static/realName/contract_witness.png new file mode 100644 index 0000000..79383db Binary files /dev/null and b/static/realName/contract_witness.png differ diff --git a/static/realName/day_plan.png b/static/realName/day_plan.png new file mode 100644 index 0000000..09fe447 Binary files /dev/null and b/static/realName/day_plan.png differ diff --git a/static/realName/delete-icon.png b/static/realName/delete-icon.png new file mode 100644 index 0000000..66b199d Binary files /dev/null and b/static/realName/delete-icon.png differ diff --git a/static/realName/exam.png b/static/realName/exam.png new file mode 100644 index 0000000..369538d Binary files /dev/null and b/static/realName/exam.png differ diff --git a/static/realName/safeguarding.png b/static/realName/safeguarding.png new file mode 100644 index 0000000..08183ee Binary files /dev/null and b/static/realName/safeguarding.png differ diff --git a/static/realName/tianjia-img.png b/static/realName/tianjia-img.png new file mode 100644 index 0000000..2ecc8e7 Binary files /dev/null and b/static/realName/tianjia-img.png differ diff --git a/static/realName/wage_check.png b/static/realName/wage_check.png new file mode 100644 index 0000000..3a98693 Binary files /dev/null and b/static/realName/wage_check.png differ diff --git a/static/realName/wage_witness.png b/static/realName/wage_witness.png new file mode 100644 index 0000000..02d77c3 Binary files /dev/null and b/static/realName/wage_witness.png differ diff --git a/utils/realNameAes.js b/utils/realNameAes.js new file mode 100644 index 0000000..1ae5c41 --- /dev/null +++ b/utils/realNameAes.js @@ -0,0 +1,80 @@ +import CryptoJS from 'crypto-js'; +// import { TextEncoder } from 'text-decoding' +// const TextEncoder = new TextEncoder(); +var aqEnnable = true;//是否开启安全验证 +const key = 'zhst@bonus@zhst@bonus@1234567890';//AES加密cbc 256 +// const key = '1234567812345678';//AES加密cbc +const iv = '1234567812345678'; +function getKey() { + // 真正的key + return CryptoJS.enc.Utf8.parse(key); +} + +function getIv() { + // 真正的iv + return CryptoJS.enc.Utf8.parse(iv); +} + + +export default { + encrypt(word) { + if(!aqEnnable){ + return word; + } + if(word==null){ + var ciphertext = CryptoJS.AES.encrypt(word, getKey(), { + iv: getIv(), + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }); + return ciphertext.toString(); + }else{ + var ciphertext = CryptoJS.AES.encrypt(word.toString(), getKey(), { + iv: getIv(), + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }); + return ciphertext.toString(); + } + }, + decrypt(word) { + if(!aqEnnable){ + return word; + } + if(word==null){ + return ""; + } + var bytes = CryptoJS.AES.decrypt(word.toString(), getKey(), { + iv: getIv(), + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }); + return bytes.toString(CryptoJS.enc.Utf8); + }, + DateFormat(date, fmt) { + if (date && fmt) { + let _date = new Date(date); + var o = { + 'Y+': _date.getFullYear() , //年 + 'M+': _date.getMonth() + 1, //月份 + 'd+': _date.getDate(), //日 + 'h+': _date.getHours(), //小时 + 'm+': _date.getMinutes(), //分 + 's+': _date.getSeconds(), //秒 + 'q+': Math.floor((_date.getMonth() + 3) / 3), //季度 + S: _date.getMilliseconds(), //毫秒 + }; + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (_date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + for (var k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? (o)[k] : ('00' + (o)[k]).substr(('' + (o)[k]).length)); + } + } + return fmt; + } else { + return ''; + } + } +} \ No newline at end of file