You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
481 lines
13 KiB
481 lines
13 KiB
<template> |
|
<!--pages/release/perfectCompanyInfo/index.wxml--> |
|
<view class="perfect-companyInfo-page"> |
|
<view class="title acea-row row-middle">个人(团队)简介</view> |
|
<view class="form-box"> |
|
<form @submit="submit"> |
|
<view class="introduction-box"> |
|
<view class="introduction-item acea-row row-between-wrapper"> |
|
<view>团队规模<text class="red">*</text></view> |
|
<view class="acea-row row-middle"> |
|
<input type="number" placeholder="请填写(人数)" :value="form.enterpriseScale" name="enterpriseScale"> |
|
<image src="/static/images/home/arrow-r.png"></image> |
|
</view> |
|
</view> |
|
<view class="introduction-item acea-row row-between-wrapper"> |
|
<view>主要承接类型<text class="red">*</text></view> |
|
<view class="acea-row row-middle"> |
|
<!-- <input type="text" placeholder="请填写" valaue="{{form.industryId}}" name="industryId" /> |
|
<image src="../../../images/home/arrow-r.png"></image> --> |
|
<picker class="pick-box" @change="resourcesChange" :value="idx" :range="resourcesList" :range-key="'cagetoryName'" mode="selector"> |
|
<view class="picker">{{resourcesList[resourcesIdx].cagetoryName || '请选择'}}</view> |
|
</picker> |
|
</view> |
|
</view> |
|
<view class="introduction-item acea-row row-between-wrapper"> |
|
<view>组建时间<text class="red">*</text></view> |
|
<view class="acea-row row-middle"> |
|
<picker @change="timeChange" :value="form.establishmentTime" name="establishmentTime" mode="date"> |
|
<view class="picker">{{form.establishmentTime || '请选择'}}</view> |
|
</picker> |
|
<!-- <input type="text" placeholder="请填写" value="{{form.establishmentTime}}" name="establishmentTime" /> --> |
|
<!-- <image src="../../../images/home/arrow-r.png"></image> --> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="form-item"> |
|
<view class="label-box acea-row row-between-wrapper"> |
|
<view>办公地址<text class="red">*</text></view> |
|
<view class="chose" @tap="showMap">去选择地址</view> |
|
</view> |
|
<view class="inp-box"> |
|
<input type="text" placeholder="企业详细地址" :value="form.enterpriseAddress" name="enterpriseAddress"> |
|
</view> |
|
</view> |
|
<view class="form-item"> |
|
<view class="label-box acea-row row-between-wrapper"> |
|
<view>客服电话<text class="red">*</text></view> |
|
</view> |
|
<view class="inp-box"> |
|
<input type="text" placeholder="客服电话" :value="form.enterprisePhone" name="enterprisePhone"> |
|
</view> |
|
</view> |
|
<view class="form-item"> |
|
<view class="label-box acea-row row-between-wrapper"> |
|
<view>关于我们</view> |
|
</view> |
|
<view class="textarea-box"> |
|
<textarea :value="form.resourceIntroduction" name="resourceIntroduction" placeholder="请填写团队简介"></textarea> |
|
</view> |
|
</view> |
|
<view class="form-item"> |
|
<view class="label-box acea-row row-between-wrapper"> |
|
<view>团队展示</view> |
|
</view> |
|
<view class="upload-box acea-row"> |
|
<view v-for="(item, index) in form.imgPaths" :key="index" class="img-box"> |
|
<image :src="item"></image> |
|
<view class="del" @tap="delImg" :data-idx="index"><image src="/static/images/del.png"></image></view> |
|
</view> |
|
<image src="/static/images/upload.png" @tap="upImgs"></image> |
|
</view> |
|
</view> |
|
<button class="submit-btn" form-type="submit">保存并提交</button> |
|
</form> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
// pages/release/perfectPersonInfo/index.js |
|
const util = require("../../../utils/util.js"); |
|
const app = getApp(); |
|
import WxValidate from '../../../utils/WxValidate.js'; |
|
|
|
export default { |
|
data() { |
|
return { |
|
form: { |
|
enterpriseType: 2, |
|
enterpriseScale: '', |
|
businessNature: '', |
|
establishmentTime: '', |
|
enterpriseAddress: '', |
|
latitude: '', |
|
longitude: '', |
|
enterprisePhone: '', |
|
resourceIntroduction: '', |
|
imgPaths: [] |
|
}, |
|
resourcesList: [], |
|
resourcesIdx: "" |
|
}; |
|
}, |
|
|
|
components: {}, |
|
props: {}, |
|
|
|
/** |
|
* 生命周期函数--监听页面加载 |
|
*/ |
|
onLoad: function (options) { |
|
this.initValidate(); //验证规则函数 |
|
|
|
this.getResourcesCagetory(); |
|
|
|
if (options.isEdit) { |
|
this.getEnterpriseInfo(); |
|
} |
|
}, |
|
|
|
/** |
|
* 生命周期函数--监听页面初次渲染完成 |
|
*/ |
|
onReady: function () {}, |
|
|
|
/** |
|
* 生命周期函数--监听页面显示 |
|
*/ |
|
onShow: function () {}, |
|
|
|
/** |
|
* 生命周期函数--监听页面隐藏 |
|
*/ |
|
onHide: function () {}, |
|
|
|
/** |
|
* 生命周期函数--监听页面卸载 |
|
*/ |
|
onUnload: function () {}, |
|
|
|
/** |
|
* 页面相关事件处理函数--监听用户下拉动作 |
|
*/ |
|
onPullDownRefresh: function () {}, |
|
|
|
/** |
|
* 页面上拉触底事件的处理函数 |
|
*/ |
|
onReachBottom: function () {}, |
|
|
|
/** |
|
* 用户点击右上角分享 |
|
*/ |
|
onShareAppMessage: function () {}, |
|
methods: { |
|
showMap() { |
|
let that = this; |
|
uni.getLocation({ |
|
type: 'gcj02', |
|
//返回可以用于wx.openLocation的经纬度 |
|
success: function (res) { |
|
uni.chooseLocation({ |
|
latitude: res.latitude, |
|
longitude: res.longitude, |
|
scale: 28, |
|
success: result => { |
|
console.log(result); |
|
that.setData({//['form.enterpriseAddress']: result.address |
|
//['form.latitude']: result.latitude |
|
//['form.longitude']: result.longitude |
|
}); |
|
//try fix |
|
that.form.longitude = result.longitude; |
|
//try fix |
|
that.form.latitude = result.latitude; |
|
//try fix |
|
that.form.enterpriseAddress = result.address; |
|
} |
|
}); |
|
} |
|
}); |
|
}, |
|
|
|
timeChange(e) { |
|
this.setData({//['form.establishmentTime']: e.detail.value |
|
}); |
|
//try fix |
|
this.form.establishmentTime = e.detail.value; |
|
}, |
|
|
|
//获取详情 |
|
getEnterpriseInfo() { |
|
app.http('GET', 'Enterprise/getEnterpriseInfo').then(res => { |
|
if (res.data.success) { |
|
let data = res.data.data; |
|
this.setData({//['form.enterpriseScale']: data.enterpriseScale |
|
//['form.enterpriseAddress']: data.enterpriseAddress |
|
//['form.businessNature']: data.businessNature |
|
//['form.establishmentTime']: data.establishmentTime |
|
//['form.latitude']: data.latitude |
|
//['form.longitude']: data.longitude |
|
//['form.enterprisePhone']: data.enterprisePhone |
|
//['form.resourceIntroduction']: data.resourceIntroduction |
|
//['form.imgPaths']: data.imgPaths |
|
}); |
|
//try fix |
|
this.form.imgPaths = data.imgPaths; |
|
//try fix |
|
this.form.resourceIntroduction = data.resourceIntroduction; |
|
//try fix |
|
this.form.enterprisePhone = data.enterprisePhone; |
|
//try fix |
|
this.form.longitude = data.longitude; |
|
//try fix |
|
this.form.latitude = data.latitude; |
|
//try fix |
|
this.form.establishmentTime = data.establishmentTime; |
|
//try fix |
|
this.form.businessNature = data.businessNature; |
|
//try fix |
|
this.form.enterpriseAddress = data.enterpriseAddress; |
|
//try fix |
|
this.form.enterpriseScale = data.enterpriseScale; |
|
} |
|
}); |
|
}, |
|
|
|
initValidate() { |
|
const rules = { |
|
enterpriseScale: { |
|
required: true |
|
}, |
|
industryId: { |
|
required: true |
|
}, |
|
establishmentTime: { |
|
required: true |
|
}, |
|
enterpriseAddress: { |
|
required: true |
|
}, |
|
enterprisePhone: { |
|
required: true |
|
} |
|
}; |
|
const messages = { |
|
enterpriseAddress: { |
|
required: '请选择或填写地址' |
|
}, |
|
enterpriseScale: { |
|
required: '请填写团队规模' |
|
}, |
|
industryId: { |
|
required: '请填写承接类型' |
|
}, |
|
establishmentTime: { |
|
required: '请选择组建时间' |
|
}, |
|
enterprisePhone: { |
|
required: '请填写客服电话' |
|
} |
|
}; |
|
this.WxValidate = new WxValidate(rules, messages); |
|
}, |
|
|
|
//获取供应、需求类型 |
|
getResourcesCagetory() { |
|
app.http('GET', 'ResourcesCagetory/listResourcesCagetory').then(res => { |
|
// console.log(res) |
|
if (res.data.success) { |
|
this.setData({ |
|
resourcesList: res.data.data |
|
}); |
|
} |
|
}); |
|
}, |
|
|
|
resourcesChange(e) { |
|
// console.log(e) |
|
let idx = Number(e.detail.value); |
|
this.setData({//['form.industryId']: this.data.resourcesList[idx].id |
|
|
|
resourcesIdx: idx, |
|
}); |
|
//try fix |
|
this.form.industryId = this.resourcesList[idx].id; |
|
}, |
|
|
|
upImgs() { |
|
util.chooseImages2(img => { |
|
let imgs = this.form.imgPaths; |
|
imgs.push(img); |
|
this.setData({//['form.imgPaths']: imgs |
|
}); |
|
//try fix |
|
this.form.imgPaths = imgs; |
|
}); |
|
}, |
|
|
|
delImg(e) { |
|
let idx = e.currentTarget.dataset.idx; |
|
let imgPaths = this.form.imgPaths; |
|
imgPaths.splice(idx, 1); |
|
this.setData({//['form.imgPaths']: imgPaths |
|
}); |
|
//try fix |
|
this.form.imgPaths = imgPaths; |
|
}, |
|
|
|
submit(e) { |
|
let that = this; |
|
uni.showModal({ |
|
title: '提示!', |
|
content: '是否确认提交?', |
|
|
|
success(res) { |
|
if (res.confirm) { |
|
const params = e.detail.value; |
|
params.enterpriseType = 2; |
|
params.imgPaths = that.form.imgPaths; |
|
params.industryId = that.form.industryId; |
|
|
|
if (!that.WxValidate.checkForm(params)) { |
|
const error = that.WxValidate.errorList[0]; |
|
that.showModal(error); |
|
return false; |
|
} |
|
|
|
app.http('post', 'Enterprise/completeEnterprise', params).then(res => { |
|
if (res.data.success) { |
|
uni.showToast({ |
|
title: '提交成功', |
|
duration: 2000 |
|
}); |
|
setTimeout(() => { |
|
uni.navigateBack({ |
|
delta: 1 |
|
}); |
|
}, 2000); |
|
} |
|
}); |
|
} else { |
|
console.log('已取消'); |
|
} |
|
} |
|
|
|
}); |
|
}, |
|
|
|
showModal(error) { |
|
uni.showModal({ |
|
content: error.msg, |
|
showCancel: false |
|
}); |
|
} |
|
|
|
} |
|
}; |
|
</script> |
|
<style> |
|
/* pages/release/perfectCompanyInfo/index.wxss */ |
|
.perfect-companyInfo-page{ |
|
width: 100%; |
|
padding: 24rpx 40rpx; |
|
border-top: 2rpx solid #EEEEEE; |
|
} |
|
.introduction-box{ |
|
font-size: 28rpx; |
|
color: #666666; |
|
padding-bottom: 30rpx; |
|
border-bottom: 2rpx solid #EEEEEE; |
|
} |
|
.introduction-item{ |
|
margin-top: 20rpx; |
|
} |
|
.introduction-item input{ |
|
/* width: 100rpx; */ |
|
text-align: right; |
|
|
|
} |
|
.introduction-item image{ |
|
width: 13rpx; |
|
height: 24rpx; |
|
margin-left: 10rpx; |
|
} |
|
.title{ |
|
color: #1D1D1D; |
|
font-size: 32rpx; |
|
} |
|
.title::before{ |
|
content: ''; |
|
display: inline-block; |
|
width: 8rpx; |
|
height: 42rpx; |
|
background: #FF7942; |
|
border-radius: 4rpx; |
|
margin-right: 10rpx; |
|
} |
|
.form-box{ |
|
font-size: 28rpx; |
|
color: #666666; |
|
} |
|
.picker{ |
|
font-size: 28rpx; |
|
color: #666666; |
|
} |
|
.form-item{ |
|
margin-top: 22rpx; |
|
} |
|
.red{ |
|
color: #FF0000; |
|
} |
|
.inp-box{ |
|
width: 100%; |
|
height: 60rpx; |
|
background: #EEEEEE; |
|
border-radius: 4rpx; |
|
padding-left: 22rpx; |
|
margin-top: 20rpx; |
|
} |
|
.inp-box input{ |
|
width: 100%; |
|
height: 100%; |
|
} |
|
.upload-box{ |
|
width: 100%; |
|
margin-top: 20rpx; |
|
padding-bottom: 24rpx; |
|
border-bottom: 2rpx solid #EEEEEE; |
|
} |
|
.upload-box image{ |
|
width: 120rpx; |
|
height: 120rpx; |
|
border-radius: 8rpx; |
|
} |
|
.img-box{ |
|
width: 120rpx; |
|
height: 120rpx; |
|
position: relative; |
|
margin-right: 14rpx; |
|
margin-bottom: 20rpx; |
|
border-radius: 8rpx; |
|
} |
|
.img-box .del{ |
|
width: 32rpx; |
|
height: 32rpx; |
|
position: absolute; |
|
top: -16rpx; |
|
right: -12rpx; |
|
font-weight: bold; |
|
} |
|
.del image{ |
|
width: 100%; |
|
height: 100%; |
|
} |
|
.textarea-box{ |
|
width: 100%; |
|
height: 352rpx; |
|
background: #EEEEEE; |
|
border-radius: 4rpx; |
|
padding: 22rpx; |
|
margin-top: 20rpx; |
|
} |
|
.textarea-box textarea{ |
|
width: 100%; |
|
height: 100%; |
|
line-height: 40rpx; |
|
} |
|
.submit-btn{ |
|
width: 670rpx !important; |
|
height: 76rpx !important; |
|
background: linear-gradient(144deg, #FFA782 0%, #FF5100 100%); |
|
border-radius: 38rpx; |
|
color: #fff; |
|
font-size: 28rpx !important; |
|
line-height: 76rpx !important; |
|
text-align: center; |
|
margin:40rpx auto !important; |
|
padding: 0 !important; |
|
} |
|
</style> |