Browse Source

转正申请

sunlupeng 1 year ago
parent
commit
c37c567394

+ 7 - 0
api/system/user.js

@@ -50,3 +50,10 @@ export function uploadFile(data) {
   })
 }
 
+//获得员工信息根据id
+export function getEmployeeInfo(id) {
+  return request({
+    url: '/personnel/employee/get?id=' + id,
+    method: 'get'
+  })
+}

+ 15 - 18
pages/oa/conversion/detail.vue

@@ -1,8 +1,8 @@
 <template>
 	<view class="container">
-		<uni-forms ref="form" :model="form" labelWidth="80px" :label-position="alignment">
-			<uni-forms-item label="入职人">
-				<uni-easyinput v-model="form.entryName" disabled />
+		<uni-forms ref="form" :model="form" labelWidth="120px" :label-position="alignment">
+			<uni-forms-item label="转正人">
+				<uni-easyinput v-model="form.employeeName" disabled />
 			</uni-forms-item>
 			<uni-forms-item label="部门">
 				<uni-easyinput v-model="form.deptName" disabled />
@@ -10,26 +10,23 @@
 			<uni-forms-item label="职位">
 				<uni-easyinput v-model="form.position" disabled />
 			</uni-forms-item>
-			<uni-forms-item label="员工类型">
-				<uni-easyinput v-model="form.employeeTypeDesc" disabled />
+			<uni-forms-item label="手机号">
+				<uni-easyinput v-model="form.employeePhone" disabled />
 			</uni-forms-item>
-			<uni-forms-item label="性别">
-				<uni-easyinput v-model="form.gender" disabled />
+			<uni-forms-item label="入职日期">
+				<uni-easyinput v-model="form.entryDate" disabled />
 			</uni-forms-item>
-			<uni-forms-item label="出生日期">
-				<uni-easyinput v-model="form.birthday" disabled />
+			<uni-forms-item label="试用期结束日期">
+				<uni-easyinput v-model="form.probationEndDate" disabled />
 			</uni-forms-item>
-			<uni-forms-item label="联系电话">
-				<uni-easyinput v-model="form.contactNumber" disabled />
+			<uni-forms-item label="转正日期">
+				<uni-easyinput v-model="form.conversionDate" disabled />
 			</uni-forms-item>
-			<uni-forms-item label="电子邮箱">
-				<uni-easyinput v-model="form.email" disabled />
+			<uni-forms-item label="转正理由">
+				<uni-easyinput autoHeight type="textarea" v-model="form.conversionReason" disabled />
 			</uni-forms-item>
-			<uni-forms-item label="教育背景">
-				<uni-easyinput autoHeight type="textarea" v-model="form.education" disabled />
-			</uni-forms-item>
-			<uni-forms-item label="工作经验">
-				<uni-easyinput autoHeight type="textarea" v-model="form.workExperience" disabled />
+			<uni-forms-item label="工作总结">
+				<uni-easyinput autoHeight type="textarea" v-model="form.workSummary" disabled />
 			</uni-forms-item>
 			<uni-forms-item label="附件">
 				<view class="upload-wrap">

+ 60 - 88
pages/oa/conversion/edit.vue

@@ -1,43 +1,32 @@
 <template>
 	<view class="container">
-		<uni-forms ref="form" :rules="rules" :model="form" labelWidth="80px" :label-position="alignment">
-			<uni-forms-item label="入职人" required name="entryName">
-				<uni-easyinput v-model="form.entryName" placeholder="请输入"/>
+		<uni-forms ref="form" :rules="rules" :model="form" labelWidth="120px" :label-position="alignment">
+			<uni-forms-item label="转正人" required name="employeeName">
+				<uni-easyinput v-model="form.employeeName" placeholder="点击选择" :clearable="false" @click.native="gotochooseUser('single')"/>
 			</uni-forms-item>
-			<uni-forms-item label="部门" required name="deptId">
-				<uni-data-select v-model="form.deptId" :localdata="deptOptions">
-				</uni-data-select>
+			<uni-forms-item label="部门">
+				<uni-easyinput v-model="form.deptName" disabled/>
 			</uni-forms-item>
-			<uni-forms-item label="职位" required name="postId">
-				<uni-data-select v-model="form.postId" :localdata="postOptions">
-				</uni-data-select>
+			<uni-forms-item label="职位">
+				<uni-easyinput v-model="form.position" disabled/>
 			</uni-forms-item>
-			<uni-forms-item label="员工类型" required name="employeeType">
-				<uni-data-select v-model="form.employeeType" :localdata="employeeTypeListOpen">
-				</uni-data-select>
+			<uni-forms-item label="手机号">
+				<uni-easyinput v-model="form.employeePhone" disabled/>
 			</uni-forms-item>
-			<uni-forms-item label="性别" required name="gender">
-				<uni-data-select v-model="form.gender" :localdata="userSexList">
-				</uni-data-select>
+			<uni-forms-item label="入职日期">
+				<uni-easyinput v-model="form.entryDate" disabled/>
 			</uni-forms-item>
-			<uni-forms-item label="出生日期" required name="birthday">
-				<uni-datetime-picker type="date" v-model="form.birthday"/>
+			<uni-forms-item label="试用期结束日期">
+				<uni-easyinput v-model="form.probationEndDate" disabled/>
 			</uni-forms-item>
-			
-			<uni-forms-item label="联系电话" required name="contactNumber">
-				<uni-easyinput v-model="form.contactNumber" placeholder="请输入"/>
+			<uni-forms-item label="转正日期" required name="conversionDate">
+				<uni-datetime-picker type="date" v-model="form.conversionDate"/>
 			</uni-forms-item>
-			<uni-forms-item label="电子邮箱" required name="email">
-				<uni-easyinput v-model="form.email" placeholder="请输入"/>
+			<uni-forms-item label="转正理由" required name="conversionReason">
+				<uni-easyinput maxlength="20" type="textarea" v-model="form.conversionReason" placeholder="请输入" />
 			</uni-forms-item>
-			<uni-forms-item label="教育背景">
-				<uni-easyinput maxlength="50" type="textarea" v-model="form.education" placeholder="请输入" />
-			</uni-forms-item>
-			<uni-forms-item label="工作经验">
-				<uni-easyinput maxlength="200" type="textarea" v-model="form.workExperience" placeholder="请输入" />
-			</uni-forms-item>
-			<uni-forms-item label="入职日期" required name="entryDate">
-				<uni-datetime-picker type="date" v-model="form.entryDate"/>
+			<uni-forms-item label="工作总结">
+				<uni-easyinput maxlength="200" type="textarea" v-model="form.workSummary" placeholder="请输入" />
 			</uni-forms-item>
 			<uni-forms-item label="附件">
 				<view class="upload-wrap">
@@ -62,7 +51,7 @@
 			<uni-forms-item label="审批人" required name="peopleList">
 				<uni-easyinput v-model="form.peopleList" style="display: none;" />
 				<view style="display: flex;justify-content: flex-start;align-items: center;">
-					<uni-icons type="folder-add" size="40" @click="gotochooseUser"></uni-icons>
+					<uni-icons type="folder-add" size="40" @click="gotochooseUser('multiple')"></uni-icons>
 					<view style="display: flex;justify-content: flex-start;align-items: center;"
 						v-for="(tag, index) in nikeNamelist" :key="index">
 						<uni-icons type="right" size="20"></uni-icons>
@@ -87,7 +76,7 @@
 		<view class="button-group" v-else>
 			<button type="primary" size="mini" @click="submit('form')">提交</button>
 			<button type="default" size="mini" @click="onSave()">暂存</button>
-			<button type="danger" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
+			<button type="warn" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
 		</view>
 
 		<view>
@@ -98,7 +87,7 @@
 						<uni-icons type="closeempty" size="20" @click="popupClose"></uni-icons>
 					</view>
 					<view class="popup-content">
-						<pople-Select type="multiple" @submit="submitPeople" ref="popleSelect"></pople-Select>
+						<pople-Select :type="popleSelectType" @submit="submitPeople" ref="popleSelect"></pople-Select>
 					</view>
 				</view>
 
@@ -118,7 +107,8 @@
 	} from "@/api/oa/conversion.js"
 	import {getDicts,getOpenDicts,listSimplePosts,listSimpleDepts } from "@/api/system/dict.js";
 	import {
-		uploadFile
+		uploadFile,
+		getEmployeeInfo
 	} from "@/api/system/user"
 	import popleSelect from '../../popleSelect/choose.vue'
 	export default {
@@ -137,12 +127,12 @@
 		},
 		data() {
 			return {
+				popleSelectType: 'single',
 				deptOptions:[],
 				postOptions:[],
 				employeeTypeListOpen:[],
 				userSexList:[],
 				tasks: [],
-				userInfo: uni.getStorageSync('userInfo'),
 				alignment: 'top',
 				uploadOptions: {},
 				fileList: [],
@@ -153,77 +143,40 @@
 				nikeNamelist: [],
 				// 表单数据
 				form: {
-					entryName: undefined,
-					deptId: undefined,
-					postId: undefined,
-					employeeType: undefined,
-					gender: undefined,
-					birthday: undefined,
-					contactNumber: undefined,
-					email: undefined,
-					education: undefined,
-					workExperience: undefined,
+					employeeName: undefined,
+					employeeId: undefined,
+					deptName: undefined,
+					position: undefined,
+					employeePhone: undefined,
 					entryDate: undefined,
+					probationEndDate: undefined,
+					conversionDate: undefined,
+					conversionReason: undefined,
+					workSummary: undefined,
 					fileIdList: undefined,
 					remarks: undefined,
 					peopleList: '',
 				},
 				// 校验规则
 				rules: {
-					entryName: {
-						rules: [{
-							required: true,
-							errorMessage: '请输入'
-						}, ]
-					},
-					deptId: {
-						rules: [{
-							required: true,
-							errorMessage: '请选择'
-						}, ]
-					},
-					postId: {
-						rules: [{
-							required: true,
-							errorMessage: '请选择'
-						}, ]
-					},
-					employeeType: {
-						rules: [{
-							required: true,
-							errorMessage: '请选择'
-						}, ]
-					},
-					gender: {
+					employeeName: {
 						rules: [{
 							required: true,
 							errorMessage: '请选择'
 						}, ]
 					},
-					birthday: {
+					conversionDate: {
 						rules: [{
 							required: true,
 							errorMessage: '请选择'
 						}, ]
 					},
-					contactNumber: {
-						rules: [{
-							required: true,
-							errorMessage: '请输入'
-						}, ]
-					},
-					email: {
+					conversionReason: {
 						rules: [{
 							required: true,
 							errorMessage: '请输入'
 						}, ]
 					},
-					entryDate: {
-						rules: [{
-							required: true,
-							errorMessage: '请选择'
-						}, ]
-					},
 					peopleList: {
 						rules: [{
 							required: true,
@@ -323,17 +276,36 @@
 				peopleList.splice(index, 1);
 				this.form.peopleList = peopleList.join(',');
 			},
+			getEmployee() {
+				getEmployeeInfo(this.form.employeeId).then(response => {
+					let employeeInfo = response.data;
+					this.form.deptName = employeeInfo.deptName;
+					this.form.position = employeeInfo.position;
+					this.form.employeePhone = employeeInfo.phone;
+					this.form.entryDate = employeeInfo.entryDate;
+					this.form.probationEndDate = employeeInfo.probationEndDate;
+				});
+			},
 			submitPeople(userList, nikeNamelist, userIdList) {
 				console.log(userList);
 				console.log(userIdList);
-				this.nikeNamelist = nikeNamelist;
-				this.form.peopleList = userIdList.join(',');
-				this.$refs.popup.close();
+				if(this.popleSelectType=='multiple'){
+					this.nikeNamelist = nikeNamelist;
+					this.form.peopleList = userIdList.join(',');
+					this.$refs.popup.close();
+				}else{
+					this.form.employeeName = nikeNamelist.join();
+					this.form.employeeId = userIdList.join();
+					this.getEmployee();
+					this.$refs.popup.close();
+				}
+				
 			},
 			popupClose() {
 				this.$refs.popup.close();
 			},
-			gotochooseUser() {
+			gotochooseUser(type) {
+				this.popleSelectType = type;
 				this.$refs.popup.open('bottom');
 				setTimeout(() => {
 					this.$refs.popleSelect.getInfoData();

+ 6 - 6
pages/oa/conversion/index.vue

@@ -45,7 +45,7 @@
 				id:'',
 				status:'',
 				initIndex: 0,
-				employeeName:'',
+				searchStr:'',
 				pageNo: 1,
 				pageSize: 10,
 				horizontal: 'right',
@@ -69,22 +69,22 @@
 							
 			},
 			search(res) {
-				this.employeeName = res.value;
+				this.searchStr = res.value;
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			clear(res) {
-				this.employeeName = '';
+				this.searchStr = '';
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			blur(res) {
-				this.employeeName = res.value;
+				this.searchStr = res.value;
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			cancel(res) {
-				this.employeeName = '';
+				this.searchStr = '';
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
@@ -106,7 +106,7 @@
 			 */
 			getList(page,done){
 				if(this.initIndex==1){
-					getListData({pageNo:page,pageSize: this.pageSize,employeeName:this.employeeName}).then(response => {
+					getListData({pageNo:page,pageSize: this.pageSize,str:this.searchStr}).then(response => {
 						let dataList = response.data.list;
 						let list = []
 						dataList.forEach(v => {

+ 1 - 1
pages/oa/entry/edit.vue

@@ -87,7 +87,7 @@
 		<view class="button-group" v-else>
 			<button type="primary" size="mini" @click="submit('form')">提交</button>
 			<button type="default" size="mini" @click="onSave()">暂存</button>
-			<button type="danger" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
+			<button type="warn" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
 		</view>
 
 		<view>

+ 6 - 6
pages/oa/entry/index.vue

@@ -45,7 +45,7 @@
 				id:'',
 				status:'',
 				initIndex: 0,
-				employeeName:'',
+				searchStr:'',
 				pageNo: 1,
 				pageSize: 10,
 				horizontal: 'right',
@@ -69,22 +69,22 @@
 							
 			},
 			search(res) {
-				this.employeeName = res.value;
+				this.searchStr = res.value;
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			clear(res) {
-				this.employeeName = '';
+				this.searchStr = '';
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			blur(res) {
-				this.employeeName = res.value;
+				this.searchStr = res.value;
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			cancel(res) {
-				this.employeeName = '';
+				this.searchStr = '';
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
@@ -106,7 +106,7 @@
 			 */
 			getList(page,done){
 				if(this.initIndex==1){
-					getListData({pageNo:page,pageSize: this.pageSize,employeeName:this.employeeName}).then(response => {
+					getListData({pageNo:page,pageSize: this.pageSize,str:this.searchStr}).then(response => {
 						let dataList = response.data.list;
 						let list = []
 						dataList.forEach(v => {

+ 1 - 1
pages/oa/universal/edit.vue

@@ -67,7 +67,7 @@
 		<view class="button-group" v-else>
 			<button type="primary" size="mini" @click="submit('form')">提交</button>
 			<button type="default" size="mini" @click="onSave()">暂存</button>
-			<button type="danger" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
+			<button type="warn" size="mini" @click="onDelete()" v-if="form.auditStatus == 0">删除</button>
 		</view>
 
 		<view>

+ 6 - 6
pages/oa/universal/index.vue

@@ -45,7 +45,7 @@
 				id:'',
 				status:'',
 				initIndex: 0,
-				employeeName:'',
+				searchStr:'',
 				pageNo: 1,
 				pageSize: 10,
 				horizontal: 'right',
@@ -69,22 +69,22 @@
 							
 			},
 			search(res) {
-				this.employeeName = res.value;
+				this.searchStr = res.value;
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			clear(res) {
-				this.employeeName = '';
+				this.searchStr = '';
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			blur(res) {
-				this.employeeName = res.value;
+				this.searchStr = res.value;
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
 			cancel(res) {
-				this.employeeName = '';
+				this.searchStr = '';
 				this.page = 1;
 				this.getList(this.page,this.__pulldone)
 			},
@@ -106,7 +106,7 @@
 			 */
 			getList(page,done){
 				if(this.initIndex==1){
-					getListData({pageNo:page,pageSize: this.pageSize,str:this.employeeName}).then(response => {
+					getListData({pageNo:page,pageSize: this.pageSize,str:this.searchStr}).then(response => {
 						let dataList = response.data.list;
 						let list = []
 						dataList.forEach(v => {