从业人员管理

dev
wangpeng 2024-03-22 15:08:55 +08:00
parent 081d0dab1d
commit 9e7b0b5420
77 changed files with 6156 additions and 464 deletions

View File

@ -68,7 +68,24 @@
return uni.redirectTo({url})
}
if(this.backUrl) {
if (this.backUrl === 'returnLogin') {
uni.showModal({
title: '操作提示',
content: '返回登录将会清空当前注册信息,确认是否继续?',
cancelColor:"#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
uni.navigateBack({
delta: 1
});
}
}
})
} else {
return uni.redirectTo({url: this.backUrl})
}
} else {
uni.navigateBack({
delta: 1

View File

@ -1,5 +1,5 @@
// export var basePath = "http://192.168.0.42:8099/";
export var basePath = "http://192.168.0.49:8093/";
export var basePath = "http://192.168.0.69:7072/";
// export var basePath = "https://gateway.qhdsafety.com/";
export const baseImgPath = "https://file.zcloudchina.com/YTHFile";
export const adminPath = "http://192.168.0.18:8085";
@ -12,7 +12,7 @@ export var corpinfoId = ''; //
export var loginUserId = '';
export var loginUser = '';
export function loginSession() {
if ('' == corpinfoId || undefined == corpinfoId || '' == loginUserId || undefined == loginUserId ||
if ('' == loginUserId || undefined == loginUserId ||
'' == loginUser || undefined == loginUser) {
uni.navigateTo({
url: '/pages/login/home',
@ -110,6 +110,76 @@ function noMultipleClicks(methods, e) {
console.log("请稍后点击")
}
}
/**
* 验证身份证号码
*/
export function validateIdCard(value) {
return /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/.test(
value
)
}
/**
* 验证手机格式
*/
export function validateMobile(value) {
return /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/.test(value)
}
//获取数据字典数据
export async function getLevel(dataParams) {
const list = await sendPost(dataParams, '/dictionaries/getDictList')
return list
}
//获取数据字典数据3级字典
export async function getLevelCustom(dataParams) {
const list = await sendPost(dataParams, '/dictionaries/getLevelCustom')
return list
}
export async function listCorpAll(dataParams) {
const list = await sendPost(dataParams, '/app/corpinfo/listAll')
return list
}
/**
* 获取字典
*/
async function sendPost(dataParams, url) {
let resData = await uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + url,
data: dataParams
})
return resData[1].data.list
}
export async function checkIdCard(dataParams) {
const data = await getData(dataParams, '/app/user/hasUserIdCard')
return data
}
/**
* 获取字典
*/
async function getData(dataParams, url) {
let resData = await uni.request({
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
url: basePath + url,
data: dataParams
})
return resData[1].data
}
//导出
export default {
noMultipleClicks, //禁止多次点击

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

View File

@ -0,0 +1,529 @@
<template>
<view class="main" @click="showModal">
<view class="input">
<input
v-model="_value"
:style="disabled ? 'color:#c0c4cc' : ''"
:placeholder="placeholder"
placeholder-style="color: rgba(102, 102, 102, 0.25);"
placeholder-class="zqs-select-placeholder-class"
disabled
/>
<image
v-if="showArrow && !_value"
src="./right_icon.png"
class="selector-icon"
></image>
</view>
<view
class="select-modal"
:class="isShowModal ? 'show' : ''"
@tap="hideModal"
>
<view
class="select-dialog"
@tap.stop=""
:style="{ backgroundColor: bgColor }"
>
<view class="title-main">
<text class="title-detail">{{ title }}</text>
</view>
<view class="search-box" v-if="showSearch">
<input
class="search-input"
confirm-type="search"
v-model="searchInput"
placeholder="输入内容进行模糊查询"
placeholder-style="color:rgba(102, 102, 102, 0.25);"
/>
<text v-if="showSearchBtn" class="search-text" @click="handleSearch">
搜索
</text>
</view>
<view class="select-content">
<view
class="select-item"
v-for="(item, index) in list"
:key="index"
:style="
valueIndexOf(item)
? 'color:' +
selectColor +
';background-color:' +
selectBgColor +
';'
: 'color:' + color + ';'
"
@click="select(item)"
>
<view class="title">{{ getLabelKeyValue(item) }}</view>
<text class="selectIcon icongou" v-if="valueIndexOf(item)"></text>
</view>
</view>
<view class="select-bar bg-white">
<button
plain="true"
class="mini-btn action"
type="default"
size="default"
@tap="empty"
>
{{ emptyText }}
</button>
<button
class="mini-btn action"
type="primary"
size="default"
@tap="confirmClick"
>
{{ confirmText }}
</button>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'zqsSelect',
data() {
return {
isShowModal: false,
searchInput: '',
options: [],
}
},
props: {
showSearch: {
//
type: Boolean,
default: true,
},
value: {
type: [Number, String, Array, Object],
default: null,
},
placeholder: {
//
default: '',
type: String,
},
multiple: {
//
default: false,
type: Boolean,
},
list: {
default: () => [],
type: Array,
},
valueKey: {
// listvalueKey
default: 'value',
type: String,
},
labelKey: {
// listlabelKey
default: 'label',
type: String,
},
disabled: {
default: false,
type: Boolean,
},
clearable: {
default: false,
type: Boolean,
},
emptyText: {
default: '重置',
type: String,
},
title: {
default: '选择内容',
type: String,
},
confirmText: {
default: '确定',
type: String,
},
color: {
default: '#000000',
type: String,
},
selectColor: {
default: '#0081ff',
type: String,
},
bgColor: {
default: '#ffffff',
type: String,
},
selectBgColor: {
default: '#FFFFFF',
type: String,
},
valueType: {
default: 'single',
type: String, // single || all
},
showSearchBtn: {
default: true,
type: Boolean, // single || all
},
showArrow: {
type: Boolean,
default: true,
},
},
emits: ['openDeepScroll', 'closeDeepScroll'],
computed: {
_value: {
get() {
return this.get_value(this.value)
},
set(val) {
this.$emit('input', val)
},
},
},
created() {},
methods: {
handleSearch() {
this.$emit('search', this.searchInput)
},
get_value(val) {
// ,
if (val || val === 0) {
if (Array.isArray(val)) {
let chooseAttr = []
val.forEach((item) => {
let choose = this.list.find((temp) => {
let val_val = this.getValueKeyValue(temp)
return item === val_val
})
//
if (choose) {
chooseAttr.push(choose)
}
})
let values = ''
if (chooseAttr.length > 0) {
values = chooseAttr
.map((temp) => this.getLabelKeyValue(temp))
.join(',')
}
return values
} else {
let choose = this.list.find((temp) => {
let val_val = this.getValueKeyValue(temp)
return val === val_val
})
if (choose) {
return this.getLabelKeyValue(choose)
} else {
return val
}
}
} else {
return ''
}
},
select(item) {
//
let val = this.getValueKeyValue(item)
if (this.multiple) {
let _value = this.value
let index = _value ? _value.indexOf(val) : -1
if (index != -1) {
_value.splice(index, 1)
this.options.splice(index, 1)
this.$emit('input', _value)
} else {
_value.push(val)
this.options.push(item)
this.$emit('input', _value)
}
this.$emit('change', item)
} else {
let label = this.getLabelKeyValue(item)
if (this._value) {
if (label.indexOf(this._value) !== -1) {
this.$emit('input', '')
} else {
this.$emit('input', val)
}
} else {
this.$emit('input', val)
}
//
this.$emit('change', item)
this.hideModal()
}
},
valueIndexOf(item) {
let val = this.getValueKeyValue(item)
if (Array.isArray(this.value)) {
return this.value.indexOf(val) != -1
} else {
return this.value === val
}
},
getLabelKeyValue(item) {
// label
return item[this.labelKey]
},
getValueKeyValue(item) {
// value
return item[this.valueKey]
},
empty() {
//
if (this.multiple) {
this.$emit('change', [])
this.$emit('input', [])
} else {
this.$emit('change', '')
this.$emit('input', '')
}
},
// cancelClick() {
// //
// this.$emit('cancel', this._value)
// this.hideModal()
// },
confirmClick() {
//
if (this.valueType === 'all') {
this.$emit('confirm', this.options)
} else {
this.$emit('confirm', this._value)
}
this.hideModal()
},
showModal() {
// model
if (!this.disabled) {
this.isShowModal = true
// 穿
this.$emit('openDeepScroll')
}
},
hideModal() {
// model
this.isShowModal = false
// 穿
this.$emit('closeDeepScroll')
},
},
watch: {
searchInput(val) {
if (!this.$props.showSearchBtn) this.$emit('search', val)
},
},
}
</script>
<style>
@font-face {
font-family: 'selectIcon';
src: url('//at.alicdn.com/t/font_1833441_ycfzdhg2u3.eot?t=1590375117208');
/* IE9 */
src: url('//at.alicdn.com/t/font_1833441_ycfzdhg2u3.eot?t=1590375117208#iefix')
format('embedded-opentype'),
/* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMEAAsAAAAABvQAAAK4AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgqBRIFCATYCJAMMCwgABCAFhQUHNRsfBsg+QCa3uoO0oAJTMwhxVu965keqWBy1hkbwtfzWb2Z279/shRhJisKF6FApKLI7oyBbpAaHo3w24k+ca9EUJbDmjaeznUdZ/FOUlkWdJ33rizZY/Pw6J5Xw0qKYxHTMesePHVT6EFpaC4zV70sKi2bYgNPc1w0WHnDVC/e/UnNTgyP+4Jq6BBpIHoisgypLaIAFEtU0wgeaIG8Yu4nAIZwnUK1QgFfOT6nUUoBpgXjj2lqplTMpiuXtCW3N2iK+aPTS2/Qdnzny8d+5IEiaDMy99exklra//FrKnX48pChmgrq5QcYRQCEe17ruqgqLAKv8WntwqwhpLms/nB5yW/iHRxJEC0QOgT3NnfgF01NBKvOuIzNoZdh5gJuAeGrsozE8vOJ7u5D832oz55039W5G+S52K0H+zNf1TJz07k26kqoQybRfwVFV4rjDS/K8EXUyuF1cXnT3weKS9Rvdm/xe7h8oA1hLwOR18R+Y4n4zwpr4z5SU089Vc+cpfWL+mn5APmT3Z39jeOs/GbWjK+DnmsuL/u6ehMX4j4yedSVkAUUuPh3TY022MtKZUEOtPqCb8Bkvnr5XT6imU0gGrEJW7aAL/gw0OhegVV2F6pC7uTOppirKIA4MFQhTrpCM+AbZlDu64L/QmAkQWlMhQXU75D07O9Gtl0PUYjTBLyAzOLNQYtypIEEjvsXtBLQTooV2nrQrGEau2gKmZlR4L8gwnGtBJbUn1diCOOQUnEkTkRAOeci9KHOQxvFro+tx3ZcGAaeljstCSBNDJuArgIyBYyy6OdZxAhHIELu1IC9AtgShCVtLltEKrSff1XoHJo3RC33hM63o3j6pSNkmqmIWEAtxFHB2OwoRBAfyeqE3r2ogHeF42dBhs7gvf7CukH5MmlUGOCpHihxFfs6TehDyKCqVAA==')
format('woff2'),
url('//at.alicdn.com/t/font_1833441_ycfzdhg2u3.woff?t=1590375117208')
format('woff'),
url('//at.alicdn.com/t/font_1833441_ycfzdhg2u3.ttf?t=1590375117208')
format('truetype'),
/* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('//at.alicdn.com/t/font_1833441_ycfzdhg2u3.svg?t=1590375117208#selectIcon')
format('svg');
/* iOS 4.1- */
}
.title-main {
display: flex;
justify-content: center;
width: 100%;
}
.title-detail {
display: flex;
width: 88%;
justify-content: center;
padding: 30rpx 0;
/* border-bottom: 1rpx solid #e6e1e1; */
}
.selectIcon {
font-family: 'selectIcon' !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icongou:before {
content: '\e61c';
}
.iconcross:before {
content: '\e61a';
}
</style>
<style lang="scss" scoped>
.main {
font-size: 28rpx;
}
.bg-white {
background-color: #ffffff;
}
.input {
display: flex;
align-items: center;
// font-size: 28rpx;
// height: 60rpx;
// padding: 10rpx 20rpx;
// border-radius: 10rpx;
// border-style: solid;
// border-width: 1rpx;
// border-color: rgba(0, 0, 0, 0.1);
input {
flex: 1;
text-align: right;
color: #333333;
}
.selector-icon {
width: 32rpx;
height: 36rpx;
vertical-align: middle;
}
}
.select-modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 9999;
opacity: 0;
outline: 0;
text-align: center;
-ms-transform: scale(1.185);
transform: scale(1.185);
backface-visibility: hidden;
perspective: 2000rpx;
background: rgba(0, 0, 0, 0.6);
transition: all 0.3s ease-in-out 0s;
pointer-events: none;
margin-bottom: -1000rpx;
&::before {
content: '\200B';
display: inline-block;
height: 100%;
vertical-align: bottom;
}
.select-dialog {
position: absolute;
left: 0;
bottom: 0;
display: inline-block;
margin-left: auto;
margin-right: auto;
background-color: #f8f8f8;
overflow: hidden;
width: 100%;
border-radius: 0;
.select-content {
// background-color: #F1F1F1;
height: 60vh;
overflow: auto;
.select-item {
text-align: left;
padding: 20rpx 80rpx;
display: flex;
::after {
content: '';
width: 100%;
height: 1px;
display: block;
margin: 0 auto;
border-bottom: 2px solid #f5f2f2;
padding: 1px;
}
.title {
flex: 1;
}
}
}
}
}
.select-modal.show {
opacity: 1;
transition-duration: 0.3s;
-ms-transform: scale(1);
transform: scale(1);
overflow-x: hidden;
overflow-y: auto;
pointer-events: auto;
margin-bottom: 0;
}
.select-bar {
padding: 0 80rpx;
display: flex;
position: relative;
align-items: center;
min-height: 80rpx;
justify-content: space-between;
margin-bottom: 50rpx;
.action {
display: flex;
align-items: center;
height: 78rpx;
justify-content: center;
max-width: 100%;
padding: 0 100rpx;
}
}
.search-box {
display: flex;
margin: 10rpx 0;
align-items: center;
padding: 10rpx 40rpx;
}
.search-input {
display: flex;
flex: 1;
// width: 560rpx;
height: 67rpx;
line-height: 67rpx;
border-radius: 40rpx;
background: #f5f2f2;
}
.search-text {
padding-left: 30rpx;
}
</style>

121
package-lock.json generated
View File

@ -1,117 +1,162 @@
{
"name": "integrated_traffic_uniapp",
"lockfileVersion": 3,
"requires": true,
"lockfileVersion": 1,
"packages": {
"": {
"dependencies": {
"@babel/parser": {
"version": "7.24.0",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.0.tgz",
"integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
"dev": true
"@dcloudio/uni-ui": "^1.5.0",
"moment": "^2.29.4",
"vue-aliplayer": "^1.0.0"
},
"@dcloudio/uni-ui": {
"version": "1.5.2",
"resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.2.tgz",
"integrity": "sha512-/MO31TELyHcKt3nS5bo1t8lQmLSnP9EKlHcShjqM27gL0QeYtoc9UekOITRbA9zi8rnlII3Aw91DHtny3IodFg=="
"devDependencies": {
"@types/html5plus": "^1.0.2",
"@types/uni-app": "^1.4.4"
}
},
"@types/html5plus": {
"node_modules/@babel/parser": {
"version": "7.23.6",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz",
"integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@dcloudio/uni-ui": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.0.tgz",
"integrity": "sha512-E7D37VbRZeh1E2yzrIie8psBckIrErdkUbUA751rlG8zdioGovW3zOuUsKgY+Gh7csMvi6XMEoSacvboe8o4Gw=="
},
"node_modules/@types/html5plus": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/@types/html5plus/-/html5plus-1.0.5.tgz",
"integrity": "sha512-qt5z+3WYkARL/rWnJRcB2fCDOZLKa/hEOkse9sjA6FFkXZtKb+OPxKqo8bDgix4+ufahOff0adarVfaUaK1mfw==",
"dev": true
},
"@types/uni-app": {
"node_modules/@types/uni-app": {
"version": "1.4.8",
"resolved": "https://registry.npmmirror.com/@types/uni-app/-/uni-app-1.4.8.tgz",
"integrity": "sha512-plxwi9MvGDrekCsDKuNlCN3ZXIv9zkqHsKZJOsc8FQqLSHveDBOm11qOaswe4QyNWVHpvwZMViii/Ni1/d40LA==",
"dev": true,
"requires": {
"dependencies": {
"vue": "^2.6.8"
}
},
"@vue/compiler-sfc": {
"node_modules/@vue/compiler-sfc": {
"version": "2.7.16",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
"integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
"dev": true,
"requires": {
"dependencies": {
"@babel/parser": "^7.23.5",
"postcss": "^8.4.14",
"prettier": "^1.18.2 || ^2.0.0",
"source-map": "^0.6.1"
},
"optionalDependencies": {
"prettier": "^1.18.2 || ^2.0.0"
}
},
"csstype": {
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true
},
"moment": {
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"engines": {
"node": "*"
}
},
"nanoid": {
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true
"dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"picocolors": {
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"postcss": {
"version": "8.4.35",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz",
"integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
"node_modules/postcss": {
"version": "8.4.33",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.33.tgz",
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
"dev": true,
"requires": {
"dependencies": {
"nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"prettier": {
"node_modules/prettier": {
"version": "2.8.8",
"resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true,
"optional": true
"optional": true,
"bin": {
"prettier": "bin-prettier.js"
},
"source-map": {
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"source-map-js": {
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"vue": {
"node_modules/vue": {
"version": "2.7.16",
"resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
"integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
"deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
"dev": true,
"requires": {
"dependencies": {
"@vue/compiler-sfc": "2.7.16",
"csstype": "^3.1.0"
}
},
"vue-aliplayer": {
"node_modules/vue-aliplayer": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/vue-aliplayer/-/vue-aliplayer-1.0.0.tgz",
"integrity": "sha512-z29s38hlNJDckGSPtuTsYwMdjj70SsvJ5VzbEoBoV2BTrg3ucvodM2CW7BWstrG9WaQqz4F8nVGLSON05RrmJw==",
"requires": {
"dependencies": {
"vue-github-badge": "^1.0.0"
}
},
"vue-github-badge": {
"node_modules/vue-github-badge": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/vue-github-badge/-/vue-github-badge-1.0.1.tgz",
"integrity": "sha512-8X+FUWapnnDfs6cRUg3mCfHUf2r5arUfCSRdvbIn860oj9us3Rz3VOtioUgmfzh6EhaaYTs0Oh78EzJ+Z6uqAA=="

View File

@ -27,10 +27,66 @@
"path": "pages/login/forget/forget-reset",
"style": {}
},
{
"path": "pages/login/register/index",
"style": {}
},
{
"path": "pages/login/register/account",
"style": {}
},
{
"path": "pages/login/register/baseInfo",
"style": {}
},
{
"path": "pages/login/register/certificate",
"style": {}
},
{
"path": "pages/login/register/apply",
"style": {}
},
{
"path": "pages/basics/basic-info/basic-info",
"style": {}
},
{
"path": "pages/basics/basic-info/home",
"style": {}
},
{
"path": "pages/basics/basic-info/user-info",
"style": {}
},
{
"path": "pages/basics/basic-info/components/account",
"style": {}
},
{
"path": "pages/basics/basic-info/components/baseInfo",
"style": {}
},
{
"path": "pages/basics/basic-info/components/certificate",
"style": {}
},
{
"path": "pages/basics/basic-info/components/apply",
"style": {}
},
{
"path": "pages/basics/basic-info/resignation",
"style": {}
},
{
"path": "pages/basics/basic-info/entry",
"style": {}
},
{
"path": "pages/basics/basic-info/confirm",
"style": {}
},
{
"path": "pages/basics/home",
"style": {

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -117,7 +117,7 @@
delImgs(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -233,7 +233,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -102,7 +102,7 @@
delImgs(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -127,7 +127,7 @@
delImgs(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -115,7 +115,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -161,7 +161,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -127,7 +127,7 @@
delImgs(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -129,7 +129,7 @@ export default {
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -562,7 +562,7 @@
return;
}
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '请确定是否正确填写气体检测单,点击确认后将归档?',
cancelColor:"#000000",
cancelText: '取消',
@ -765,7 +765,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -652,7 +652,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -152,7 +152,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -647,7 +647,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -601,7 +601,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -601,7 +601,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -556,7 +556,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -565,7 +565,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -551,7 +551,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -543,7 +543,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -648,7 +648,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -684,7 +684,7 @@
},
DelImg_fa(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -721,7 +721,7 @@
},
DelImg_plan(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -653,7 +653,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -689,7 +689,7 @@
},
DelImg_fa(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -726,7 +726,7 @@
},
DelImg_plan(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -645,7 +645,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -681,7 +681,7 @@
},
DelImg_fa(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -718,7 +718,7 @@
},
DelImg_plan(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -404,7 +404,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -404,7 +404,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -405,7 +405,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -625,7 +625,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -559,7 +559,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -556,7 +556,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -524,7 +524,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -152,7 +152,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -647,7 +647,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -639,7 +639,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -601,7 +601,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -165,7 +165,7 @@
delImg(e) {
var _this = this;
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -758,7 +758,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -811,7 +811,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -263,7 +263,7 @@
},
delImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -618,7 +618,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -478,7 +478,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',
@ -514,7 +514,7 @@
},
DelImg_fa(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -201,7 +201,7 @@
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '秦安双控',
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -113,7 +113,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -0,0 +1,218 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">姓名</view>
<input v-model="formData.NAME" :disabled="forbidEdit" placeholder="请输入姓名" maxlength="50" name="input" :style="'color:' + colorValue + ';'" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" :disabled="forbidEdit" placeholder="请输入手机证号" maxlength="11" name="input" :style="'color:' + colorValue + ';'" />
</view>
<view v-if="forbidEdit && formData.CORPINFO_ID" class="cu-form-group margin-top-xs">
<view class="title">服务单位</view>
<input v-model="formData.CORP_NAME" :disabled="forbidEdit" placeholder="请输入服务单位" name="input" :style="'color:' + colorValue + ';'" />
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmAccount,'1')"></button>
<button v-if="forbidEdit && applyStatus !== '0'" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goEdit)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {
validateIdCard,validateMobile
} from '../../../../common/tool.js';
export default {
name: "register_account",
props: {
applyStatus: {
type: String,
default: ''
},
forbidEdit: {
type: Boolean,
default: true
},
colorValue: {
type: String,
default: "#cccccc"
},
formData: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
noClick: true,
}
},
mounted() {
},
methods: {
//
confirmAccount(e) {
if (this.validateData()) {
const org_birthday = this.formData.USER_ID_CARD.substring(6, 14);
const org_gender = this.formData.USER_ID_CARD.substring(16, 17);
const birthday =
org_birthday.substring(0, 4) +
"-" +
org_birthday.substring(4, 6) +
"-" +
org_birthday.substring(6, 8);
const birthdays = new Date(birthday.replace(/-/g, "/"));
const Month = birthdays.getMonth() + 1;
let MonthDate;
const DayDate = birthdays.getDate();
let Day;
if (Month < 10) MonthDate = "0" + Month;
else MonthDate = Month;
if (DayDate < 10) Day = "0" + DayDate;
else Day = DayDate;
this.formData.SEX = org_gender % 2 === 1 ? "1" : "0";
this.formData.DATE_OF_BIRTH = birthdays.getFullYear() + "-" + MonthDate + "-" + Day;
this.formData.DRIVER_LICENSE_NO = this.formData.USER_ID_CARD
this.formData.QUALIFICATION_CERTIFICATE_NO = this.formData.USER_ID_CARD
// uni.navigateTo({
// url: '/pages/login/register/baseInfo?'
// +'NAME='+encodeURIComponent(JSON.stringify(this.formData.NAME.replace('%','%25')))
// +'&USER_ID_CARD='+ encodeURIComponent(JSON.stringify(this.formData.USER_ID_CARD))
// +'&PHONE='+ encodeURIComponent(JSON.stringify(this.formData.PHONE))
// +'&DATE_OF_BIRTH='+ encodeURIComponent(JSON.stringify(this.formData.DATE_OF_BIRTH))
// +'&SEX='+ encodeURIComponent(JSON.stringify(this.formData.SEX))
// });
this.$emit("confirm", '');
}
},
goEdit(){
this.$emit("goEdit", false);
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (!this.formData.NAME) {
uni.showToast({
icon: 'none',
title: '请输入人员姓名',
duration: 2000
});
return false;
}
//
if (!this.formData.USER_ID_CARD) {
uni.showToast({
icon: 'none',
title: '请输入身份证号',
duration: 2000
});
return false;
}
else if (!validateIdCard(this.formData.USER_ID_CARD)) {
uni.showToast({
icon: 'none',
title: '请输入有效的身份证号',
duration: 2000
});
return false;
}
//
if (!this.formData.PHONE) {
uni.showToast({
icon: 'none',
title: '请输入手机号码',
duration: 2000
});
return false;
}
else if (!validateMobile(this.formData.PHONE)) {
uni.showToast({
icon: 'none',
title: '请输入有效的手机号码',
duration: 2000
});
return false;
}
return true;
}
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,227 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册-基础信息</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">姓名</view>
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">人员类型</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.PERSONNEL_TYPE_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'PERSONNEL_TYPE')" disabled :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
<view class="picker" style="color: #cccccc">
{{formData.PERSONNEL_TYPE_NAME?formData.PERSONNEL_TYPE_NAME:'请选择'}}
</view>
</picker>
</view>
<!-- 入职申请 -->
<uni-section title="入职申请" type="line" class="margin-top" padding>
<view class="cu-form-group margin-top-xs">
<view class="title">入职企业</view>
<zqs-select
:multiple="false"
:list="dictData.APPLY_CORP.list"
:show-search="true"
:disabled="forbidEdit"
v-model="formData.APPLY_CORP"
label-key="CORP_NAME"
value-key="CORPINFO_ID"
placeholder="请选择入职企业"
title="选择入职企业"
clearable
@search="searchSelect($event, 'APPLY_CORP')"
@change="changeSelect($event, 'APPLY_CORP')"
></zqs-select>
</view>
</uni-section>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button v-if="!forbidEdit" :loading="buttonloading" :disabled="buttonloading" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(confirmApply)"> </button>
<button v-if="forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goEdit)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {
getLevel, listCorpAll
} from '../../../../common/tool.js';
import UniSection from "../../../../components/uni-section/components/uni-section/uni-section";
import ZqsSelect from '../../../../components/zqs-select/zqs-select.vue'
export default {
name: "register_certificate",
components: {
UniSection, ZqsSelect
},
props: {
forbidEdit: {
type: Boolean,
default: true
},
colorValue: {
type: String,
default: "#cccccc"
},
formData: {
type: Object,
default: function() {
return {}
}
},
buttonloading: {
type: Boolean,
default: function() {
return false
}
},
},
data() {
return {
noClick: true,
dictData:{
//
PERSONNEL_TYPE:{
index: -1,
list:[],
},
//
APPLY_CORP: {
index: -1,
list:[],
},
}
}
},
mounted() {
this.getDictList()
},
methods: {
async getDictList(){
//
this.dictData.PERSONNEL_TYPE.list = await getLevel({DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e', BIANMA: 'TRAFFIC_EMPLOYMENT_DRIVE'});
//
this.dictData.APPLY_CORP.list = await listCorpAll({ISDELETE: '0'});
this.dictData.APPLY_CORP.tempList = JSON.parse(JSON.stringify(this.dictData.APPLY_CORP.list));
},
//
confirmApply() {
if (this.validateData()) {
this.$emit("confirm", '');
}
},
searchSelect(e, name) {
console.log('查询事件参数', e)
this.dictData.APPLY_CORP.list = JSON.parse(JSON.stringify(this.dictData.APPLY_CORP.tempList));
if (e) {
this.dictData.APPLY_CORP.list = this.dictData[name].list.filter(item => item.CORP_NAME.indexOf(e) > -1);
}
},
changeSelect(e, name) {
this.$forceUpdate();//
},
pickerChangeData(e,name) {
//
if (name === 'PERSONNEL_TYPE') {
this.dictData.PERSONNEL_TYPE.index = e.detail.value;
this.formData.PERSONNEL_TYPE = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].DICTIONARIES_ID
this.formData.PERSONNEL_TYPE_NAME = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].NAME
}
this.$forceUpdate();//
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
if (!this.formData.APPLY_CORP) {
uni.showToast({
icon: 'none',
title: '请选择入职企业',
duration: 2000
});
return false;
}
return true;
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,248 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册-基础信息</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">姓名</view>
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">人员类型</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.PERSONNEL_TYPE_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'PERSONNEL_TYPE')" :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
<view class="picker">
{{formData.PERSONNEL_TYPE_NAME?formData.PERSONNEL_TYPE_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top">
<view class="title">文化程度</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.DEGREE_OF_EDUCATION_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'DEGREE_OF_EDUCATION')" :value="dictData.DEGREE_OF_EDUCATION.index" :range="dictData.DEGREE_OF_EDUCATION.list" range-key="NAME">
<view class="picker">
{{formData.DEGREE_OF_EDUCATION_NAME?formData.DEGREE_OF_EDUCATION_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">政治面貌</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.POLITICAL_OUTLOOK_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'POLITICAL_OUTLOOK')" :value="dictData.POLITICAL_OUTLOOK.index" :range="dictData.POLITICAL_OUTLOOK.list" range-key="NAME">
<view class="picker">
{{formData.POLITICAL_OUTLOOK_NAME?formData.POLITICAL_OUTLOOK_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">参加工作日期</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.WORKING_DATE}}</view>
<picker v-else mode="date" @change="changeDate($event,'WORKING_DATE')" :value="formData.WORKING_DATE" :end="limitData.WORKING_DATE.end">
<view class="picker">
{{formData.WORKING_DATE?formData.WORKING_DATE:'请选择'}}
</view>
</picker>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmBaseInfo)"></button>
<button v-if="forbidEdit && applyStatus !== '0'" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goEdit)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {
formatDate,validateIdCard,validateMobile,getLevel
} from '../../../../common/tool.js';
export default {
name: "register_baseInfo",
props: {
applyStatus: {
type: String,
default: ''
},
forbidEdit: {
type: Boolean,
default: true
},
colorValue: {
type: String,
default: "#cccccc"
},
formData: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
permissionID:'',
noClick: true,
//
limitData: {
//
WORKING_DATE:{ start: '', end: '' },
},
dictData:{
//
PERSONNEL_TYPE:{
index: -1,
list:[],
},
//
POLITICAL_OUTLOOK:{
index: -1,
list:[],
},
//
DEGREE_OF_EDUCATION:{
index: -1,
list:[],
}
}
}
},
mounted() {
this.getDictList()
this.limitData.WORKING_DATE.end = formatDate(new Date(), 'yyyy-MM-dd'); //
},
methods: {
async getDictList(){
//
this.dictData.PERSONNEL_TYPE.list = await getLevel({DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e', BIANMA: 'TRAFFIC_EMPLOYMENT_DRIVE'});
//
this.dictData.POLITICAL_OUTLOOK.list = await getLevel({DICTIONARIES_ID: '6351efdd12dc4730952e5d195718e252'});
//
this.dictData.DEGREE_OF_EDUCATION.list = await getLevel({DICTIONARIES_ID: 'd7d80f08d73a4accbccf4fd3d8d1d867'});
},
//
confirmBaseInfo() {
if (this.validateData()) {
this.$emit("confirm", '');
}
},
goEdit(){
this.$emit("goEdit", false);
},
changeDate(e,name) {
this.formData[name] = e.detail.value
this.$forceUpdate();//
},
pickerChangeData(e,name) {
//
if (name === 'PERSONNEL_TYPE') {
this.dictData.PERSONNEL_TYPE.index = e.detail.value;
this.formData.PERSONNEL_TYPE = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].DICTIONARIES_ID
this.formData.PERSONNEL_TYPE_NAME = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].NAME
}
//
if (name === 'POLITICAL_OUTLOOK') {
this.dictData.POLITICAL_OUTLOOK.index = e.detail.value;
this.formData.POLITICAL_OUTLOOK = this.dictData.POLITICAL_OUTLOOK.list[this.dictData.POLITICAL_OUTLOOK.index].DICTIONARIES_ID
this.formData.POLITICAL_OUTLOOK_NAME = this.dictData.POLITICAL_OUTLOOK.list[this.dictData.POLITICAL_OUTLOOK.index].NAME
}
//
if (name === 'DEGREE_OF_EDUCATION') {
this.dictData.DEGREE_OF_EDUCATION.index = e.detail.value;
this.formData.DEGREE_OF_EDUCATION = this.dictData.DEGREE_OF_EDUCATION.list[this.dictData.DEGREE_OF_EDUCATION.index].DICTIONARIES_ID
this.formData.DEGREE_OF_EDUCATION_NAME = this.dictData.DEGREE_OF_EDUCATION.list[this.dictData.DEGREE_OF_EDUCATION.index].NAME
}
this.$forceUpdate();//
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (!this.formData.PERSONNEL_TYPE) {
uni.showToast({
icon: 'none',
title: '请选择人员类型',
duration: 2000
});
return false;
}
return true;
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,899 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册-基础信息</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">姓名</view>
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">人员类型</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.PERSONNEL_TYPE_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'PERSONNEL_TYPE')" disabled :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
<view class="picker" style="color: #cccccc">
{{formData.PERSONNEL_TYPE_NAME?formData.PERSONNEL_TYPE_NAME:'请选择'}}
</view>
</picker>
</view>
<!-- 身份证 -->
<uni-section title="身份证" type="line" class="margin-top" padding>
<view v-if="forbidEdit" class="cu-form-textarea">
<view class="title">
<text>身份证正面</text>
</view>
<view class="cu-form-p">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation>
<view class="imgs">
<image :src="baseImgPath+formData.ID_CARD_FRONT" @click="ViewShowImage(event, formData.ID_CARD_FRONT)"
mode=""></image>
</view>
</scroll-view>
</view>
</view>
<view v-if="!forbidEdit" class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
身份证正面
</view>
<view class="action">
{{fileData.idCardFront.length}}/1
</view>
</view>
<view v-if="!forbidEdit" class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.idCardFront" :key="index" @tap="ViewImage($event,'idCardFront')" data-type="0" :data-url="fileData.idCardFront[index].filePath">
<image :src="fileData.idCardFront[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'idCardFront')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','idCardFront')" v-if="fileData.idCardFront.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view v-if="forbidEdit" class="cu-form-textarea">
<view class="title">
<text>身份证背面</text>
</view>
<view class="cu-form-p">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation>
<view class="imgs">
<image :src="baseImgPath+formData.ID_CARD_BACK" @click="ViewShowImage(event, formData.ID_CARD_BACK)"
mode=""></image>
</view>
</scroll-view>
</view>
</view>
<view v-if="!forbidEdit" class="cu-bar bg-white margin-top-xs">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
身份证背面
</view>
<view class="action">
{{fileData.idCardBack.length}}/1
</view>
</view>
<view v-if="!forbidEdit" class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.idCardBack" :key="index" @tap="ViewImage($event,'idCardBack')" data-type="0" :data-url="fileData.idCardBack[index].filePath">
<image :src="fileData.idCardBack[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'idCardBack')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','idCardBack')" v-if="fileData.idCardBack.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">生日</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.DATE_OF_BIRTH}}</view>
<picker v-else mode="date" @change="changeDate($event,'DATE_OF_BIRTH')" :value="formData.DATE_OF_BIRTH" :end="limitData.DATE_OF_BIRTH.end">
<view class="picker">
{{formData.DATE_OF_BIRTH?formData.DATE_OF_BIRTH:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">民族</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.NATION_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'NATION')" :value="dictData.NATION.index" :range="dictData.NATION.list" range-key="NAME">
<view class="picker">
{{formData.NATION_NAME?formData.NATION_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">性别</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.SEX_NAME}}</view>
<picker v-else @change="pickerChangeData($event,'SEX')" :value="dictData.SEX.index" :range="dictData.SEX.list" range-key="NAME">
<view class="picker">
{{formData.SEX_NAME?formData.SEX_NAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期起始</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.ID_CARD_VALIDITY_START}}</view>
<picker v-else mode="date" @change="changeDate($event,'ID_CARD_VALIDITY_START')" :value="formData.ID_CARD_VALIDITY_START" >
<view class="picker">
{{formData.ID_CARD_VALIDITY_START?formData.ID_CARD_VALIDITY_START:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期截止</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.ID_CARD_VALIDITY_END}}</view>
<picker v-else mode="date" @change="changeDate($event,'ID_CARD_VALIDITY_END')" :value="formData.ID_CARD_VALIDITY_END" >
<view class="picker">
{{formData.ID_CARD_VALIDITY_END?formData.ID_CARD_VALIDITY_END:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">住址</view>
<textarea v-model="formData.ID_CARD_ADDRESS" :disabled="forbidEdit" maxlength="150" placeholder="请输入身份证住址" :style="'color:' + colorValue + ';'"></textarea>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">签发机关</view>
<textarea v-model="formData.ID_CARD_ORGAN" :disabled="forbidEdit" maxlength="150" placeholder="请输入身份证签发机关" :style="'color:' + colorValue + ';'"></textarea>
</view>
</uni-section>
<!-- 驾驶证 -->
<uni-section title="驾驶证" type="line" class="margin-top" padding>
<view v-if="forbidEdit" class="cu-form-textarea">
<view class="title">
<text>驾驶证</text>
</view>
<view class="cu-form-p">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation>
<view class="imgs">
<image :src="baseImgPath+formData.DRIVER_LICENSE" @click="ViewShowImage(event, formData.DRIVER_LICENSE)"
mode=""></image>
</view>
</scroll-view>
</view>
</view>
<view v-if="!forbidEdit" class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
驾驶证
</view>
<view class="action">
{{fileData.driverLicense.length}}/1
</view>
</view>
<view v-if="!forbidEdit" class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.driverLicense" :key="index" @tap="ViewImage($event,'driverLicense')" data-type="0" :data-url="fileData.driverLicense[index].filePath">
<image :src="fileData.driverLicense[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'driverLicense')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','driverLicense')" v-if="fileData.driverLicense.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">驾驶证号</view>
<input v-model="formData.DRIVER_LICENSE_NO" :disabled="forbidEdit" placeholder="请输入驾驶证号" maxlength="18" name="input" :style="'color:' + colorValue + ';'" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">准驾车型</view>
<zqs-select
:multiple="true"
:list="dictData.DRIVING_MODEL.list"
:show-search="false"
:disabled="forbidEdit"
v-model="formData.DRIVING_MODEL"
label-key="NAME"
value-key="DICTIONARIES_ID"
placeholder="请选择准驾车型"
title="选择准驾车型"
clearable
@change="changeSelect($event, 'DRIVING_MODEL')"
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">国籍</view>
<zqs-select
:multiple="false"
:list="dictData.NATIONALITY.list"
:show-search="true"
:disabled="forbidEdit"
v-model="formData.DRIVING_NATIONALITY"
label-key="NAME"
value-key="NAME"
placeholder="请选择国籍"
title="选择国籍"
clearable
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">初次领证日期</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.DRIVER_LICENSE_ISSUE_DATE}}</view>
<picker v-else mode="date" @change="changeDate($event,'DRIVER_LICENSE_ISSUE_DATE')" :value="formData.DRIVER_LICENSE_ISSUE_DATE" >
<view class="picker">
{{formData.DRIVER_LICENSE_ISSUE_DATE?formData.DRIVER_LICENSE_ISSUE_DATE:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期起始</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.DRIVER_LICENSE_VALIDITY_START}}</view>
<picker v-else mode="date" @change="changeDate($event,'DRIVER_LICENSE_VALIDITY_START')" :value="formData.DRIVER_LICENSE_VALIDITY_START" >
<view class="picker">
{{formData.DRIVER_LICENSE_VALIDITY_START?formData.DRIVER_LICENSE_VALIDITY_START:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期截止</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.DRIVER_LICENSE_VALIDITY_END}}</view>
<picker v-else mode="date" @change="changeDate($event,'DRIVER_LICENSE_VALIDITY_END')" :value="formData.DRIVER_LICENSE_VALIDITY_END" >
<view class="picker">
{{formData.DRIVER_LICENSE_VALIDITY_END?formData.DRIVER_LICENSE_VALIDITY_END:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">签发机关</view>
<textarea v-model="formData.DRIVER_LICENSE_ORGAN" :disabled="forbidEdit" maxlength="150" placeholder="请输入驾驶证签发机关" :style="'color:' + colorValue + ';'"></textarea>
</view>
</uni-section>
<!-- 道路运输从业人员从业资格证 -->
<uni-section title="道路运输从业人员从业资格证" type="line" class="margin-top" padding>
<view v-if="forbidEdit" class="cu-form-textarea">
<view class="title">
<text>从业资格证</text>
</view>
<view class="cu-form-p">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation>
<view class="imgs">
<image :src="baseImgPath+formData.QUALIFICATION_CERTIFICATE" @click="ViewShowImage(event, formData.QUALIFICATION_CERTIFICATE)"
mode=""></image>
</view>
</scroll-view>
</view>
</view>
<view v-if="!forbidEdit" class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
从业资格证
</view>
<view class="action">
{{fileData.qualificationCertificate.length}}/1
</view>
</view>
<view v-if="!forbidEdit" class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.qualificationCertificate" :key="index" @tap="ViewImage($event,'qualificationCertificate')" data-type="0" :data-url="fileData.qualificationCertificate[index].filePath">
<image :src="fileData.qualificationCertificate[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'qualificationCertificate')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','qualificationCertificate')" v-if="fileData.qualificationCertificate.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">从业资格证号</view>
<input v-model="formData.QUALIFICATION_CERTIFICATE_NO" :disabled="forbidEdit" placeholder="请输入从业资格证号" maxlength="18" name="input" :style="'color:' + colorValue + ';'" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">从业资格类别</view>
<zqs-select
:multiple="true"
:list="dictData.QUALIFICATION_CERTIFICATE_CATEGORY.list"
:show-search="false"
:disabled="forbidEdit"
v-model="formData.QUALIFICATION_CERTIFICATE_CATEGORY"
label-key="NAME"
value-key="DICTIONARIES_ID"
placeholder="请选择从业资格类别"
title="选择从业资格类别"
clearable
@change="changeSelect($event, 'QUALIFICATION_CERTIFICATE_CATEGORY')"
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">国籍</view>
<zqs-select
:multiple="false"
:list="dictData.NATIONALITY.list"
:show-search="true"
:disabled="forbidEdit"
v-model="formData.QUALIFICATION_CERTIFICATE_NATIONALITY"
label-key="NAME"
value-key="NAME"
placeholder="请选择国籍"
title="选择国籍"
clearable
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">初次领证日期</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE}}</view>
<picker v-else mode="date" @change="changeDate($event,'QUALIFICATION_CERTIFICATE_ISSUE_DATE')" :value="formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE" >
<view class="picker">
{{formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE?formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期起始</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.QUALIFICATION_CERTIFICATE_VALIDITY_START}}</view>
<picker v-else mode="date" @change="changeDate($event,'QUALIFICATION_CERTIFICATE_VALIDITY_START')" :value="formData.QUALIFICATION_CERTIFICATE_VALIDITY_START" >
<view class="picker">
{{formData.QUALIFICATION_CERTIFICATE_VALIDITY_START?formData.QUALIFICATION_CERTIFICATE_VALIDITY_START:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期截止</view>
<view v-if="forbidEdit" style="color: #cccccc">{{formData.QUALIFICATION_CERTIFICATE_VALIDITY_END}}</view>
<picker v-else mode="date" @change="changeDate($event,'QUALIFICATION_CERTIFICATE_VALIDITY_END')" :value="formData.QUALIFICATION_CERTIFICATE_VALIDITY_END" >
<view class="picker">
{{formData.QUALIFICATION_CERTIFICATE_VALIDITY_END?formData.QUALIFICATION_CERTIFICATE_VALIDITY_END:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">签发机关</view>
<textarea v-model="formData.QUALIFICATION_CERTIFICATE_ORGAN" :disabled="forbidEdit" maxlength="150" placeholder="请输入从业资格证签发机关" :style="'color:' + colorValue + ';'"></textarea>
</view>
</uni-section>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<!-- <button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmCertificate)"></button>-->
<button v-if="!forbidEdit" :loading="buttonloading" :disabled="buttonloading" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(confirmCertificate)"> </button>
<button v-if="forbidEdit && applyStatus !== '0'" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goEdit)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
<yk-authpup ref="authpup" type="top" @changeAuth="ChooseImage(0)" :permissionID="permissionID"></yk-authpup>
</view>
</template>
<script>
import {
formatDate, baseImgPath, getLevel, getLevelCustom
} from '../../../../common/tool.js';
import UniSection from "../../../../components/uni-section/components/uni-section/uni-section";
import ZqsSelect from '../../../../components/zqs-select/zqs-select.vue'
export default {
name: "register_certificate",
components: {
UniSection, ZqsSelect
},
props: {
applyStatus: {
type: String,
default: ''
},
forbidEdit: {
type: Boolean,
default: true
},
colorValue: {
type: String,
default: "#cccccc"
},
formData: {
type: Object,
default: function() {
return {}
}
},
fileData: {
type: Object,
default: function() {
return {}
}
},
buttonloading: {
type: Boolean,
default: function() {
return false
}
}
},
data() {
return {
baseImgPath:baseImgPath,
permissionID:'',
noClick: true,
currentFileDataList: '', // list
//
limitData: {
//
DATE_OF_BIRTH:{ start: '', end: '' },
//
ID_CARD_VALIDITY_START:{ start: '', end: '' },
//
ID_CARD_VALIDITY_END:{ start: '', end: '' },
//
DRIVER_LICENSE_ISSUE_DATE:{ start: '', end: '' },
//
DRIVER_LICENSE_VALIDITY_START:{ start: '', end: '' },
//
DRIVER_LICENSE_VALIDITY_END:{ start: '', end: '' },
//
QUALIFICATION_CERTIFICATE_ISSUE_DATE:{ start: '', end: '' },
//
QUALIFICATION_CERTIFICATE_VALIDITY_START:{ start: '', end: '' },
//
QUALIFICATION_CERTIFICATE_VALIDITY_END:{ start: '', end: '' },
},
dictData:{
//
PERSONNEL_TYPE:{
index: -1,
list:[],
},
//
SEX:{
index: -1,
list:[
{ NAME: '男', DICTIONARIES_ID: '1' },
{ NAME: '女', DICTIONARIES_ID: '0' }
],
},
//
NATION:{
index: -1,
list:[],
},
//
DRIVING_MODEL: {
index: -1,
list:[],
},
//
NATIONALITY: {
index: -1,
list:[],
},
//
QUALIFICATION_CERTIFICATE_CATEGORY: {
index: -1,
list:[],
},
//
QUALIFICATION_CERTIFICATE_NATIONALITY: {
index: -1,
list:[],
},
}
}
},
mounted() {
this.getDictList()
var _this = this
let now = new Date();
var birthEnd=now.setFullYear(now.getFullYear()-17);
birthEnd=new Date(birthEnd);
this.limitData.DATE_OF_BIRTH.end = formatDate(birthEnd, 'yyyy-MM-dd'); //
this.dictData.SEX.list.forEach((item, index) => {
if (item.DICTIONARIES_ID === _this.formData.SEX) {
_this.dictData.SEX.index = index;
_this.formData.SEX = _this.dictData.SEX.list[_this.dictData.SEX.index].DICTIONARIES_ID
_this.formData.SEX_NAME = _this.dictData.SEX.list[_this.dictData.SEX.index].NAME
}
})
},
methods: {
async getDictList(){
//
this.dictData.PERSONNEL_TYPE.list = await getLevel({DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e', BIANMA: 'TRAFFIC_EMPLOYMENT_DRIVE'});
//
this.dictData.NATION.list = await getLevel({DICTIONARIES_ID: '0a0e406f27f74ee698fe9979d25f62dd'});
//
this.dictData.DRIVING_MODEL.list = await getLevel({DICTIONARIES_ID: 'b41e247057334789b60bdf3fe6d8d6ba'});
//
this.dictData.NATIONALITY.list = await getLevel({DICTIONARIES_ID: '3b614b43e8814f51a3492f2fdbc9a415'});
//
this.dictData.QUALIFICATION_CERTIFICATE_CATEGORY.list = await getLevelCustom({DICTIONARIES_ID: 'ed38fa5f78c64e6d906d2bad0d72bd63', LEVEL: 3});
this.dictData.QUALIFICATION_CERTIFICATE_CATEGORY.list.forEach((item) => {
item.NAME = ''+ item.BIANMA + ' ' + item.NAME
})
},
//
confirmCertificate() {
if (this.validateData()) {
this.$emit("confirm", '');
}
},
goEdit(){
this.$emit("goEdit", false);
},
changeDate(e,name) {
this.formData[name] = e.detail.value
this.$forceUpdate();//
},
changeSelect(e, name) {
this.$forceUpdate();//
},
pickerChangeData(e,name) {
//
if (name === 'PERSONNEL_TYPE') {
this.dictData.PERSONNEL_TYPE.index = e.detail.value;
this.formData.PERSONNEL_TYPE = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].DICTIONARIES_ID
this.formData.PERSONNEL_TYPE_NAME = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].NAME
}
//
if (name === 'SEX') {
this.dictData.SEX.index = e.detail.value;
this.formData.SEX = this.dictData.SEX.list[this.dictData.SEX.index].DICTIONARIES_ID
this.formData.SEX_NAME = this.dictData.SEX.list[this.dictData.SEX.index].NAME
}
//
if (name === 'NATION') {
this.dictData.NATION.index = e.detail.value;
this.formData.NATION = this.dictData.NATION.list[this.dictData.NATION.index].DICTIONARIES_ID
this.formData.NATION_NAME = this.dictData.NATION.list[this.dictData.NATION.index].NAME
}
this.$forceUpdate();//
},
openAuth(permissionID, list){
this.permissionID = permissionID;
this.currentFileDataList = list
setTimeout(()=>{
this.$refs['authpup'].open();
},200)
},
//
ChooseImage(e) {
var _this = this;
var ss=1-this.fileData[this.currentFileDataList].length;
uni.chooseImage({
count: ss, //9
sizeType: ['original', 'compressed'], //
sourceType: ['camera','album'], //
success: (res) => {
if(e==0) {
for (let i = 0; i < res.tempFilePaths.length; i++) {
let img={};
img.id='';
img.filePath=res.tempFilePaths[i];
this.fileData[this.currentFileDataList].push(img)
}
}
}
});
},
ViewImage(e,list) {
console.info(e.currentTarget.dataset.type)
let files =[];
if(e.currentTarget.dataset.type==0) {
for(var i=0;i<this.fileData[list].length;i++){
files.push(this.fileData[list][i].filePath)
}
}else{
let files =[];
for(var i=0;i<this.fileData[list].length;i++){
files.push(this.fileData[list][i].filePath)
}
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
},
DelImg(e, list) {
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
if(e.currentTarget.dataset.type==0) {
if(_this.formData.USER_ID) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
list: '',
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.fileData[list].splice(i, 1)
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else {
this.fileData[list].splice(e.currentTarget.dataset.index, 1)
}
}
}
}
})
},
ViewShowImage(e, path) {
let files = [];
files.push(baseImgPath + path)
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.index
});
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (this.fileData.idCardFront.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(正面)',
duration: 2000
});
return false;
}
if (this.fileData.idCardBack.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(背面)',
duration: 2000
});
return false;
}
if (!this.formData.DATE_OF_BIRTH) {
uni.showToast({
icon: 'none',
title: '请选择生日',
duration: 2000
});
return false;
}
if (!this.formData.NATION) {
uni.showToast({
icon: 'none',
title: '请选择民族',
duration: 2000
});
return false;
}
if (!this.formData.SEX) {
uni.showToast({
icon: 'none',
title: '请选择性别',
duration: 2000
});
return false;
}
if (!this.formData.ID_CARD_VALIDITY_START || !this.formData.ID_CARD_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择身份证有效期时间',
duration: 2000
});
return false;
}
if (!this.formData.ID_CARD_ADDRESS) {
uni.showToast({
icon: 'none',
title: '请输入住址信息',
duration: 2000
});
return false;
}
if (!this.formData.ID_CARD_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入身份证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.driverLicense.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传驾驶证照片',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_NO) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证号',
duration: 2000
});
return false;
}
if (this.formData.DRIVING_MODEL.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择准驾车型',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_VALIDITY_START || !this.formData.DRIVER_LICENSE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择驾驶证有效期时间',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.qualificationCertificate.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传从业资格证照片',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_NO) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证号',
duration: 2000
});
return false;
}
if (this.formData.QUALIFICATION_CERTIFICATE_CATEGORY.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证类别',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_VALIDITY_START || !this.formData.QUALIFICATION_CERTIFICATE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证有效期时间',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证的签发机关',
duration: 2000
});
return false;
}
return true;
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,230 @@
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">{{ form.APPLY_TYPE ==='2' ? '入职确认' : '解聘确认' }}</block>
</cu-custom>
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">服务公司</view>
<input v-model="form.CORP_NAME" disabled placeholder="请输入服务公司" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">所在部门</view>
<input v-model="form.DEPARTMENT_NAME" disabled placeholder="请输入所在部门" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">任职岗位</view>
<input v-model="form.POST_NAME" disabled placeholder="请输入任职岗位" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">确认结果</view>
<radio-group v-model="form.REVIEW_RESULT" @change = "radioChange" style="width: 100%;">
<label class="answer-lable">
<radio class="blue" :class="form.REVIEW_RESULT=='1'?'checked':''" :checked="form.REVIEW_RESULT=='1'?true:false" value="1"></radio>
<text class="title">同意</text>
</label>
<label class="answer-lable">
<radio class="blue" :class="form.REVIEW_RESULT=='-1'?'checked':''" :checked="form.REVIEW_RESULT=='-1'?true:false" value="-1"></radio>
<text class="title">拒绝</text>
</label>
</radio-group>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">申请描述</view>
<textarea v-model="form.APPLY_CONTENT" maxlength="200" placeholder="请输入描述(选填)"></textarea>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirm)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {basePath, loginUser} from "../../../common/tool";
export default {
data() {
return {
noClick: true,
form:{
}
}
},
onShow() {
this.getData()
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/user/getPractitionerEmploymentCorp',
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
USER_ID:loginUser.USER_ID,
ISDELETE: '0',
APPLY_STATUS: '0',
},
success: (res) => {
if (res.data.pd) {
uni.hideLoading();
_this.form = res.data.pd;
_this.$set(_this.form, 'REVIEW_RESULT', '');
}
}
});
},
radioChange(e) {
this.form.REVIEW_RESULT = e.detail.value;
},
//
confirm(e) {
console.log(this.form.REVIEW_RESULT)
//
if (this.form.REVIEW_RESULT === '') {
uni.showToast({
icon: 'none',
title: '请选择确认结果',
duration: 2000
});
return false;
}
var that = this
uni.showModal({
title: '温馨提示',
content: '确定要提交吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
uni.request({
url: basePath+'/app/user/setPractitionerConfirmByUser',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
...that.form,
USER_ID: loginUser.USER_ID,
NAME: loginUser.NAME
},
success: (res) => {
uni.hideLoading();
if ("success" == res.data.result) {
uni.showToast({
icon:'none',
title: '提交成功',
duration: 1500
});
that.goback()
}else{
uni.hideLoading();
uni.showToast({
icon:'none',
title: '系统错误',
duration: 2000
});
}
}
});
} else {
uni.hideLoading();
}
}
})
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
.answer-lable{
text-align: center;
vertical-align: center;
margin-bottom: 20upx;
}
.answer-lable:last-child{
margin-bottom: 0;
}
.answer-lable radio{
margin-left: 20upx;
margin-right: 10upx;
}
.title {
text-align: center;
font-size: 40upx;
}
</style>

View File

@ -0,0 +1,206 @@
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">入职申请</block>
</cu-custom>
<scroll-view scroll-y="false" >
<view class="form">
<!-- 入职申请 -->
<uni-section title="入职申请" type="line" class="margin-top" padding>
<view class="cu-form-group margin-top-xs">
<view class="title">入职企业</view>
<zqs-select
:multiple="false"
:list="dictData.APPLY_CORP.list"
:show-search="true"
v-model="form.CORPINFO_ID"
label-key="CORP_NAME"
value-key="CORPINFO_ID"
placeholder="请选择入职企业"
title="选择入职企业"
clearable
@search="searchSelect($event, 'APPLY_CORP')"
></zqs-select>
</view>
</uni-section>
<view class="cu-form-group margin-top-xs">
<view class="title">申请描述</view>
<textarea v-model="form.APPLY_CONTENT" maxlength="200" placeholder="请输入描述(选填)"></textarea>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirm)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {basePath, getLevel, listCorpAll, loginUser} from "../../../common/tool";
import UniSection from "../../../components/uni-section/components/uni-section/uni-section";
import ZqsSelect from '../../../components/zqs-select/zqs-select.vue'
export default {
components: {
UniSection, ZqsSelect
},
data() {
return {
noClick: true,
form:{
CORPINFO_ID: '',
APPLY_CONTENT: ''
},
dictData:{
//
APPLY_CORP: {
index: -1,
list:[],
tempList:[]
},
}
}
},
mounted() {
this.getDictList()
},
methods: {
async getDictList(){
//
this.dictData.APPLY_CORP.list = await listCorpAll({ISDELETE: '0'});
this.dictData.APPLY_CORP.tempList = JSON.parse(JSON.stringify(this.dictData.APPLY_CORP.list));
},
searchSelect(e, name) {
console.log('查询事件参数', e)
this.dictData.APPLY_CORP.list = JSON.parse(JSON.stringify(this.dictData.APPLY_CORP.tempList));
if (e) {
this.dictData.APPLY_CORP.list = this.dictData[name].list.filter(item => item.CORP_NAME.indexOf(e) > -1);
}
},
//
confirm(e) {
var that = this
uni.showModal({
title: '温馨提示',
content: '确定要提交申请吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
uni.request({
url: basePath+'/app/user/setPractitionerEntryByUser',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
...that.form,
USER_ID: loginUser.USER_ID,
NAME: loginUser.NAME
},
success: (res) => {
uni.hideLoading();
if ("success" == res.data.result) {
uni.showToast({
icon:'none',
title: '申请提交成功',
duration: 1500
});
that.goback()
}else{
uni.hideLoading();
uni.showToast({
icon:'none',
title: '系统错误',
duration: 2000
});
}
}
});
} else {
uni.hideLoading();
}
}
})
},
validateData() {
if (!this.form.CORPINFO_ID) {
uni.showToast({
icon: 'none',
title: '请选择入职企业',
duration: 2000
});
return false;
}
return true;
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,121 @@
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">个人信息</block>
</cu-custom>
<view class="cu-list menu">
<view class="cu-item arrow">
<navigator class="content" hover-class="none" :url="'/pages/basics/basic-info/user-info?APPLY_STATUS=' + pd.APPLY_STATUS" open-type="redirect">
<text class="text-semi">注册信息</text>
</navigator>
</view>
<view v-if="loginCorpId && pd.APPLY_STATUS === '1'" class="cu-item arrow">
<navigator class="content" hover-class="none" url="/pages/basics/basic-info/resignation" open-type="redirect">
<text class="text-semi">离职申请</text>
</navigator>
</view>
<view v-if="!loginCorpId && pd.APPLY_STATUS === ''" class="cu-item arrow">
<navigator class="content" hover-class="none" url="/pages/basics/basic-info/entry" open-type="redirect">
<text class="text-semi">入职申请</text>
</navigator>·
</view>
<view v-if="!loginCorpId && pd.APPLY_STATUS === '0' && (pd.APPLY_TYPE ==='2' || pd.APPLY_TYPE ==='4')" class="cu-item arrow">
<navigator class="content" hover-class="none" url="/pages/basics/basic-info/confirm" open-type="redirect">
<text class="text-semi">信息确认</text>
</navigator>
</view>
<view class="cu-item arrow">
<view class="content" @tap.stop="openAuth('CAMERA')">
<text class="text-semi">更新人脸信息</text>
</view>
</view>
<view class="cu-item arrow">
<navigator class="content" hover-class="none" url="/pages/my/updateSignature/index" open-type="redirect">
<text class="text-semi">更新签字信息</text>
</navigator>
</view>
</view>
<yk-authpup ref="authpup" type="top" @changeAuth="openAuthAudio('RECORD_AUDIO')" :permissionID="permissionID"></yk-authpup>
<yk-authpup ref="authpup_audio" type="top" @changeAuth="naviFace" :permissionID="permissionID"></yk-authpup>
</view>
</template>
<script>
import {
basePath,
loginUser
} from '@/common/tool.js';
import ykAuthpup from "@/components/yk-authpup/yk-authpup"
export default {
components: {
ykAuthpup
},
data() {
return {
permissionID: '',
loginUserId: '',
loginCorpId: '',
pd: {
APPLY_TYPE: '',
APPLY_STATUS: '',
}
}
},
onLoad(event){
this.LoginUserId = loginUser.USER_ID
this.loginCorpId = loginUser.CORPINFO_ID
this.getData()
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/user/getPractitionerEmploymentCorp',
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
USER_ID:loginUser.USER_ID,
ISDELETE: '0',
},
success: (res) => {
uni.hideLoading();
if (res.data.pd) { //
_this.pd = res.data.pd;
}
}
});
},
openAuth(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup'].open();
},200)
},
openAuthAudio(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup_audio'].open();
},200)
},
naviFace(){
uni.navigateTo({
url: '/pages/my/face/index'
})
}
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,186 @@
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">离职申请</block>
</cu-custom>
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">服务公司</view>
<input v-model="form.CORP_NAME" disabled placeholder="请输入服务公司" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">所在部门</view>
<input v-model="form.DEPARTMENT_NAME" disabled placeholder="请输入所在部门" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">任职岗位</view>
<input v-model="form.POST_NAME" disabled placeholder="请输入任职岗位" name="input" style="color:#cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">申请描述</view>
<textarea v-model="form.APPLY_CONTENT" maxlength="200" placeholder="请输入描述(选填)"></textarea>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirm)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {basePath, loginUser} from "../../../common/tool";
export default {
data() {
return {
noClick: true,
form:{
}
}
},
onShow() {
this.getData()
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/user/getPractitionerEmploymentCorp',
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
USER_ID:loginUser.USER_ID,
ISDELETE: '0',
APPLY_STATUS: '1',
},
success: (res) => {
if (res.data.pd) {
uni.hideLoading();
_this.form = res.data.pd;
}
}
});
},
//
confirm(e) {
var that = this
uni.showModal({
title: '温馨提示',
content: '确定要提交申请吗?',
cancelColor: "#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
uni.request({
url: basePath+'/app/user/setPractitionerResignationByUser',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
...that.form,
NAME: loginUser.NAME
},
success: (res) => {
uni.hideLoading();
if ("success" == res.data.result) {
uni.showToast({
icon:'none',
title: '申请提交成功',
duration: 1500
});
that.goback()
}else{
uni.hideLoading();
uni.showToast({
icon:'none',
title: '系统错误',
duration: 2000
});
}
}
});
} else {
uni.hideLoading();
}
}
})
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,593 @@
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">人员信息</block>
</cu-custom>
<view class="top-fixed">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation :scroll-left="scrollLeft">
<view class="flex text-center">
<view class="cu-item flex-sub" :class="index === TabCur?'text-blue cur':''" v-for="(item,index) in tabNav" :key="index" @tap="tabSelect" :data-id="index">
{{tabNav[index]}}
</view>
</view>
</scroll-view>
<view class="line"></view>
</view>
<block v-if="TabCur==0">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<Account ref="account" :applyStatus="applyStatus" :forbidEdit="forbidEdit" :colorValue="colorValue" :formData="form" @confirm="goToNext($event,1)" @goEdit="goEdit"></Account>
</scroll-view>
</block>
<block v-if="TabCur==1">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<base-info ref="baseInfo" :applyStatus="applyStatus" :forbidEdit="forbidEdit" :colorValue="colorValue" :formData="form" @confirm="goToNext($event,2)" @goEdit="goEdit"></base-info>
</scroll-view>
</block>
<block v-if="TabCur==2">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<Certificate ref="certificate" :applyStatus="applyStatus" :forbidEdit="forbidEdit" :colorValue="colorValue" :formData="form" :fileData="fileData" :buttonloading="buttonloading" @confirm="submitRegister($event)" @goEdit="goEdit"></Certificate>
</scroll-view>
</block>
<!-- <block v-if="TabCur==3">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<apply ref="apply" :forbidEdit="forbidEdit" :colorValue="colorValue" :formData="form" :buttonloading="buttonloading" @confirm="submitRegister($event)" @goEdit="goEdit"></apply>
</scroll-view>
</block>-->
</view>
</template>
<script>
import {
basePath, loginSession, loginUser,
validateIdCard, validateMobile
} from '../../../common/tool.js';
import Account from "./components/account.vue"
import BaseInfo from "./components/baseInfo.vue"
import Certificate from "./components/certificate.vue"
import Apply from "./components/apply.vue"
export default {
components: {
Account, BaseInfo, Certificate, Apply
},
data() {
return {
forbidEdit:true,//
colorValue: '#cccccc',
noClick: true,
buttonloading: false,
sTop:0,
totalHeight:0,
TabCur: 0,
scrollLeft: 0,
tabNav: ['注册信息', '基础信息', '资格证照'],
applyStatus: '',
fileData: {
//
idCardFront: [],
//
idCardBack: [],
//
driverLicense: [],
//
qualificationCertificate: [],
},
form: {
USER_ID: '',
//
NAME: '',
//
USER_ID_CARD: '',
//
PHONE: '',
//
DATE_OF_BIRTH: '',
//
SEX: '',
SEXNAME: '',
//
PERSONNEL_TYPE: '',
PERSONNEL_TYPE_NAME: '',
//
POLITICAL_OUTLOOK: '',
POLITICAL_OUTLOOK_NAME: '',
//
DEGREE_OF_EDUCATION: '',
DEGREE_OF_EDUCATION_NAME: '',
//
WORKING_DATE: '',
//
ID_CARD_FRONT: '',
ID_CARD_BACK: '',
//
ID_CARD_VALIDITY_START: '',
ID_CARD_VALIDITY_END: '',
//
ID_CARD_ADDRESS: '',
//
ID_CARD_ORGAN: '',
//
NATION: '',
NATIONNAME: '',
//
DRIVER_LICENSE: '',
//
DRIVER_LICENSE_NO: '',
//
DRIVING_MODEL: [],
//
DRIVING_NATIONALITY: '',
//
DRIVER_LICENSE_ISSUE_DATE: '',
//
DRIVER_LICENSE_VALIDITY_START: '',
//
DRIVER_LICENSE_VALIDITY_END: '',
//
DRIVER_LICENSE_ORGAN: '',
//
QUALIFICATION_CERTIFICATE: '',
//
QUALIFICATION_CERTIFICATE_NO: '',
//
QUALIFICATION_CERTIFICATE_CATEGORY: [],
//
QUALIFICATION_CERTIFICATE_NATIONALITY: '',
//
QUALIFICATION_CERTIFICATE_ISSUE_DATE: '',
//
QUALIFICATION_CERTIFICATE_VALIDITY_START: '',
//
QUALIFICATION_CERTIFICATE_VALIDITY_END: '',
//
QUALIFICATION_CERTIFICATE_ORGAN: '',
//
APPLY_CORP: '',
ROLE_ID: '',
CARDNO: '',
DEPARTMENT_ID: '',
POST_ID: '',
USERNAME: '',
SORT: '',
EMAIL: '',
SHIFTDUTYONE: '',
SHIFTDUTYTWO: '',
periodStr: '',
BZ: '',
IS_SAFETY: 0,
ISHEAD: '0',
ISLEADER: '0',
ISSTUDENT: 'true',
DUTIES: '',
TITLE: '',
TYPE_OF_WORK: '',
INCUMBENCY: '',
faceFile: [],
userCerFile: [],
//
ENTRY_DATE: '',
}
}
},
onReady() {
let that=this;
let CustomBar = this.CustomBar;
uni.getSystemInfo({ //uni-app
success(res) { //
let titleH=uni.createSelectorQuery().select(".top-fixed"); //class/id
titleH.boundingClientRect(data=>{
that._data.sTop=data.height //=-data.top
that.totalHeight = data.height+CustomBar
}).exec()
}
})
},
onLoad(event) {
this.applyStatus = event.APPLY_STATUS
this.getData();
loginSession();
},
methods: {
//
goToEdit(e) {
uni.navigateTo({
url: '/pages/application/basic-info-manage/basic-information/basic-information-edit'
});
},
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
},
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/user/getPractitionerInfo',
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
USER_ID:loginUser.USER_ID,
},
success: (res) => {
if (res.data != null) {
uni.hideLoading();
_this.form = res.data.pd;
res.data.certificateList.forEach((item, index) => {
if (item.CERTIFICATE_CATEGORY === '1') {
_this.form.ID_CARD_FRONT = item.ID_PHOTO_FRONT
_this.form.ID_CARD_BACK = item.ID_PHOTO_BACK
_this.form.USER_ID_CARD = item.ID_NO
_this.form.ID_CARD_VALIDITY_START = item.ID_VALIDITY_START
_this.form.ID_CARD_VALIDITY_END = item.ID_VALIDITY_END
_this.form.ID_CARD_ADDRESS = item.ID_ADDRESS
_this.form.ID_CARD_ORGAN = item.ID_ORGAN
}
else if (item.CERTIFICATE_CATEGORY === '2') {
_this.form.DRIVER_LICENSE = item.ID_PHOTO_FRONT
_this.form.DRIVER_LICENSE_NO = item.ID_NO
_this.form.DRIVING_NATIONALITY = item.ID_NATIONALITY
_this.form.DRIVER_LICENSE_ISSUE_DATE = item.ID_ISSUE_DATE
_this.form.DRIVER_LICENSE_VALIDITY_START = item.ID_VALIDITY_START
_this.form.DRIVER_LICENSE_VALIDITY_END = item.ID_VALIDITY_END
_this.form.DRIVER_LICENSE_ORGAN = item.ID_ORGAN
_this.form.DRIVING_MODEL = item.ALLOW_QUALIFICATION ? item.ALLOW_QUALIFICATION.split(',') : []
}
else if (item.CERTIFICATE_CATEGORY === '3') {
_this.form.QUALIFICATION_CERTIFICATE = item.ID_PHOTO_FRONT
_this.form.QUALIFICATION_CERTIFICATE_NO = item.ID_NO
_this.form.QUALIFICATION_CERTIFICATE_NATIONALITY = item.ID_NATIONALITY
_this.form.QUALIFICATION_CERTIFICATE_ISSUE_DATE = item.ID_ISSUE_DATE
_this.form.QUALIFICATION_CERTIFICATE_VALIDITY_START = item.ID_VALIDITY_START
_this.form.QUALIFICATION_CERTIFICATE_VALIDITY_END = item.ID_VALIDITY_END
_this.form.QUALIFICATION_CERTIFICATE_ORGAN = item.ID_ORGAN
_this.form.QUALIFICATION_CERTIFICATE_CATEGORY = item.ALLOW_QUALIFICATION ? item.ALLOW_QUALIFICATION.split(',') : []
}
})
console.log(_this.form)
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
//
goToNext(e, tabCur) {
this.TabCur = tabCur
},
goEdit(e){
console.log(e)
this.forbidEdit = false
this.colorValue = '#000000'
},
submitRegister() {
if (this.validateData()) {
this.buttonloading = true
uni.showLoading({
title:"数据提交中..."
});//
var _this = this
const formData={}
Object.keys(this.form).map(key => {
formData[key]=this.form[key]
})
//
formData.DRIVING_MODEL = formData.DRIVING_MODEL.join(",")
//
formData.QUALIFICATION_CERTIFICATE_CATEGORY = formData.QUALIFICATION_CERTIFICATE_CATEGORY.join(",")
var files = [];
var img = {}
img.name = 'file0'
img.uri = this.fileData.idCardFront[0].filePath
files.push(img)
img = {}
img.name = 'file1'
img.uri = this.fileData.idCardBack[0].filePath
files.push(img)
img = {}
img.name = 'file2'
img.uri = this.fileData.driverLicense[0].filePath
files.push(img)
img = {}
img.name = 'file3'
img.uri = this.fileData.qualificationCertificate[0].filePath
files.push(img)
console.log(formData)
uni.uploadFile({
url: basePath+'app/user/editPractitioner',
files: files,
formData:formData,
success: (res) => {
this.buttonloading = false
uni.hideLoading();//
uni.showToast({
icon:'none',
title: '修改成功',
duration: 2000
});
_this.goback()
},
fail: (err) => {
this.buttonloading = false
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (!this.form.NAME) {
uni.showToast({
icon: 'none',
title: '请输入人员姓名',
duration: 2000
});
return false;
}
//
if (!this.form.USER_ID_CARD) {
uni.showToast({
icon: 'none',
title: '请输入身份证号',
duration: 2000
});
return false;
}
else if (!validateIdCard(this.form.USER_ID_CARD)) {
uni.showToast({
icon: 'none',
title: '请输入有效的身份证号',
duration: 2000
});
return false;
}
//
if (!this.form.PHONE) {
uni.showToast({
icon: 'none',
title: '请输入手机号码',
duration: 2000
});
return false;
}
else if (!validateMobile(this.form.PHONE)) {
uni.showToast({
icon: 'none',
title: '请输入有效的手机号码',
duration: 2000
});
return false;
}
//
if (!this.form.PERSONNEL_TYPE) {
uni.showToast({
icon: 'none',
title: '请选择人员类型',
duration: 2000
});
return false;
}
//
if (this.fileData.idCardFront.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(正面)',
duration: 2000
});
return false;
}
if (this.fileData.idCardBack.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(背面)',
duration: 2000
});
return false;
}
if (!this.form.DATE_OF_BIRTH) {
uni.showToast({
icon: 'none',
title: '请选择生日',
duration: 2000
});
return false;
}
if (!this.form.NATION) {
uni.showToast({
icon: 'none',
title: '请选择民族',
duration: 2000
});
return false;
}
if (!this.form.SEX) {
uni.showToast({
icon: 'none',
title: '请选择性别',
duration: 2000
});
return false;
}
if (!this.form.ID_CARD_VALIDITY_START || !this.form.ID_CARD_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择身份证有效期时间',
duration: 2000
});
return false;
}
if (!this.form.ID_CARD_ADDRESS) {
uni.showToast({
icon: 'none',
title: '请输入住址信息',
duration: 2000
});
return false;
}
if (!this.form.ID_CARD_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入身份证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.driverLicense.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传驾驶证照片',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_NO) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证号',
duration: 2000
});
return false;
}
if (this.form.DRIVING_MODEL.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择准驾车型',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_VALIDITY_START || !this.form.DRIVER_LICENSE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择驾驶证有效期时间',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.qualificationCertificate.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传从业资格证照片',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_NO) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证号',
duration: 2000
});
return false;
}
if (this.form.QUALIFICATION_CERTIFICATE_CATEGORY.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证类别',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_VALIDITY_START || !this.form.QUALIFICATION_CERTIFICATE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证有效期时间',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证的签发机关',
duration: 2000
});
return false;
}
/*if (!this.form.APPLY_CORP) {
uni.showToast({
icon: 'none',
title: '请选择入职企业',
duration: 2000
});
return false;
}*/
return true;
},
}
}
</script>
<style>
.selected .radio {
transform: scale(0.5);
margin-right: 10upx;
}
</style>

View File

@ -64,7 +64,7 @@
</view> -->
<view class="home-apps">
<view class="home-apps-list">
<navigator class="home-apps-item" hover-class="none" url="/pages/basics/basic-info/basic-info">
<navigator class="home-apps-item" hover-class="none" url="/pages/basics/basic-info/home"> <!-- /pages/basics/basic-info/basic-info -->
<view class="home-apps-item-img">
<image src="../../static/icon-apps/home-base.png" mode=""></image>
</view>
@ -585,11 +585,13 @@ import maoScroll from '@/components/mao-scroll/mao-scroll.vue';
import ykAuthpup from "@/components/yk-authpup/yk-authpup";
export default {
components: {
maoScroll,ykAuthpup
maoScroll,
ykAuthpup
},
mixins: [MescrollMixin], // 使mixin (main.js)
data() {
return {
keyProjectManagement: '',
safetyEnvironmentalInspection: 0, //
permissionID: '',
premission: {},
@ -598,9 +600,21 @@ export default {
StatusBarb: this.StatusBar + 50,
hidCount: [],
hdCount: {},
userCount: {},
deptCount: {},
superviseDeptCount: {},
userCount: {
check_count: 0,
hidden_count: 0,
rectify_count: 0
},
deptCount: {
check_count: 0,
hidden_count: 0,
rectify_count: 0
},
superviseDeptCount: {
check_count: 0,
hidden_count: 0,
rectify_count: 0
},
today: '',
triggered: false,
count: {},
@ -630,21 +644,20 @@ export default {
},
mounted() {
loginSession()
this.getSafetyEnvironmentalInspectionCount();
this.getUpdateInfo()
this.premission = Object.assign({}, premission)
let now = new Date();
var today = formatDate(now, 'yyyy-MM-dd');
if (!this.premission || JSON.stringify(this.premission) === '{}') {
this.getMenu();
}
if (loginUser.CORPINFO_ID) {
this.getSafetyEnvironmentalInspectionCount();
this.getIsRest();
this.getData();
this.getSurveyData();
// this.getUserId();
this.getListData();
//
this.getHiddenRoll();
}
// this.getUserId();
// this._freshing = false;
// setTimeout(() => {
// this.triggered = true;
@ -680,9 +693,11 @@ export default {
},
success: (res) => {
if ("success" == res.data.result) {
_this.safetyEnvironmentalInspection = res.data.confirmCount.confirmCount
+ res.data.checkedCount.checkedCount+ res.data.repulseCount.repulseCount
+res.data.repulseAndCheckCount.repulseAndCheckCount
_this.safetyEnvironmentalInspection = res.data.confirmCount
.confirmCount +
res.data.checkedCount.checkedCount + res.data.repulseCount
.repulseCount +
res.data.repulseAndCheckCount.repulseAndCheckCount
resolve();
}
}
@ -731,7 +746,7 @@ export default {
success: (res) => {
if ("success" == res.data.result) {
Object.values(res.data.count).forEach(item => {
this.eight_work_count += (item || 0)
this.eight_work_count += (item)
})
}
}
@ -846,10 +861,12 @@ export default {
});
},
async downCallback(page) {
if (loginUser.CORPINFO_ID) {
await this.getWork();
await this.getUserData();
await this.getDeptData();
await this.getSuperviseDeptData();
}
// await this.getMonth();
// await this.getYear();
await this.mescroll.endSuccess();
@ -1044,6 +1061,7 @@ export default {
})
},
getSurveyData() {
if (loginUser.CORPINFO_ID) {
var _this = this;
uni.showLoading({
title: '请稍候'
@ -1075,6 +1093,7 @@ export default {
}
}
});
}
},
getUserId() {
var _this = this;

View File

@ -160,6 +160,8 @@
methods: {
getRedPoint() {
if (loginUser.CORPINFO_ID) {
var _this = this;
uni.showLoading({
title: '请稍候'
@ -229,6 +231,7 @@
}
}
});
}
},
NavChange: function (e) {
this.PageCur = e.currentTarget.dataset.cur

View File

@ -11,17 +11,17 @@
</view>
<view class="login-text">
<text>欢迎使用</text>
<text>秦安安全云平台!</text>
<text>交通运输安全生产综合管理平台!</text>
</view>
</view>
<view class="login-content">
<view class="input-row">
<view class="title">
<text class="">手机号码</text>
<text class="">登录帐号</text>
</view>
<view class="m-input-view">
<input v-model="userName" class="m-input" placeholder-style="color: #5caceb;font-size: 34upx;"
placeholder="请输入手机号..." />
placeholder="请输入身份证号..." />
</view>
</view>
<view class="input-row mt30">
@ -41,9 +41,9 @@
<!-- <navigator class="title" url="/pages/login/forget/forget">
忘记密码
</navigator> -->
<!-- <view class="title">
注册
</view> -->
<navigator class="title" url="/pages/login/register/index">
从业人员注册
</navigator>
</view>
</view>
<view
@ -87,8 +87,8 @@
data() {
return {
noClick: true,
userName: '',
userPwd: '',
userName: '130324198402060224',
userPwd: 'Aa@123456',
radio: ''
}
},
@ -122,12 +122,18 @@
setDeptLevel(res.data.DEPARTMENT_LEVEL);
setloginUser(res.data);
if (loginUser.CORPINFO_ID) {
//
this.handleLoginCheck(res.data.USER_ID).then(() => {
uni.navigateTo({
url: '/pages/index/index',
});
})
} else {
uni.navigateTo({
url: '/pages/index/index',
});
}
}
}
});
@ -209,7 +215,7 @@
// var keydataVal = 'zcloudchina' + userName + ',zy,' + userPwd;
var myreg = /^(((13[0-9]{1})|159)+\d{8})$/;
var myreg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
if (userName == '') {
uni.showToast({
@ -221,7 +227,7 @@
} else if (userName.length != 11 && !myreg.test(userName)) {
uni.showToast({
icon: 'none',
title: '手机号格式不正确',
title: '身份证号格式不正确',
duration: 2000
});
return;
@ -241,7 +247,7 @@
title: '请稍候'
})
uni.request({
url: basePath + '/admin/check',
url: basePath + '/admin/checkPractitioner',
method: 'POST',
dataType: 'json',
header: {
@ -444,7 +450,8 @@
.input-row .title {
color: #8ee6ff;
margin-bottom: 10upx;
margin-top: 10upx;
right: 0;
}
.bar-forget {

View File

@ -0,0 +1,212 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" placeholder="请输入身份证号" maxlength="18" name="input" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">姓名</view>
<input v-model="formData.NAME" placeholder="请输入姓名" maxlength="50" name="input" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" placeholder="请输入手机证号" maxlength="11" name="input" />
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmAccount,'1')"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {
checkIdCard,
validateIdCard, validateMobile
} from '../../../common/tool.js';
export default {
name: "register_account",
props: {
formData: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
noClick: true,
}
},
mounted() {
},
methods: {
//
confirmAccount(e) {
if (this.validateData()) {
this.checkIdCardData()
// const org_birthday = this.formData.USER_ID_CARD.substring(6, 14);
// const org_gender = this.formData.USER_ID_CARD.substring(16, 17);
// const birthday =
// org_birthday.substring(0, 4) +
// "-" +
// org_birthday.substring(4, 6) +
// "-" +
// org_birthday.substring(6, 8);
// const birthdays = new Date(birthday.replace(/-/g, "/"));
// const Month = birthdays.getMonth() + 1;
// let MonthDate;
// const DayDate = birthdays.getDate();
// let Day;
// if (Month < 10) MonthDate = "0" + Month;
// else MonthDate = Month;
// if (DayDate < 10) Day = "0" + DayDate;
// else Day = DayDate;
// this.formData.SEX = org_gender % 2 === 1 ? "1" : "0";
// this.formData.DATE_OF_BIRTH = birthdays.getFullYear() + "-" + MonthDate + "-" + Day;
// this.formData.DRIVER_LICENSE_NO = this.formData.USER_ID_CARD
// this.formData.QUALIFICATION_CERTIFICATE_NO = this.formData.USER_ID_CARD
// // uni.navigateTo({
// // url: '/pages/login/register/baseInfo?'
// // +'NAME='+encodeURIComponent(JSON.stringify(this.formData.NAME.replace('%','%25')))
// // +'&USER_ID_CARD='+ encodeURIComponent(JSON.stringify(this.formData.USER_ID_CARD))
// // +'&PHONE='+ encodeURIComponent(JSON.stringify(this.formData.PHONE))
// // +'&DATE_OF_BIRTH='+ encodeURIComponent(JSON.stringify(this.formData.DATE_OF_BIRTH))
// // +'&SEX='+ encodeURIComponent(JSON.stringify(this.formData.SEX))
// // });
// this.$emit("confirm", '');
}
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (!this.formData.NAME) {
uni.showToast({
icon: 'none',
title: '请输入人员姓名',
duration: 2000
});
return false;
}
//
if (!this.formData.USER_ID_CARD) {
uni.showToast({
icon: 'none',
title: '请输入身份证号',
duration: 2000
});
return false;
}
else if (!validateIdCard(this.formData.USER_ID_CARD)) {
uni.showToast({
icon: 'none',
title: '请输入有效的身份证号',
duration: 2000
});
return false;
}
//
if (!this.formData.PHONE) {
uni.showToast({
icon: 'none',
title: '请输入手机号码',
duration: 2000
});
return false;
}
else if (!validateMobile(this.formData.PHONE)) {
uni.showToast({
icon: 'none',
title: '请输入有效的手机号码',
duration: 2000
});
return false;
}
return true;
},
async checkIdCardData() {
const resData = await checkIdCard({USER_ID_CARD: this.formData.USER_ID_CARD})
if (resData.msg) {
uni.showToast({
icon: 'none',
title: resData.msg,
duration: 2000
})
return false
}
return true
}
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,217 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册-基础信息</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">姓名</view>
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">人员类型</view>
<picker @change="pickerChangeData($event,'PERSONNEL_TYPE')" disabled :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
<view class="picker" style="color: #cccccc">
{{formData.PERSONNEL_TYPENAME?formData.PERSONNEL_TYPENAME:'请选择'}}
</view>
</picker>
</view>
<!-- 入职申请 -->
<uni-section title="入职申请" type="line" class="margin-top" padding>
<view class="cu-form-group margin-top-xs">
<view class="title">入职企业</view>
<zqs-select
:multiple="false"
:list="dictData.APPLY_CORP.list"
:show-search="true"
v-model="formData.APPLY_CORP"
label-key="CORP_NAME"
value-key="CORPINFO_ID"
placeholder="请选择入职企业"
title="选择入职企业"
clearable
@search="searchSelect($event, 'APPLY_CORP')"
@change="changeSelect($event, 'APPLY_CORP')"
></zqs-select>
</view>
</uni-section>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button :loading="buttonloading" :disabled="buttonloading" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(confirmApply)"> </button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {
getLevel, listCorpAll
} from '../../../common/tool.js';
import UniSection from "../../../components/uni-section/components/uni-section/uni-section";
import ZqsSelect from '../../../components/zqs-select/zqs-select.vue'
export default {
name: "register_certificate",
components: {
UniSection, ZqsSelect
},
props: {
formData: {
type: Object,
default: function() {
return {}
}
},
buttonloading: {
type: Boolean,
default: function() {
return false
}
},
},
data() {
return {
noClick: true,
dictData:{
//
PERSONNEL_TYPE:{
index: -1,
list:[],
},
//
APPLY_CORP: {
index: -1,
list:[],
},
}
}
},
mounted() {
this.getDictList()
},
methods: {
async getDictList(){
//
this.dictData.PERSONNEL_TYPE.list = await getLevel({DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e', BIANMA: 'TRAFFIC_EMPLOYMENT_DRIVE'});
//
this.dictData.APPLY_CORP.list = await listCorpAll({ISDELETE: '0'});
this.dictData.APPLY_CORP.tempList = JSON.parse(JSON.stringify(this.dictData.APPLY_CORP.list));
},
//
confirmApply() {
if (this.validateData()) {
this.buttonloading = true
this.$emit("confirm", '');
}
},
searchSelect(e, name) {
console.log('查询事件参数', e)
this.dictData.APPLY_CORP.list = JSON.parse(JSON.stringify(this.dictData.APPLY_CORP.tempList));
if (e) {
this.dictData.APPLY_CORP.list = this.dictData[name].list.filter(item => item.CORP_NAME.indexOf(e) > -1);
}
},
changeSelect(e, name) {
this.$forceUpdate();//
},
pickerChangeData(e,name) {
//
if (name === 'PERSONNEL_TYPE') {
this.dictData.PERSONNEL_TYPE.index = e.detail.value;
this.formData.PERSONNEL_TYPE = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].DICTIONARIES_ID
this.formData.PERSONNEL_TYPENAME = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].NAME
}
this.$forceUpdate();//
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
if (!this.formData.APPLY_CORP) {
uni.showToast({
icon: 'none',
title: '请选择入职企业',
duration: 2000
});
return false;
}
return true;
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,228 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册-基础信息</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">姓名</view>
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">人员类型</view>
<picker @change="pickerChangeData($event,'PERSONNEL_TYPE')" :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
<view class="picker">
{{formData.PERSONNEL_TYPENAME?formData.PERSONNEL_TYPENAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top">
<view class="title">文化程度</view>
<picker @change="pickerChangeData($event,'DEGREE_OF_EDUCATION')" :value="dictData.DEGREE_OF_EDUCATION.index" :range="dictData.DEGREE_OF_EDUCATION.list" range-key="NAME">
<view class="picker">
{{formData.DEGREE_OF_EDUCATIONNAME?formData.DEGREE_OF_EDUCATIONNAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">政治面貌</view>
<picker @change="pickerChangeData($event,'POLITICAL_OUTLOOK')" :value="dictData.POLITICAL_OUTLOOK.index" :range="dictData.POLITICAL_OUTLOOK.list" range-key="NAME">
<view class="picker">
{{formData.POLITICAL_OUTLOOKNAME?formData.POLITICAL_OUTLOOKNAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">参加工作日期</view>
<picker mode="date" @change="changeDate($event,'WORKING_DATE')" :value="formData.WORKING_DATE" :end="limitData.WORKING_DATE.end">
<view class="picker">
{{formData.WORKING_DATE?formData.WORKING_DATE:'请选择'}}
</view>
</picker>
</view>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmBaseInfo)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
</view>
</template>
<script>
import {
formatDate,validateIdCard,validateMobile,getLevel
} from '../../../common/tool.js';
export default {
name: "register_baseInfo",
props: {
formData: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
permissionID:'',
noClick: true,
//
limitData: {
//
WORKING_DATE:{ start: '', end: '' },
},
dictData:{
//
PERSONNEL_TYPE:{
index: -1,
list:[],
},
//
POLITICAL_OUTLOOK:{
index: -1,
list:[],
},
//
DEGREE_OF_EDUCATION:{
index: -1,
list:[],
}
}
}
},
mounted() {
this.getDictList()
this.limitData.WORKING_DATE.end = formatDate(new Date(), 'yyyy-MM-dd'); //
},
methods: {
async getDictList(){
//
this.dictData.PERSONNEL_TYPE.list = await getLevel({DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e', BIANMA: 'TRAFFIC_EMPLOYMENT_DRIVE'});
//
this.dictData.POLITICAL_OUTLOOK.list = await getLevel({DICTIONARIES_ID: '6351efdd12dc4730952e5d195718e252'});
//
this.dictData.DEGREE_OF_EDUCATION.list = await getLevel({DICTIONARIES_ID: 'd7d80f08d73a4accbccf4fd3d8d1d867'});
},
//
confirmBaseInfo() {
if (this.validateData()) {
this.$emit("confirm", '');
}
},
changeDate(e,name) {
this.formData[name] = e.detail.value
this.$forceUpdate();//
},
pickerChangeData(e,name) {
//
if (name === 'PERSONNEL_TYPE') {
this.dictData.PERSONNEL_TYPE.index = e.detail.value;
this.formData.PERSONNEL_TYPE = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].DICTIONARIES_ID
this.formData.PERSONNEL_TYPENAME = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].NAME
}
//
if (name === 'POLITICAL_OUTLOOK') {
this.dictData.POLITICAL_OUTLOOK.index = e.detail.value;
this.formData.POLITICAL_OUTLOOK = this.dictData.POLITICAL_OUTLOOK.list[this.dictData.POLITICAL_OUTLOOK.index].DICTIONARIES_ID
this.formData.POLITICAL_OUTLOOKNAME = this.dictData.POLITICAL_OUTLOOK.list[this.dictData.POLITICAL_OUTLOOK.index].NAME
}
//
if (name === 'DEGREE_OF_EDUCATION') {
this.dictData.DEGREE_OF_EDUCATION.index = e.detail.value;
this.formData.DEGREE_OF_EDUCATION = this.dictData.DEGREE_OF_EDUCATION.list[this.dictData.DEGREE_OF_EDUCATION.index].DICTIONARIES_ID
this.formData.DEGREE_OF_EDUCATIONNAME = this.dictData.DEGREE_OF_EDUCATION.list[this.dictData.DEGREE_OF_EDUCATION.index].NAME
}
this.$forceUpdate();//
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (!this.formData.PERSONNEL_TYPE) {
uni.showToast({
icon: 'none',
title: '请选择人员类型',
duration: 2000
});
return false;
}
return true;
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,799 @@
<template>
<view>
<!-- <cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">从业人员注册-基础信息</block>
</cu-custom>-->
<scroll-view scroll-y="false" >
<view class="form">
<view class="cu-form-group">
<view class="title">姓名</view>
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">身份证号</view>
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">手机</view>
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">人员类型</view>
<picker @change="pickerChangeData($event,'PERSONNEL_TYPE')" disabled :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
<view class="picker" style="color: #cccccc">
{{formData.PERSONNEL_TYPENAME?formData.PERSONNEL_TYPENAME:'请选择'}}
</view>
</picker>
</view>
<!-- 身份证 -->
<uni-section title="身份证" type="line" class="margin-top" padding>
<view class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
身份证正面
</view>
<view class="action">
{{fileData.idCardFront.length}}/1
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.idCardFront" :key="index" @tap="ViewImage($event,'idCardFront')" data-type="0" :data-url="fileData.idCardFront[index].filePath">
<image :src="fileData.idCardFront[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'idCardFront')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','idCardFront')" v-if="fileData.idCardFront.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-bar bg-white margin-top-xs">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
身份证背面
</view>
<view class="action">
{{fileData.idCardBack.length}}/1
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.idCardBack" :key="index" @tap="ViewImage($event,'idCardBack')" data-type="0" :data-url="fileData.idCardBack[index].filePath">
<image :src="fileData.idCardBack[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'idCardBack')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','idCardBack')" v-if="fileData.idCardBack.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">生日</view>
<picker mode="date" @change="changeDate($event,'DATE_OF_BIRTH')" :value="formData.DATE_OF_BIRTH" :end="limitData.DATE_OF_BIRTH.end">
<view class="picker">
{{formData.DATE_OF_BIRTH?formData.DATE_OF_BIRTH:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">民族</view>
<picker @change="pickerChangeData($event,'NATION')" :value="dictData.NATION.index" :range="dictData.NATION.list" range-key="NAME">
<view class="picker">
{{formData.NATIONNAME?formData.NATIONNAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">性别</view>
<picker @change="pickerChangeData($event,'SEX')" :value="dictData.SEX.index" :range="dictData.SEX.list" range-key="NAME">
<view class="picker">
{{formData.SEXNAME?formData.SEXNAME:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期起始</view>
<picker mode="date" @change="changeDate($event,'ID_CARD_VALIDITY_START')" :value="formData.ID_CARD_VALIDITY_START" >
<view class="picker">
{{formData.ID_CARD_VALIDITY_START?formData.ID_CARD_VALIDITY_START:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期截止</view>
<picker mode="date" @change="changeDate($event,'ID_CARD_VALIDITY_END')" :value="formData.ID_CARD_VALIDITY_END" >
<view class="picker">
{{formData.ID_CARD_VALIDITY_END?formData.ID_CARD_VALIDITY_END:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">住址</view>
<textarea maxlength="150" v-model="formData.ID_CARD_ADDRESS" placeholder="请输入身份证住址"></textarea>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">签发机关</view>
<textarea maxlength="150" v-model="formData.ID_CARD_ORGAN" placeholder="请输入身份证签发机关"></textarea>
</view>
</uni-section>
<!-- 驾驶证 -->
<uni-section title="驾驶证" type="line" class="margin-top" padding>
<view class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
驾驶证
</view>
<view class="action">
{{fileData.driverLicense.length}}/1
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.driverLicense" :key="index" @tap="ViewImage($event,'driverLicense')" data-type="0" :data-url="fileData.driverLicense[index].filePath">
<image :src="fileData.driverLicense[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'driverLicense')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','driverLicense')" v-if="fileData.driverLicense.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">驾驶证号</view>
<input v-model="formData.DRIVER_LICENSE_NO" placeholder="请输入驾驶证号" maxlength="18" name="input" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">准驾车型</view>
<zqs-select
:multiple="true"
:list="dictData.DRIVING_MODEL.list"
:show-search="false"
v-model="formData.DRIVING_MODEL"
label-key="NAME"
value-key="DICTIONARIES_ID"
placeholder="请选择准驾车型"
title="选择准驾车型"
clearable
@change="changeSelect($event, 'DRIVING_MODEL')"
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">国籍</view>
<zqs-select
:multiple="false"
:list="dictData.NATIONALITY.list"
:show-search="true"
v-model="formData.DRIVING_NATIONALITY"
label-key="NAME"
value-key="NAME"
placeholder="请选择国籍"
title="选择国籍"
clearable
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">初次领证日期</view>
<picker mode="date" @change="changeDate($event,'DRIVER_LICENSE_ISSUE_DATE')" :value="formData.DRIVER_LICENSE_ISSUE_DATE" >
<view class="picker">
{{formData.DRIVER_LICENSE_ISSUE_DATE?formData.DRIVER_LICENSE_ISSUE_DATE:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期起始</view>
<picker mode="date" @change="changeDate($event,'DRIVER_LICENSE_VALIDITY_START')" :value="formData.DRIVER_LICENSE_VALIDITY_START" >
<view class="picker">
{{formData.DRIVER_LICENSE_VALIDITY_START?formData.DRIVER_LICENSE_VALIDITY_START:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期截止</view>
<picker mode="date" @change="changeDate($event,'DRIVER_LICENSE_VALIDITY_END')" :value="formData.DRIVER_LICENSE_VALIDITY_END" >
<view class="picker">
{{formData.DRIVER_LICENSE_VALIDITY_END?formData.DRIVER_LICENSE_VALIDITY_END:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">签发机关</view>
<textarea maxlength="150" v-model="formData.DRIVER_LICENSE_ORGAN" placeholder="请输入驾驶证签发机关"></textarea>
</view>
</uni-section>
<!-- 道路运输从业人员从业资格证 -->
<uni-section title="道路运输从业人员从业资格证" type="line" class="margin-top" padding>
<view class="cu-bar bg-white margin-top">
<view class="action" style="font-size: 28upx; font-weight: bold; color: #000;">
从业资格证
</view>
<view class="action">
{{fileData.qualificationCertificate.length}}/1
</view>
</view>
<view class="cu-form-group">
<view class="grid col-4 grid-square flex-sub">
<view class="bg-img" v-for="(item,index) in fileData.qualificationCertificate" :key="index" @tap="ViewImage($event,'qualificationCertificate')" data-type="0" :data-url="fileData.qualificationCertificate[index].filePath">
<image :src="fileData.qualificationCertificate[index].filePath" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg($event,'qualificationCertificate')" data-type="0" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap.stop="openAuth('CAMERA','qualificationCertificate')" v-if="fileData.qualificationCertificate.length<1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">从业资格证号</view>
<input v-model="formData.QUALIFICATION_CERTIFICATE_NO" placeholder="请输入从业资格证号" maxlength="18" name="input" />
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">从业资格类别</view>
<zqs-select
:multiple="true"
:list="dictData.QUALIFICATION_CERTIFICATE_CATEGORY.list"
:show-search="false"
v-model="formData.QUALIFICATION_CERTIFICATE_CATEGORY"
label-key="NAME"
value-key="DICTIONARIES_ID"
placeholder="请选择从业资格类别"
title="选择从业资格类别"
clearable
@change="changeSelect($event, 'QUALIFICATION_CERTIFICATE_CATEGORY')"
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">国籍</view>
<zqs-select
:multiple="false"
:list="dictData.NATIONALITY.list"
:show-search="true"
v-model="formData.QUALIFICATION_CERTIFICATE_NATIONALITY"
label-key="NAME"
value-key="NAME"
placeholder="请选择国籍"
title="选择国籍"
clearable
></zqs-select>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">初次领证日期</view>
<picker mode="date" @change="changeDate($event,'QUALIFICATION_CERTIFICATE_ISSUE_DATE')" :value="formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE" >
<view class="picker">
{{formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE?formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期起始</view>
<picker mode="date" @change="changeDate($event,'QUALIFICATION_CERTIFICATE_VALIDITY_START')" :value="formData.QUALIFICATION_CERTIFICATE_VALIDITY_START" >
<view class="picker">
{{formData.QUALIFICATION_CERTIFICATE_VALIDITY_START?formData.QUALIFICATION_CERTIFICATE_VALIDITY_START:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-group margin-top-xs">
<view class="title">有效期截止</view>
<picker mode="date" @change="changeDate($event,'QUALIFICATION_CERTIFICATE_VALIDITY_END')" :value="formData.QUALIFICATION_CERTIFICATE_VALIDITY_END" >
<view class="picker">
{{formData.QUALIFICATION_CERTIFICATE_VALIDITY_END?formData.QUALIFICATION_CERTIFICATE_VALIDITY_END:'请选择'}}
</view>
</picker>
</view>
<view class="cu-form-textarea margin-top-xs">
<view class="cu-form-title">签发机关</view>
<textarea maxlength="150" v-model="formData.QUALIFICATION_CERTIFICATE_ORGAN" placeholder="请输入从业资格证签发机关"></textarea>
</view>
</uni-section>
</view>
<view class="cu-bar btn-group" style="margin-top: 30upx;">
<button class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmCertificate)"></button>
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)"></button>-->
</view>
</scroll-view>
<yk-authpup ref="authpup" type="top" @changeAuth="ChooseImage(0)" :permissionID="permissionID"></yk-authpup>
</view>
</template>
<script>
import {
formatDate, getLevel, getLevelCustom
} from '../../../common/tool.js';
import UniSection from "../../../components/uni-section/components/uni-section/uni-section";
import ZqsSelect from '../../../components/zqs-select/zqs-select.vue'
export default {
name: "register_certificate",
components: {
UniSection, ZqsSelect
},
props: {
formData: {
type: Object,
default: function() {
return {}
}
},
fileData: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
permissionID:'',
noClick: true,
currentFileDataList: '', // list
//
limitData: {
//
DATE_OF_BIRTH:{ start: '', end: '' },
//
ID_CARD_VALIDITY_START:{ start: '', end: '' },
//
ID_CARD_VALIDITY_END:{ start: '', end: '' },
//
DRIVER_LICENSE_ISSUE_DATE:{ start: '', end: '' },
//
DRIVER_LICENSE_VALIDITY_START:{ start: '', end: '' },
//
DRIVER_LICENSE_VALIDITY_END:{ start: '', end: '' },
//
QUALIFICATION_CERTIFICATE_ISSUE_DATE:{ start: '', end: '' },
//
QUALIFICATION_CERTIFICATE_VALIDITY_START:{ start: '', end: '' },
//
QUALIFICATION_CERTIFICATE_VALIDITY_END:{ start: '', end: '' },
},
dictData:{
//
PERSONNEL_TYPE:{
index: -1,
list:[],
},
//
SEX:{
index: -1,
list:[
{ NAME: '男', DICTIONARIES_ID: '1' },
{ NAME: '女', DICTIONARIES_ID: '0' }
],
},
//
NATION:{
index: -1,
list:[],
},
//
DRIVING_MODEL: {
index: -1,
list:[],
},
//
NATIONALITY: {
index: -1,
list:[],
},
//
QUALIFICATION_CERTIFICATE_CATEGORY: {
index: -1,
list:[],
},
//
QUALIFICATION_CERTIFICATE_NATIONALITY: {
index: -1,
list:[],
},
}
}
},
mounted() {
this.getDictList()
var _this = this
let now = new Date();
var birthEnd=now.setFullYear(now.getFullYear()-17);
birthEnd=new Date(birthEnd);
this.limitData.DATE_OF_BIRTH.end = formatDate(birthEnd, 'yyyy-MM-dd'); //
this.dictData.SEX.list.forEach((item, index) => {
if (item.DICTIONARIES_ID === _this.formData.SEX) {
_this.dictData.SEX.index = index;
_this.formData.SEX = _this.dictData.SEX.list[_this.dictData.SEX.index].DICTIONARIES_ID
_this.formData.SEXNAME = _this.dictData.SEX.list[_this.dictData.SEX.index].NAME
}
})
},
methods: {
async getDictList(){
//
this.dictData.PERSONNEL_TYPE.list = await getLevel({DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e', BIANMA: 'TRAFFIC_EMPLOYMENT_DRIVE'});
//
this.dictData.NATION.list = await getLevel({DICTIONARIES_ID: '0a0e406f27f74ee698fe9979d25f62dd'});
//
this.dictData.DRIVING_MODEL.list = await getLevel({DICTIONARIES_ID: 'b41e247057334789b60bdf3fe6d8d6ba'});
//
this.dictData.NATIONALITY.list = await getLevel({DICTIONARIES_ID: '3b614b43e8814f51a3492f2fdbc9a415'});
//
this.dictData.QUALIFICATION_CERTIFICATE_CATEGORY.list = await getLevelCustom({DICTIONARIES_ID: 'ed38fa5f78c64e6d906d2bad0d72bd63', LEVEL: 3});
this.dictData.QUALIFICATION_CERTIFICATE_CATEGORY.list.forEach((item) => {
item.NAME = ''+ item.BIANMA + ' ' + item.NAME
})
},
//
confirmCertificate() {
if (this.validateData()) {
this.$emit("confirm", '');
}
},
changeDate(e,name) {
this.formData[name] = e.detail.value
this.$forceUpdate();//
},
changeSelect(e, name) {
this.$forceUpdate();//
},
pickerChangeData(e,name) {
//
if (name === 'PERSONNEL_TYPE') {
this.dictData.PERSONNEL_TYPE.index = e.detail.value;
this.formData.PERSONNEL_TYPE = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].DICTIONARIES_ID
this.formData.PERSONNEL_TYPENAME = this.dictData.PERSONNEL_TYPE.list[this.dictData.PERSONNEL_TYPE.index].NAME
}
//
if (name === 'SEX') {
this.dictData.SEX.index = e.detail.value;
this.formData.SEX = this.dictData.SEX.list[this.dictData.SEX.index].DICTIONARIES_ID
this.formData.SEXNAME = this.dictData.SEX.list[this.dictData.SEX.index].NAME
}
//
if (name === 'NATION') {
this.dictData.NATION.index = e.detail.value;
this.formData.NATION = this.dictData.NATION.list[this.dictData.NATION.index].DICTIONARIES_ID
this.formData.NATIONNAME = this.dictData.NATION.list[this.dictData.NATION.index].NAME
}
this.$forceUpdate();//
},
openAuth(permissionID, list){
this.permissionID = permissionID;
this.currentFileDataList = list
setTimeout(()=>{
this.$refs['authpup'].open();
},200)
},
//
ChooseImage(e) {
var _this = this;
var ss=1-this.fileData[this.currentFileDataList].length;
uni.chooseImage({
count: ss, //9
sizeType: ['original', 'compressed'], //
sourceType: ['camera','album'], //
success: (res) => {
if(e==0) {
for (let i = 0; i < res.tempFilePaths.length; i++) {
let img={};
img.id='';
img.filePath=res.tempFilePaths[i];
this.fileData[this.currentFileDataList].push(img)
}
}
}
});
},
ViewImage(e,list) {
console.info(e.currentTarget.dataset.type)
let files =[];
if(e.currentTarget.dataset.type==0) {
for(var i=0;i<this.fileData[list].length;i++){
files.push(this.fileData[list][i].filePath)
}
}else{
let files =[];
for(var i=0;i<this.fileData[list].length;i++){
files.push(this.fileData[list][i].filePath)
}
}
uni.previewImage({
urls: files,
current: e.currentTarget.dataset.url
});
},
DelImg(e, list) {
var _this = this;
let i=e.currentTarget.dataset.index
uni.showModal({
title: '操作提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
if(e.currentTarget.dataset.type==0) {
if(_this.formData.USER_ID) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/imgfiles/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
list: '',
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.fileData[list].splice(i, 1)
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}else {
this.fileData[list].splice(e.currentTarget.dataset.index, 1)
}
}
}
}
})
},
goback(){
var pages = getCurrentPages(); //
var prePage = pages[pages.length - 2]; //
prePage.$vm.initflag = true; // A init true
uni.navigateBack({delta: 1});
uni.hideLoading();
},
validateData() {
//
if (this.fileData.idCardFront.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(正面)',
duration: 2000
});
return false;
}
if (this.fileData.idCardBack.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(背面)',
duration: 2000
});
return false;
}
if (!this.formData.DATE_OF_BIRTH) {
uni.showToast({
icon: 'none',
title: '请选择生日',
duration: 2000
});
return false;
}
if (!this.formData.NATION) {
uni.showToast({
icon: 'none',
title: '请选择民族',
duration: 2000
});
return false;
}
if (!this.formData.SEX) {
uni.showToast({
icon: 'none',
title: '请选择性别',
duration: 2000
});
return false;
}
if (!this.formData.ID_CARD_VALIDITY_START || !this.formData.ID_CARD_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择身份证有效期时间',
duration: 2000
});
return false;
}
if (!this.formData.ID_CARD_ADDRESS) {
uni.showToast({
icon: 'none',
title: '请输入住址信息',
duration: 2000
});
return false;
}
if (!this.formData.ID_CARD_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入身份证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.driverLicense.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传驾驶证照片',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_NO) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证号',
duration: 2000
});
return false;
}
if (this.formData.DRIVING_MODEL.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择准驾车型',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_VALIDITY_START || !this.formData.DRIVER_LICENSE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择驾驶证有效期时间',
duration: 2000
});
return false;
}
if (!this.formData.DRIVER_LICENSE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.qualificationCertificate.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传从业资格证照片',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_NO) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证号',
duration: 2000
});
return false;
}
if (this.formData.QUALIFICATION_CERTIFICATE_CATEGORY.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证类别',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_VALIDITY_START || !this.formData.QUALIFICATION_CERTIFICATE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证有效期时间',
duration: 2000
});
return false;
}
if (!this.formData.QUALIFICATION_CERTIFICATE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证的签发机关',
duration: 2000
});
return false;
}
return true;
},
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -0,0 +1,562 @@
<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true" :backUrl="backUrl">
<block slot="backText">返回</block>
<block slot="content">从业人员注册</block>
</cu-custom>
<view class="top-fixed">
<scroll-view scroll-x class="bg-white nav" scroll-with-animation :scroll-left="scrollLeft">
<view class="flex text-center">
<view class="cu-item flex-sub" :disabled="isFirst && index > 0" :class="index === TabCur?'text-blue cur':''" v-for="(item,index) in tabNav" :key="index" @tap="tabSelect" :data-id="index">
{{tabNav[index]}}
</view>
</view>
</scroll-view>
<view class="line"></view>
</view>
<block v-if="TabCur==0">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<Account ref="account" :formData="form" @confirm="goToNext($event,1)"></Account>
</scroll-view>
</block>
<block v-if="TabCur==1">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<base-info ref="baseInfo" :formData="form" @confirm="goToNext($event,2)"></base-info>
</scroll-view>
</block>
<block v-if="TabCur==2">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<Certificate ref="certificate" :formData="form" :fileData="fileData" @confirm="goToNext($event,3)"></Certificate>
</scroll-view>
</block>
<block v-if="TabCur==3">
<scroll-view class="dy-scroll-nobg" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<apply ref="apply" :formData="form" :buttonloading="buttonloading" @confirm="submitRegister($event)"></apply>
</scroll-view>
</block>
</view>
</template>
<script>
import {
basePath, validateIdCard, validateMobile
} from '../../../common/tool.js';
import Account from "./account.vue"
import BaseInfo from "./baseInfo.vue"
import Certificate from "./certificate.vue"
import Apply from "./apply.vue"
export default {
components: {
Account, BaseInfo, Certificate, Apply
},
data() {
return {
backUrl: 'returnLogin',
isFirst: true,
noClick: true,
buttonloading: false,
sTop:0,
totalHeight:0,
TabCur: 0,
scrollLeft: 0,
tabNav: ['注册信息', '基础信息', '资格证照', '入职申请'],
fileData: {
//
idCardFront: [],
//
idCardBack: [],
//
driverLicense: [],
//
qualificationCertificate: [],
},
form: {
USER_ID: '',
//
NAME: '王',
//
USER_ID_CARD: '130324198402060224',
//
PHONE: '13091370001',
//
DATE_OF_BIRTH: '',
//
SEX: '',
SEXNAME: '',
//
PERSONNEL_TYPE: '',
PERSONNEL_TYPENAME: '',
//
POLITICAL_OUTLOOK: '',
POLITICAL_OUTLOOKNAME: '',
//
DEGREE_OF_EDUCATION: '',
DEGREE_OF_EDUCATIONNAME: '',
//
WORKING_DATE: '',
//
ID_CARD_FRONT: '',
ID_CARD_BACK: '',
//
ID_CARD_VALIDITY_START: '2019-03-13',
ID_CARD_VALIDITY_END: '2039-03-13',
//
ID_CARD_ADDRESS: '住址',
//
ID_CARD_ORGAN: '身份证签发机关',
//
NATION: '',
NATIONNAME: '',
//
DRIVER_LICENSE: '',
//
DRIVER_LICENSE_NO: '',
//
DRIVING_MODEL: [],
//
DRIVING_NATIONALITY: '中国',
//
DRIVER_LICENSE_ISSUE_DATE: '2010-03-13',
//
DRIVER_LICENSE_VALIDITY_START: '2015-03-13',
//
DRIVER_LICENSE_VALIDITY_END: '2025-03-13',
//
DRIVER_LICENSE_ORGAN: '驾驶证签发机关',
//
QUALIFICATION_CERTIFICATE: '',
//
QUALIFICATION_CERTIFICATE_NO: '',
//
QUALIFICATION_CERTIFICATE_CATEGORY: [],
//
QUALIFICATION_CERTIFICATE_NATIONALITY: '中国',
//
QUALIFICATION_CERTIFICATE_ISSUE_DATE: '2011-03-13',
//
QUALIFICATION_CERTIFICATE_VALIDITY_START: '2023-03-13',
//
QUALIFICATION_CERTIFICATE_VALIDITY_END: '2029-03-13',
//
QUALIFICATION_CERTIFICATE_ORGAN: '从业资格证签发机关',
//
APPLY_CORP: '',
ROLE_ID: '',
CARDNO: '',
DEPARTMENT_ID: '',
POST_ID: '',
USERNAME: '',
SORT: '',
EMAIL: '',
SHIFTDUTYONE: '',
SHIFTDUTYTWO: '',
periodStr: '',
BZ: '',
IS_SAFETY: 0,
ISHEAD: '0',
ISLEADER: '0',
ISSTUDENT: 'true',
DUTIES: '',
TITLE: '',
TYPE_OF_WORK: '',
INCUMBENCY: '',
faceFile: [],
userCerFile: [],
//
ENTRY_DATE: '',
}
}
},
onReady() {
let that=this;
let CustomBar = this.CustomBar;
uni.getSystemInfo({ //uni-app
success(res) { //
let titleH=uni.createSelectorQuery().select(".top-fixed"); //class/id
titleH.boundingClientRect(data=>{
that._data.sTop=data.height //=-data.top
that.totalHeight = data.height+CustomBar
}).exec()
}
})
},
methods: {
tabSelect(e) {
if (this.isFirst) {
uni.showToast({
icon: 'none',
title: '请先完成注册信息填写,然后点击下一步',
duration: 2000
});
return false;
} else {
this.TabCur = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
}
},
//
goToNext(e, tabCur) {
this.TabCur = tabCur
this.isFirst = false
},
submitRegister() {
if (this.validateData()) {
uni.showLoading({
title:"数据提交中..."
});//
var _this = this
const formData={}
Object.keys(this.form).map(key => {
formData[key]=this.form[key]
})
//
formData.DRIVING_MODEL = formData.DRIVING_MODEL.join(",")
//
formData.QUALIFICATION_CERTIFICATE_CATEGORY = formData.QUALIFICATION_CERTIFICATE_CATEGORY.join(",")
var files = [];
var img = {}
img.name = 'file0'
img.uri = this.fileData.idCardFront[0].filePath
files.push(img)
img = {}
img.name = 'file1'
img.uri = this.fileData.idCardBack[0].filePath
files.push(img)
img = {}
img.name = 'file2'
img.uri = this.fileData.driverLicense[0].filePath
files.push(img)
img = {}
img.name = 'file3'
img.uri = this.fileData.qualificationCertificate[0].filePath
files.push(img)
console.log(formData)
uni.uploadFile({
url: basePath+'app/user/setPractitionerRegister',
files: files,
formData:formData,
success: (res) => {
this.buttonloading = false
uni.hideLoading();//
uni.showToast({
icon:'none',
title: '注册成功',
duration: 2000
});
uni.navigateTo({
url: '/pages/login/home',
});
},
fail: (err) => {
this.buttonloading = false
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}
},
validateData() {
//
if (!this.form.NAME) {
uni.showToast({
icon: 'none',
title: '请输入人员姓名',
duration: 2000
});
return false;
}
//
if (!this.form.USER_ID_CARD) {
uni.showToast({
icon: 'none',
title: '请输入身份证号',
duration: 2000
});
return false;
}
else if (!validateIdCard(this.form.USER_ID_CARD)) {
uni.showToast({
icon: 'none',
title: '请输入有效的身份证号',
duration: 2000
});
return false;
}
//
if (!this.form.PHONE) {
uni.showToast({
icon: 'none',
title: '请输入手机号码',
duration: 2000
});
return false;
}
else if (!validateMobile(this.form.PHONE)) {
uni.showToast({
icon: 'none',
title: '请输入有效的手机号码',
duration: 2000
});
return false;
}
//
if (!this.form.PERSONNEL_TYPE) {
uni.showToast({
icon: 'none',
title: '请选择人员类型',
duration: 2000
});
return false;
}
//
if (this.fileData.idCardFront.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(正面)',
duration: 2000
});
return false;
}
if (this.fileData.idCardBack.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传身份证照片(背面)',
duration: 2000
});
return false;
}
if (!this.form.DATE_OF_BIRTH) {
uni.showToast({
icon: 'none',
title: '请选择生日',
duration: 2000
});
return false;
}
if (!this.form.NATION) {
uni.showToast({
icon: 'none',
title: '请选择民族',
duration: 2000
});
return false;
}
if (!this.form.SEX) {
uni.showToast({
icon: 'none',
title: '请选择性别',
duration: 2000
});
return false;
}
if (!this.form.ID_CARD_VALIDITY_START || !this.form.ID_CARD_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择身份证有效期时间',
duration: 2000
});
return false;
}
if (!this.form.ID_CARD_ADDRESS) {
uni.showToast({
icon: 'none',
title: '请输入住址信息',
duration: 2000
});
return false;
}
if (!this.form.ID_CARD_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入身份证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.driverLicense.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传驾驶证照片',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_NO) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证号',
duration: 2000
});
return false;
}
if (this.form.DRIVING_MODEL.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择准驾车型',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_VALIDITY_START || !this.form.DRIVER_LICENSE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择驾驶证有效期时间',
duration: 2000
});
return false;
}
if (!this.form.DRIVER_LICENSE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入驾驶证的签发机关',
duration: 2000
});
return false;
}
//
if (this.fileData.qualificationCertificate.length < 1) {
uni.showToast({
icon: 'none',
title: '请上传从业资格证照片',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_NO) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证号',
duration: 2000
});
return false;
}
if (this.form.QUALIFICATION_CERTIFICATE_CATEGORY.length < 1) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证类别',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_ISSUE_DATE) {
uni.showToast({
icon: 'none',
title: '请选择初次领证日期',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_VALIDITY_START || !this.form.QUALIFICATION_CERTIFICATE_VALIDITY_END) {
uni.showToast({
icon: 'none',
title: '请选择从业资格证有效期时间',
duration: 2000
});
return false;
}
if (!this.form.QUALIFICATION_CERTIFICATE_ORGAN) {
uni.showToast({
icon: 'none',
title: '请输入从业资格证的签发机关',
duration: 2000
});
return false;
}
if (!this.form.APPLY_CORP) {
uni.showToast({
icon: 'none',
title: '请选择入职企业',
duration: 2000
});
return false;
}
return true;
}
}
}
</script>
<style>
page{
background-color: #f3f2f2;
}
.prevent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
overflow: hidden;
}
.cu-form-title{
padding: 20upx 0;
}
.cu-form-textarea{
background-color: #ffffff;
padding: 1upx 30upx 20upx;
min-height: 100upx;
}
.cu-form-textarea textarea {
height: 4.6em;
width: 100%;
line-height: 1.2em;
flex: 1;
font-size: 28upx;
padding: 0;
}
.selected{
display: flex;
align-items: center;
height: 100upx;
}
.selected .radio{
transform:scale(0.8);
margin-right: 10upx;
}
.group{
display: flex;
align-items: center;
}
.cu-form-group .title{
font-size: 28upx;
font-weight: bold;
}
.cu-bar .action:first-child {
font-size: 28upx;
}
.cu-form-group .picker{
color: #808080;
}
.picker-tree{
color: #808080;
}
</style>

View File

@ -259,7 +259,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor:"#000000",
cancelText: '取消',

View File

@ -8,7 +8,7 @@
<view class="right">
<view class="f30 text-bold">{{loginUser.NAME}}</view>
<view class="mt10">
<text class="text-grey">手机</text>
<text class="text-grey"></text>
<text class="text-grey">{{loginUser.USERNAME}}</text>
</view>
</view>

View File

@ -289,7 +289,7 @@
title: '请稍候'
})
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要提交申请么?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -314,7 +314,7 @@
title: '请稍候'
})
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要提交么?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -268,7 +268,7 @@ export default {
}
var _this = this;
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要提交么?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -369,7 +369,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -400,7 +400,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -326,7 +326,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',

View File

@ -350,7 +350,7 @@
},
DelImg(e) {
uni.showModal({
title: '双控平台',
title: '温馨提示',
content: '确定要删除这张图片吗?',
cancelColor: "#000000",
cancelText: '取消',