|                                                                                                                                                                                                                                                                                                                                    |  | <template>	<view>		<u--form labelPosition="left" :model="form" :rules="rules" ref="uForm" labelWidth="80">			<view class="se-p-20">				<view class="se-p-20 se-bgc-white se-br-10 se-fs-20">					<u-form-item label="姓名" prop="name">						<u--input v-model="form.name" class="se-bgc-f5" placeholder="请输入姓名名称"></u--input>					</u-form-item>					<!-- <u-form-item label="密码" prop="password">						<u--input v-model="form.password" class="se-bgc-f5" placeholder="请输入您的密码"></u--input>					</u-form-item> -->					<u-form-item label="联系电话" prop="mobile">						<u--input v-model="form.mobile" class="se-bgc-f5" placeholder="请输入联系方式"></u--input>					</u-form-item>					<u-form-item label="年龄" prop="age">						<u--input v-model="form.age" class="se-bgc-f5" placeholder="请输入年龄"></u--input>					</u-form-item>					<u-form-item label="民族" prop="nation">						<u--input v-model="form.nation" class="se-bgc-f5" placeholder="请输入民族"></u--input>					</u-form-item>															<u-form-item label="地址" prop="address">						<u--input v-model="form.address" class="se-bgc-f5" placeholder="请输入地址"></u--input>					</u-form-item>					<u-form-item label="性别" prop="sex" @click="handleSexChange">						<u--input @click="handleSexChange" readonly v-model="form.sex" placeholder="请选择性别"							border="none"></u--input>						<u-icon @click="handleSexChange" slot="right" name="arrow-right"></u-icon>					</u-form-item>					<u-form-item label="工种" prop="industryId" @click="handleIndChange">						<u--input v-model="form.industryName" readonly placeholder="请选择工种" border="none"></u--input>						<u-icon slot="right" name="arrow-right"></u-icon>					</u-form-item>					<u-form-item label="薪资待遇" prop="salary">						<view class="se-flex se-flex-h-c">							<u--input v-model="form.salaryMin" class="se-w-200" placeholder="最小值"></u--input>							<text class="se-mx-10">~</text>							<u--input v-model="form.salaryMax" class="se-w-200" placeholder="最大值"></u--input>						</view>					</u-form-item>					<u-form-item label="个人介绍" prop="introduce">						<u--textarea v-model="form.introduce" height="100" count maxlength="300" class="se-bgc-f5"							placeholder="请选择个人介绍"></u--textarea>					</u-form-item>				</view>			</view>			<view class="se-p-20">				<view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">					<u-form-item prop="idCardFile" labelWidth="2">						<view class="se-flex se-flex-v-sa">							<view class="se-py-20 se-w-p-100 se-flex">								<view class="line-orange"></view>								<view class="se-ml-10">									个人照片								</view>							</view>							<view class="se-py-20 se-w-p-100">								<u-upload :fileList="form.idCardFile" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="10"></u-upload>							</view>						</view>					</u-form-item>				</view>			</view>			<view class="se-px-20 se-pt-20">				<view class="se-px-20 se-pb-80 se-fs-20 se-flex">					<view @click="submit" class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-28 se-c-white se-bgc-orange">						<text>保存</text>					</view>					<!-- <view						class="se-mx-10 se-flex-1 se-b se-br-40 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-28 se-c-66 se-bgc-f5">						<text>联系我们</text>					</view> -->				</view>			</view>		</u--form>		<!-- 性别 -->		<u-action-sheet :show="showSex" :actions="sexList" title="请选择性别" @close="showSex = false" @select="sexSelect"></u-action-sheet>		<!-- 种类 -->		<u-action-sheet :show="showType" :actions="typeList" title="请选择种类" @close="showType = false" @select="typeSelect"></u-action-sheet>	</view></template>
<script>	import {		role,		industryList,		updateRole,		queryResumeById,		updateResume,		addResume	} from "@/common/api.js"	export default {		data() {			return {				showSex: false,				callback: '', // 回调类型
				callbackStatus: '', // 回调状态参数
				sexList: [					{						name: '男',					},					{						name: '女',					}				],				showType: false,				typeList: [],				fileList: [],				form: {					id:"",					name: '',					password: '',					mobile: '',					address:"",					age: '',					sex: '',					industryId: '',					industryName: "",					salary: '',					salaryMin: '',					salaryMax: '',					introduce: '',					idCardFile: []				},				rules: {					name: [{						type: 'string',						required: true,						message: '请输入姓名名称',						trigger: ['blur', 'change']					}],					nation: [{						type: 'string',						required: true,						message: '请输入民族',						trigger: ['blur', 'change']					}],					industryId: [{						type: 'string',						required: true,						message: '请选择行业',						trigger: ['blur', 'change']					}],					address:[						{							type: 'string',							required: true,							message: '请选择地址',							trigger: ['blur', 'change']						}					],					// password: [{
					// 	type: 'string',
					// 	required: true,
					// 	message: '请输入您的密码',
					// 	trigger: ['blur', 'change']
					// }],
					mobile: [{							required: true,							message: '请输入手机号',							trigger: ['change', 'blur'],						},						{							validator: (rule, value, callback) => {								return uni.$u.test.mobile(value);							},							message: '手机号码不正确',							trigger: ['change', 'blur'],						},					],					age: [{						validator: (rule, value, callback) => {							if (!value) {								callback(new Error('年龄不能为空'));							} else if (isNaN(value)) {								callback(new Error('请输入数字'));							} else if (value < 18 || value > 65) {								callback(new Error('年龄必须在18至65岁之间'));							} else {								callback(); // 验证通过
							}						},						trigger: 'blur',					}],					sex: [{						type: 'string',						max: 1,						required: true,						message: '请选择性别',						trigger: ['blur', 'change']					}],					salary: [{						type: 'string',						required: true,						message: '请输入薪资待遇',						trigger: ['blur', 'change']					}],					introduce: [{						type: 'string',						required: true,						message: '请输入个人简介',						trigger: ['blur', 'change']					}],					idCardFile: [{						validator: (rule, value, callback) => {							if (value === null || value === undefined || value === '' || (Array.isArray(									value) && value.length === 0)) {								callback(new Error('请选择身份证'));							} else {								callback();							}						},						trigger: 'blur'					}]				},			}		},		watch: {			'form.salaryMin': {				handler(newVal, oldVal) {					if (!uni.$u.test.isEmpty(newVal) && !uni.$u.test.isEmpty(this.form.salaryMax)) {						this.form.salary = '有'					} else {						this.form.salary = ''					}				},				immediate: true			},			'form.salaryMax': {				handler(newVal, oldVal) {					if (!uni.$u.test.isEmpty(newVal) && !uni.$u.test.isEmpty(this.form.salaryMin)) {						this.form.salary = '有'					} else {						this.form.salary = ''					}				},				immediate: true			}		},		mounted() {			// let worker = uni.getStorageSync("worker")
			let params = {}			queryResumeById(params).then(response=>{				let worker = response.result;				if(worker){					this.form.id = worker.id					this.form.name = worker.name					this.form.mobile = worker.phone					this.form.age = worker.age					this.form.sex = worker.sex==1?'男':'女'					this.form.nation = worker.nation					this.form.introduce = worker.brief					this.form.address = worker.address					this.form.industryId = worker.categoryOne					this.form.industryName = worker.categoryOneName					this.form.salaryMin = worker.salaryMin					this.form.salaryMax = worker.salaryMax					this.form.idCardFile = this.stringToKeyValueArray(worker.headImage)				}			})		},		methods: {			stringToKeyValueArray(str, delimiter1 = ',') {				if(str){					let arro = str.split(delimiter1);					let arr = [];					arro.forEach(items=>{						let obj = {};						obj["url"] = items						arr.push(obj)					})					console.info(arr)					return arr				}else{					return []				}			},			handleIndChange() {				this.showType = true			},			typeSelect(event) {				console.info("selectIndClick", event)				this.form.industryId = event.id				this.form.industryName = event.name				this.showType = false			},			onIndustryList() {				industryList({}).then(response => {					console.info(response)					this.typeList = response.result				}).catch(error => {
				})			},
			handleSexChange() {				this.showSex = true			},			sexSelect(e) {				this.form.sex = e.name				this.$refs.uForm.validateField('sex')			},			onRole() {				let that = this								if(this.form.id){					let params = {						"id": that.form.id,						"name": that.form.name,						"categoryOne": that.form.industryId,						"categoryOneName": that.form.industryName,						"address":that.form.address,						"nation": that.form.nation,						"age": that.form.age,						"sex": that.form.sex=="男"?1:2,						"salaryMin": that.form.salaryMin,						"salaryMax": that.form.salaryMax,						"phone": that.form.mobile,						"brief": that.form.introduce,						"headImage": that.form.idCardFile.map(item => item.url).join(','),					}					updateResume(params).then(response=>{					uni.$u.toast("保存成功!")					setTimeout(()=>{						// 根据回调参数决定跳转页面
						if (this.callback === 'release' && this.callbackStatus) {							// 跳转到发布页面
							uni.navigateTo({								url: "/pages_subpack/release/index?status=" + this.callbackStatus							})						} else {							// 默认返回上一页
							uni.navigateBack({								delta:1							})						}					},800)				}).catch(error=>{									})				}else{					let params = {						"name": that.form.name,						"categoryOne": that.form.industryId,						"categoryOneName": that.form.industryName,						"address":that.form.address,						"age": that.form.age,						"nation": that.form.nation,						"sex": that.form.sex=="男"?1:2,						"salaryMin": that.form.salaryMin,						"salaryMax": that.form.salaryMax,						"phone": that.form.mobile,						"brief": that.form.introduce,						"headImage": that.form.idCardFile.map(item => item.url).join(','),					}					addResume(params).then(response => {					uni.$u.toast("提交成功,等待申请")					setTimeout(()=>{						// 根据回调参数决定跳转页面
						if (this.callback === 'release' && this.callbackStatus) {							// 跳转到发布页面
							uni.navigateTo({								url: "/pages_subpack/release/index?status=" + this.callbackStatus							})						} else {							// 默认跳转到首页
							uni.switchTab({								url:"/pages/home/index"							})						}					},800)				}).catch(error => {					setTimeout(()=>{						uni.switchTab({							url:"/pages/home/index"						})					},800)					})				}			},			submit() {				this.$refs.uForm.validate().then(res => {					this.onRole()				}).catch(errors => {					// uni.$u.toast('校验失败')
				})			},			deletePic(event) {				this.form.idCardFile.splice(e.index, 1)			},			async afterRead(e) {				let self = this				e.file.forEach(file => {					self.$Oss.ossUpload(file.url).then(url => {						self.form.idCardFile.push({							url						})					})				})			}		},		onLoad(options) {			// 接收页面参数
			if (options.callback) {				this.callback = options.callback			}			if (options.status) {				this.callbackStatus = options.status			}		},		onReady() {			this.onIndustryList()			this.$refs.uForm.setRules(this.rules)		},	}</script>
<style lang="scss" scoped>	page {		background-color: #f5f5f5 !important;	}
	.line-orange {		width: 8rpx;		height: 32rpx;		background: #ff7a31;		border-radius: 4rpx;	}</style>
 |