3 Commits

Author SHA1 Message Date
史典卓
1cd5363723 flat:暂存 2025-08-05 18:28:07 +08:00
史典卓
e698f0624f flat: yic 2025-05-06 16:13:25 +08:00
史典卓
23284483c4 flat: 赞存 2025-03-26 09:54:42 +08:00
14 changed files with 2639 additions and 2376 deletions

View File

@@ -33,8 +33,13 @@ export async function uploadFile(file) {
'Authorization': `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`, 'Authorization': `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`,
} }
header[website.tokenName] = "bearer " + token header[website.tokenName] = "bearer " + token
// 馆陶替换url
let url = `/api/jobslink-api/resource/file/save?bussinessType=5`
if (url.startsWith('/api')) {
url = url.replace(/^\/api/, '/api/gt');
}
uni.uploadFile({ uni.uploadFile({
url: `${baseUrl}/api/jobslink-api/resource/file/save?bussinessType=5`, url: baseUrl + url,
header, header,
filePath: file.url, filePath: file.url,
// formData: formdata, // formData: formdata,

View File

@@ -5,6 +5,7 @@
"versionName": "1.0.0", "versionName": "1.0.0",
"versionCode": "100", "versionCode": "100",
"transformPx": false, "transformPx": false,
"sassImplementationName": "node-sass",
"app-plus": { "app-plus": {
"usingComponents": true, "usingComponents": true,
"compilerVersion": 3, "compilerVersion": 3,

View File

@@ -79,7 +79,7 @@
{ {
"path": "pages/project/newProject", "path": "pages/project/newProject",
"style": { "style": {
"navigationBarTitleText": "馆陶县灵活就业平台", "navigationBarTitleText": "宜昌市灵活就业平台",
"navigationBarBackgroundColor": "#FFFFFF", "navigationBarBackgroundColor": "#FFFFFF",
"enablePullDownRefresh": true "enablePullDownRefresh": true
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,227 +1,225 @@
<template> <template>
<view class="app_container"> <view class="app_container">
<view class="container_head"> <view class="container_head">
<view class="row"> <view class="row">
<view class="head_left"> <view class="head_left">
<view class="left_title">在德阳市开设</view> <view class="left_title">在德阳市开设</view>
<view class="left_content"> <view class="left_content">
<view class="content_item"> <view class="content_item">
<view class="fs_28">1</view> <view class="fs_28">1</view>
<view class="fs_24">主市场</view> <view class="fs_24">主市场</view>
</view> </view>
<view class="content_item"> <view class="content_item">
<view class="fs_28">15</view> <view class="fs_28">15</view>
<view class="fs_24">分市场</view> <view class="fs_24">分市场</view>
</view> </view>
<view class="content_item"> <view class="content_item">
<view class="fs_28">136</view> <view class="fs_28">136</view>
<view class="fs_24">服务站</view> <view class="fs_24">服务站</view>
</view> </view>
</view> </view>
</view> </view>
<view class="head_right"> <view class="head_right">
<image src="../../static/img/deyang.png"></image> <image src="../../static/img/deyang.png"></image>
</view> </view>
</view> </view>
<!-- <view class="broadcast"> <!-- <view class="broadcast">
<view class="cast-l"><u-icon style="margin-right: 10rpx;" name="volume" color="#fb6a09" <view class="cast-l"><u-icon style="margin-right: 10rpx;" name="volume" color="#fb6a09"
size="20"></u-icon>周六常态化招聘会通知</view> size="20"></u-icon>周六常态化招聘会通知</view>
<u-icon name="arrow-right" color="#666666" size="16"></u-icon> <u-icon name="arrow-right" color="#666666" size="16"></u-icon>
</view> --> </view> -->
</view> </view>
<view class="conatiner_card"> <view class="conatiner_card">
<view class="row blod fs_34">馆陶县智慧就业市场</view> <view class="row blod fs_34">宜昌市智慧就业市场</view>
<view class="row color_666 fs_30 marT_30"> <view class="row color_666 fs_30 marT_30">
<u-icon style="margin-right: 10rpx;" name="calendar" color="#666666" size="16"></u-icon>营业时间 <u-icon style="margin-right: 10rpx" name="calendar" color="#666666" size="16"></u-icon>
</view> 营业时间
<view class="row color_666 fs_30">上午9:00-12:00 下午14:00-18:00</view> </view>
<view class="row color_666 fs_30 marT_30"> <view class="row color_666 fs_30">上午9:00-12:00 下午14:00-18:00</view>
<u-icon style="margin-right: 10rpx;" name="map" color="#666666" size="16"></u-icon> <view class="row color_666 fs_30 marT_30">
四川省德阳市旌阳区天山南路1段108号 <u-icon style="margin-right: 10rpx" name="map" color="#666666" size="16"></u-icon>
<!-- <u-icon style="margin-left: 10rpx;" name="arrow-right" color="#666666" size="16"></u-icon> --> 四川省德阳市旌阳区天山南路1段108号
</view> <!-- <u-icon style="margin-left: 10rpx;" name="arrow-right" color="#666666" size="16"></u-icon> -->
<!-- <view class="row color_666 fs_28 marT_10"> </view>
<view class="column">距离我7km</view> <!-- <view class="row color_666 fs_28 marT_10">
</view> --> <view class="column">距离我7km</view>
</view> </view> -->
</view>
<view class="conatiner_card">
<view class="row blod fs_34">关于市场</view> <view class="conatiner_card">
<view class="row color_666 fs_30"> <view class="row blod fs_34">关于市场</view>
德阳市公共就业服务市场为进一步促进公共就业服务提质增效保障重点企业用工需求助力高校毕业生等重点群体实现更充分更高质量就业德阳市人社局进一步加强统筹靶向施力充分利用市本级和各区()现有招聘网站微信小程序抖音号等以及线下人力资源招聘市场全力打造集手机端+电脑端+线下端三位一体立体招聘矩阵通过深挖收集企业用工岗位信息坚持定向推送进一步拓宽招聘信息发布渠道提升招聘求职成功率 <view class="row color_666 fs_30">
</view> 德阳市公共就业服务市场为进一步促进公共就业服务提质增效保障重点企业用工需求助力高校毕业生等重点群体实现更充分更高质量就业德阳市人社局进一步加强统筹靶向施力充分利用市本级和各区()现有招聘网站微信小程序抖音号等以及线下人力资源招聘市场全力打造集手机端+电脑端+线下端三位一体立体招聘矩阵通过深挖收集企业用工岗位信息坚持定向推送进一步拓宽招聘信息发布渠道提升招聘求职成功率
</view> </view>
</view>
<!-- <view class="container_chioe">
<view class="chioe_share color_666 fs_24"> <!-- <view class="container_chioe">
<u-icon name="share" color="#666666" size="16"></u-icon>分享 <view class="chioe_share color_666 fs_24">
</view> <u-icon name="share" color="#666666" size="16"></u-icon>分享
<view class="chioe_btn">电话咨询</view> </view>
<view class="chioe_btn btn_Blue">到这去</view> <view class="chioe_btn">电话咨询</view>
</view> --> <view class="chioe_btn btn_Blue">到这去</view>
</view> </view> -->
</template> </view>
</template>
<script>
export default { <script>
data() { export default {
return { data() {
return {};
} },
}, methods: {},
methods: { };
</script>
}
} <style lang="scss" scoped>
</script> @function designTo($num) {
@return ($num / 620rpx) * 750rpx;
<style lang="scss" scoped> }
@function designTo($num) {
@return ($num / 620rpx) * 750rpx @for $i from 10 to 60 {
} .fs_#{$i} {
font-size: #{$i}rpx;
@for $i from 10 to 60 { }
.fs_#{$i} { }
font-size : #{$i}rpx;
} @for $i from 1 to 60 {
} .marT_#{$i} {
margin-top: #{$i}rpx;
@for $i from 1 to 60 { }
.marT_#{$i} { }
margin-top : #{$i}rpx;
} .color_666 {
} color: #666666;
}
.color_666 {
color: #666666; .bold {
} font-weight: bold;
}
.bold {
font-weight: bold; image {
} width: 100%;
height: 100%;
image { }
width: 100%;
height: 100%; .app_container {
} background-color: #f3f4f8;
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
.app_container {
background-color: #f3f4f8; .container_head {
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom)); min-height: 300rpx;
padding: 28rpx;
.container_head { background: linear-gradient(to bottom, rgba(69, 112, 250, 1), rgba(69, 112, 250, 0));
min-height: 300rpx;
padding: 28rpx; .row {
background: linear-gradient(to bottom, rgba(69, 112, 250, 1), rgba(69, 112, 250, .0)); display: flex;
align-content: center;
.row { justify-content: space-between;
display: flex;
align-content: center; .head_left {
justify-content: space-between; color: #ffffff;
display: flex;
.head_left { align-items: flex-start;
color: #FFFFFF; flex-direction: column;
display: flex;
align-items: flex-start; .left_title {
flex-direction: column; }
.left_title {} .left_content {
height: designTo(87rpx);
.left_content { width: designTo(313rpx);
height: designTo(87rpx); background-color: rgba(69, 104, 252, 0.4);
width: designTo(313rpx); border-radius: 20rpx;
background-color: rgba(69, 104, 252, 0.4); margin-top: 20rpx;
border-radius: 20rpx; display: flex;
margin-top: 20rpx; justify-content: space-around;
display: flex; align-items: center;
justify-content: space-around; flex-wrap: nowrap;
align-items: center;
flex-wrap: nowrap; .content_item {
text-align: center;
.content_item { white-space: nowrap;
text-align: center; }
white-space: nowrap; }
} }
}
} .head_right {
width: designTo(220rpx);
.head_right { height: designTo(148rpx);
width: designTo(220rpx); border-radius: 20rpx;
height: designTo(148rpx); overflow: hidden;
border-radius: 20rpx; }
overflow: hidden; }
}
} .broadcast {
margin-top: designTo(65rpx);
.broadcast { height: designTo(77rpx);
margin-top: designTo(65rpx); background-color: rgba(244, 230, 224, 1);
height: designTo(77rpx); border-radius: 20rpx;
background-color: rgba(244, 230, 224, 1); display: flex;
border-radius: 20rpx; justify-content: space-between;
display: flex; align-items: center;
justify-content: space-between; padding: 0 24rpx;
align-items: center;
padding: 0 24rpx; .cast-l {
font-size: 32rpx;
.cast-l { display: flex;
font-size: 32rpx; }
display: flex; }
} }
}
} .conatiner_card {
margin: 28rpx;
.conatiner_card { background-color: #ffffff;
margin: 28rpx; height: fit-content;
background-color: #FFFFFF; border-radius: 20rpx;
height: fit-content; padding: designTo(28rpx);
border-radius: 20rpx;
padding: designTo(28rpx); .row {
display: flex;
.row { align-items: center;
display: flex; }
align-items: center;
} .column {
padding: 10rpx 20rpx;
.column { border-radius: 40rpx;
padding: 10rpx 20rpx; background-color: #f3f4f8;
border-radius: 40rpx; }
background-color: #f3f4f8; }
}
} .container_chioe {
position: fixed;
.container_chioe { bottom: 0;
position: fixed; left: 0;
bottom: 0; right: 0;
left: 0; display: flex;
right: 0; justify-content: space-around;
display: flex; align-items: center;
justify-content: space-around; background-color: #ffffff;
align-items: center; height: designTo(108rpx);
background-color: #FFFFFF; padding: 0 28rpx designTo(30rpx) 28rpx;
height: designTo(108rpx);
padding: 0 28rpx designTo(30rpx) 28rpx; .chioe_share {
display: flex;
.chioe_share { align-items: center;
display: flex; flex-direction: column;
align-items: center; justify-content: center;
flex-direction: column; }
justify-content: center;
} .chioe_btn {
color: #ffffff;
.chioe_btn { background: linear-gradient(to right, #fbaf1a, #fbaf1a);
color: #FFFFFF; height: designTo(66rpx);
background: linear-gradient(to right, #fbaf1a, #fbaf1a); width: designTo(228rpx);
height: designTo(66rpx); text-align: center;
width: designTo(228rpx); line-height: designTo(66rpx);
text-align: center; border-radius: designTo(33rpx);
line-height: designTo(66rpx); }
border-radius: designTo(33rpx);
} .btn_Blue {
background: linear-gradient(to right, #95aefb, #4b74f7);
.btn_Blue { }
background: linear-gradient(to right, #95aefb, #4b74f7); }
} }
} </style>
}
</style>

View File

@@ -12,7 +12,7 @@
</view> </view>
<view class="navPosition" @click="navTo('/pages/project/map')"> <view class="navPosition" @click="navTo('/pages/project/map')">
<u-icon name="map" color="#2979ff" size="16"></u-icon> <u-icon name="map" color="#2979ff" size="16"></u-icon>
<view class="positionText">馆陶县地图服务</view> <view class="positionText">宜昌市地图服务</view>
<u-icon name="arrow-right" color="#666666" size="14"></u-icon> <u-icon name="arrow-right" color="#666666" size="14"></u-icon>
</view> </view>
<view class="content"> <view class="content">

View File

@@ -1,310 +1,364 @@
<template> <template>
<view class=""> <view class="">
<view class="content"> <view class="content">
<u--form labelPosition="left" :model="formData" :rules="rules" ref="formOne"> <u--form labelPosition="left" :model="formData" :rules="rules" ref="formOne">
<view class="card"> <view class="card">
<view class="card_title">认证信息</view> <view class="card_title">认证信息</view>
<u-form-item label="用工单位名称" labelWidth="100" prop="comname" borderBottom ref="item1"> <u-form-item label="用工单位名称" labelWidth="100" prop="comname" borderBottom ref="item1">
<u--input v-model="formData.comname" placeholder="请输入用工单位名称"></u--input> <u--input v-model="formData.comname" placeholder="请输入用工单位名称"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="统一信用代码" labelWidth="100" prop="companyTid" borderBottom ref="item1"> <u-form-item label="统一信用代码" labelWidth="100" prop="companyTid" borderBottom ref="item1">
<u--input v-model="formData.companyTid" placeholder="请输入统一信用代码"></u--input> <u--input v-model="formData.companyTid" placeholder="请输入统一信用代码"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="法人姓名" labelWidth="100" prop="masterName" borderBottom ref="item1"> <u-form-item label="法人姓名" labelWidth="100" prop="masterName" borderBottom ref="item1">
<u--input v-model="formData.masterName" placeholder="请输入法人姓名"></u--input> <u--input v-model="formData.masterName" placeholder="请输入法人姓名"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="法人身份证号" labelWidth="100" prop="masterIdentity" borderBottom ref="item1"> <u-form-item label="法人身份证号" labelWidth="100" prop="masterIdentity" borderBottom ref="item1">
<u--input v-model="formData.masterIdentity" placeholder="请输入法人身份证号"></u--input> <u--input v-model="formData.masterIdentity" placeholder="请输入法人身份证号"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="所在地区" labelWidth="100" prop="cityId" borderBottom ref="item1" <u-form-item
@click="showAddress = true; hideKeyboard()"> label="所属机构"
<PickerList placeholder="请选择所在地区" :columns="dic.addressColumn" :visibel="showAddress" labelWidth="100"
v-model="formData.cityId" @cancel="showAddress = false"> prop="cityId"
</PickerList> borderBottom
</u-form-item> ref="item1"
<u-form-item label="详细地址" labelWidth="100" prop="companyAddress" borderBottom ref="item1"> @click="
<u--input v-model="formData.companyAddress" placeholder="请输入详细地址"></u--input> showAddress = true;
</u-form-item> hideKeyboard();
<u-form-item label="用工单位性质" labelWidth="100" prop="nature" borderBottom ref="item1" "
@click="showJobCompanyNature = true; hideKeyboard()"> >
<PickerList placeholder="请选择企业性质" :columns="[xzDic]" :visibel="showJobCompanyNature" <PickerList
labelName="dictValue" valueName="dictKey" v-model="formData.nature" placeholder="请选择所属机构"
@cancel="showJobCompanyNature = false"> :columns="dic.addressColumn"
</PickerList> :visibel="showAddress"
</u-form-item> v-model="formData.cityId"
<u-form-item label="所属行业" labelWidth="100" prop="tradeId" borderBottom ref="item1" @cancel="showAddress = false"
@click="showjobCompanyIndustry = true; hideKeyboard()"> ></PickerList>
<PickerList placeholder="请选择所属行业" :columns="dic.tradeArr" labelName="name" valueName="id" </u-form-item>
:visibel="showjobCompanyIndustry" v-model="formData.tradeId" <u-form-item label="详细地址" labelWidth="100" prop="companyAddress" borderBottom ref="item1">
@cancel="showjobCompanyIndustry = false"> <u--input v-model="formData.companyAddress" placeholder="请输入详细地址"></u--input>
</PickerList> </u-form-item>
</u-form-item> <u-form-item
<u-form-item label="用工单位介绍" labelWidth="100" labelPosition="top" prop="companyDesc" borderBottom label="用工单位性质"
ref="item1"> labelWidth="100"
<u--textarea v-model="formData.companyDesc" placeholder="请输入用工单位介绍" count prop="nature"
maxlength="200"></u--textarea> borderBottom
</u-form-item> ref="item1"
</view> @click="
<view class="card"> showJobCompanyNature = true;
<view class="card_title">联系人信息</view> hideKeyboard();
<u-form-item label="联系人" labelWidth="100" prop="manager" borderBottom ref="item1"> "
<u--input v-model="formData.manager" placeholder="请输入联系人"></u--input> >
</u-form-item> <PickerList
<u-form-item label="手机号码" labelWidth="100" prop="telphone" borderBottom ref="item1"> placeholder="请选择企业性质"
<u--input v-model="formData.telphone" placeholder="请输入手机号码"></u--input> :columns="[xzDic]"
</u-form-item> :visibel="showJobCompanyNature"
</view> labelName="dictValue"
valueName="dictKey"
<view class="card"> v-model="formData.nature"
<view class="card_title">证件资料</view> @cancel="showJobCompanyNature = false"
<view class="card_content"> ></PickerList>
<u-form-item labelWidth="100" prop="identityUrl4Id"> </u-form-item>
<UploadIdNumber v-model="formData.identityUrl4Id" contentStyle="marginTop: 30rpx" <u-form-item
backImg="/static/img/idcard.png"> label="所属行业"
</UploadIdNumber> labelWidth="100"
</u-form-item> prop="tradeId"
<u-form-item labelWidth="100" prop="identityUrl5Id"> borderBottom
<UploadIdNumber v-model="formData.identityUrl5Id" backImg="/static/img/backidcard1.png"> ref="item1"
</UploadIdNumber> @click="
</u-form-item> showjobCompanyIndustry = true;
<u-form-item labelWidth="100" prop="authUrlId"> hideKeyboard();
<UploadIdNumber v-model="formData.authUrlId" backImg="/static/img/businessLicense.jpg"> "
</UploadIdNumber> >
</u-form-item> <PickerList
</view> placeholder="请选择所属行业"
</view> :columns="dic.tradeArr"
labelName="name"
<view class="card"> valueName="id"
<u-button type="primary" text="提交" customStyle="margin-top: 50px" @click="submit"></u-button> :visibel="showjobCompanyIndustry"
<u-button type="error" text="重置" customStyle="margin-top: 10px" @click="reset"></u-button> v-model="formData.tradeId"
</view> @cancel="showjobCompanyIndustry = false"
</u--form> ></PickerList>
</view> </u-form-item>
</view> <u-form-item
</template> label="用工单位介绍"
labelWidth="100"
<script> labelPosition="top"
import UploadIdNumber from './uploadIdNumber.vue'; prop="companyDesc"
import dic from '@/common/dic.js' borderBottom
import PickerList from './pickerList.vue'; ref="item1"
import { >
addInviteCompanyAuth, <u--textarea
getInviteCompanyAuthInfo, v-model="formData.companyDesc"
getDictionary2 placeholder="请输入用工单位介绍"
} from '@/api/userrecruit.js' count
import { maxlength="200"
mapState ></u--textarea>
} from 'vuex' </u-form-item>
const rules = { </view>
comname: { <view class="card">
type: 'string', <view class="card_title">联系人信息</view>
required: true, <u-form-item label="联系人" labelWidth="100" prop="manager" borderBottom ref="item1">
message: '请输入用工单位', <u--input v-model="formData.manager" placeholder="请输入联系人"></u--input>
trigger: ['change'] </u-form-item>
}, <u-form-item label="手机号码" labelWidth="100" prop="telphone" borderBottom ref="item1">
companyTid: { <u--input v-model="formData.telphone" placeholder="请输入手机号码"></u--input>
type: 'string', </u-form-item>
required: true, </view>
max: 18,
min: 18, <view class="card">
message: '请输入18位统一信用代码', <view class="card_title">证件资料</view>
trigger: ['change'] <view class="card_content">
}, <u-form-item labelWidth="100" prop="identityUrl4Id">
masterName: { <UploadIdNumber
type: 'string', v-model="formData.identityUrl4Id"
required: true, contentStyle="marginTop: 30rpx"
message: '请输入法人姓名', backImg="/static/img/idcard.png"
trigger: ['change'] ></UploadIdNumber>
}, </u-form-item>
masterIdentity: { <u-form-item labelWidth="100" prop="identityUrl5Id">
type: 'string', <UploadIdNumber
required: true, v-model="formData.identityUrl5Id"
pattern: /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[Xx\d]$/, backImg="/static/img/backidcard1.png"
message: '请输入法人身份证号', ></UploadIdNumber>
trigger: ['change'] </u-form-item>
}, <u-form-item labelWidth="100" prop="authUrlId">
cityId: { <UploadIdNumber
type: 'string', v-model="formData.authUrlId"
required: true, backImg="/static/img/businessLicense.jpg"
message: '请选择所在地区', ></UploadIdNumber>
trigger: ['change'] </u-form-item>
}, </view>
companyAddress: { </view>
type: 'string',
required: true, <view class="card">
message: '请输入详细地址', <u-button type="primary" text="提交" customStyle="margin-top: 50px" @click="submit"></u-button>
trigger: ['change'] <u-button type="error" text="重置" customStyle="margin-top: 10px" @click="reset"></u-button>
}, </view>
nature: { </u--form>
type: 'string', </view>
required: true, </view>
message: '请选择企业性质', </template>
trigger: ['change']
}, <script>
tradeId: { import UploadIdNumber from './uploadIdNumber.vue';
type: 'string', import dic from '@/common/dic.js';
required: true, import PickerList from './pickerList.vue';
message: '请选择行业', import { addInviteCompanyAuth, getInviteCompanyAuthInfo, getDictionary2 } from '@/api/userrecruit.js';
trigger: ['change'] import { mapState } from 'vuex';
}, const rules = {
companyDesc: { comname: {
type: 'string', type: 'string',
min: 20, required: true,
required: true, message: '请输入用工单位',
message: '请输入企业介绍最少20个字符', trigger: ['change'],
trigger: ['change'] },
}, companyTid: {
manager: { type: 'string',
type: 'string', required: true,
required: true, max: 18,
message: '请输入联系人', min: 18,
trigger: ['change'] message: '请输入18位统一信用代码',
}, trigger: ['change'],
telphone: { },
type: 'string', masterName: {
required: true, type: 'string',
pattern: /^1[3-9]{1}[0-9]{9}$/, required: true,
message: '请输入手机号码', message: '请输入法人姓名',
trigger: ['change'] trigger: ['change'],
}, },
identityUrl4Id: { masterIdentity: {
type: 'string', type: 'string',
required: true, required: true,
message: '请上传法人身份证(人像)', pattern: /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[Xx\d]$/,
trigger: ['change'] message: '请输入法人身份证号',
}, trigger: ['change'],
identityUrl5Id: { },
type: 'string', cityId: {
required: true, type: 'string',
message: '请上传法人身份证(国徽)', required: true,
trigger: ['change'] message: '请选择所在地区',
}, trigger: ['change'],
authUrlId: { },
type: 'string', companyAddress: {
required: true, type: 'string',
message: '请上传企业营业执照', required: true,
trigger: ['change'] message: '请输入详细地址',
}, trigger: ['change'],
} },
export default { nature: {
components: { type: 'string',
UploadIdNumber, required: true,
PickerList message: '请选择企业性质',
}, trigger: ['change'],
data() { },
return { tradeId: {
showAddress: false, type: 'string',
showJobCompanyNature: false, required: true,
showjobCompanyIndustry: false, message: '请选择行业',
dic, trigger: ['change'],
xzDic: [], },
formData: {}, companyDesc: {
rules type: 'string',
}; min: 20,
}, required: true,
onLoad(options) { message: '请输入企业介绍最少20个字符',
if (options.reviewStatus === '9') { trigger: ['change'],
this.getInfo() },
} manager: {
this.getDictInfo() type: 'string',
}, required: true,
computed: { message: '请输入联系人',
...mapState({ trigger: ['change'],
authInfo: (state) => state.auth.authInfo, },
userInfo: (state) => state.user.userInfo telphone: {
}), type: 'string',
}, required: true,
created() { pattern: /^1[3-9]{1}[0-9]{9}$/,
this.formData.manager = this.authInfo.realName message: '请输入手机号码',
this.formData.idNumber = this.authInfo.idNumber trigger: ['change'],
}, },
methods: { identityUrl4Id: {
hideKeyboard() { type: 'string',
uni.hideKeyboard() required: true,
}, message: '请上传法人身份证(人像)',
async submit() { trigger: ['change'],
let params = { },
...this.formData, identityUrl5Id: {
nature: Number(this.formData.nature), type: 'string',
cityId: Number(this.formData.cityId), required: true,
tradeId: Number(this.formData.tradeId), message: '请上传法人身份证(国徽)',
} trigger: ['change'],
const _this = this },
this.$refs.formOne.validate().then(async (res) => { authUrlId: {
let params = { type: 'string',
..._this.formData, required: true,
nature: Number(_this.formData.nature), message: '请上传企业营业执照',
cityId: Number(_this.formData.cityId), trigger: ['change'],
tradeId: Number(_this.formData.tradeId), },
manager: _this.authInfo.realName, };
idNumber: _this.authInfo.idNumber, export default {
companyName: dic.addressColumn[0].filter((item) => item.value == _this components: {
.formData.cityId)[0].label UploadIdNumber,
} PickerList,
console.log(params) },
let resData = await addInviteCompanyAuth(params) data() {
if (resData.data.code === 200) { return {
uni.navigateBack(1) showAddress: false,
_this.$api.sleep(1000).then(() => { showJobCompanyNature: false,
_this.$api.msg('已完成企业信息认证') showjobCompanyIndustry: false,
}) dic,
} xzDic: [],
}).catch(errors => { formData: {},
if (/[\u4e00-\u9fff]/.test(errors.message)) { rules,
_this.$api.msg(errors.message) };
} },
}) onLoad(options) {
}, if (options.reviewStatus === '9') {
async getInfo() { this.getInfo();
let params = { }
idNumber: this.authInfo.idNumber this.getDictInfo();
} },
let resData = await getInviteCompanyAuthInfo(params) computed: {
if (resData.data.code === 200) { ...mapState({
console.log(resData.data.data) authInfo: (state) => state.auth.authInfo,
this.formData = { userInfo: (state) => state.user.userInfo,
...resData.data.data, }),
nature: String(resData.data.data.nature), },
cityId: String(resData.data.data.cityId), created() {
tradeId: String(resData.data.data.tradeId), this.formData.manager = this.authInfo.realName;
} this.formData.idNumber = this.authInfo.idNumber;
} },
}, methods: {
reset() { hideKeyboard() {
const _this = this uni.hideKeyboard();
uni.showModal({ },
content: '重置将清空表单,确定重置吗?', async submit() {
success() { let params = {
_this.formData = {} ...this.formData,
}, nature: Number(this.formData.nature),
}) cityId: Number(this.formData.cityId),
}, tradeId: Number(this.formData.tradeId),
async getDictInfo() { };
let resData = await getDictionary2() const _this = this;
if (resData.data.code === 200) { this.$refs.formOne
this.xzDic = resData.data.data .validate()
} .then(async (res) => {
} let params = {
}, ..._this.formData,
} nature: Number(_this.formData.nature),
</script> cityId: Number(_this.formData.cityId),
tradeId: Number(_this.formData.tradeId),
<style lang="scss" scoped> manager: _this.authInfo.realName,
.content { idNumber: _this.authInfo.idNumber,
padding: 24rpx; companyName: dic.addressColumn[0].filter((item) => item.value == _this.formData.cityId)[0]
.label,
.card { };
.card_title { console.log(params);
font-weight: bold; let resData = await addInviteCompanyAuth(params);
margin-top: 20rpx; if (resData.data.code === 200) {
} uni.navigateBack(1);
_this.$api.sleep(1000).then(() => {
.card_content { _this.$api.msg('已完成企业信息认证');
display: flex; });
flex-direction: column; }
justify-content: center; })
align-items: center; .catch((errors) => {
} if (/[\u4e00-\u9fff]/.test(errors.message)) {
} _this.$api.msg(errors.message);
} }
</style> });
},
async getInfo() {
let params = {
idNumber: this.authInfo.idNumber,
};
let resData = await getInviteCompanyAuthInfo(params);
if (resData.data.code === 200) {
console.log(resData.data.data);
this.formData = {
...resData.data.data,
nature: String(resData.data.data.nature),
cityId: String(resData.data.data.cityId),
tradeId: String(resData.data.data.tradeId),
};
}
},
reset() {
const _this = this;
uni.showModal({
content: '重置将清空表单,确定重置吗?',
success() {
_this.formData = {};
},
});
},
async getDictInfo() {
let resData = await getDictionary2();
if (resData.data.code === 200) {
this.xzDic = resData.data.data;
}
},
},
};
</script>
<style lang="scss" scoped>
.content {
padding: 24rpx;
.card {
.card_title {
font-weight: bold;
margin-top: 20rpx;
}
.card_content {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
}
</style>

View File

@@ -1,77 +1,86 @@
<template> <template>
<view class="content_upload" :style="contentStyle"> <view class="content_upload" :style="contentStyle">
<u-upload :fileList="ImgUrl" @afterRead="afterRead" :deletable="true" @delete="deletePic" name="6" :maxCount="1" <u-upload
:width="width" :height="height"> :fileList="ImgUrl"
<image :src="backImg" :style="`width: ${width}px;height: ${height}px;`"></image> @afterRead="afterRead"
<image class="iconimg" src="/static/img/Takingpictures.png" :deletable="true"
:style="`width: ${width/4}px;height: ${width/4}px;`"></image> @delete="deletePic"
</u-upload> name="6"
</view> :maxCount="1"
</template> :width="width"
:height="height"
<script> >
import { <image :src="backImg" :style="{ width: width + 'px', height: height + 'px' }"></image>
uploadFile <image
} from '@/api/upload.js' class="iconimg"
export default { src="/static/img/Takingpictures.png"
name: 'UploadIdNumber', :style="{ width: width / 4 + 'px', height: height / 4 + 'px' }"
props: { ></image>
backImg: { </u-upload>
type: String, </view>
require: true, </template>
},
value: { <script>
type: String, import { uploadFile } from '@/api/upload.js';
default: null export default {
}, name: 'UploadIdNumber',
width: { props: {
type: Number, backImg: {
default: 280 type: String,
}, require: true,
height: { },
type: Number, value: {
default: 150 type: String,
}, default: null,
contentStyle: { },
type: String, width: {
default: '' type: Number,
} default: 280,
}, },
computed: { height: {
ImgUrl(val) { type: Number,
return this.value ? [{ default: 150,
name: 'img.jpg', },
url: this.value contentStyle: {
}] : [] type: String,
} default: '',
}, },
methods: { },
afterRead({ computed: {
file, ImgUrl(val) {
index, return this.value
name ? [
}) { {
// this.$emit("input", file); name: 'img.jpg',
uploadFile(file).then((url) => { url: this.value,
this.$emit("input", url); },
}) ]
}, : [];
deletePic() { },
this.$emit("input", null); },
}, methods: {
} afterRead({ file, index, name }) {
} // this.$emit("input", file);
</script> uploadFile(file).then((url) => {
this.$emit('input', url);
<style scoped> });
.content_upload { },
position: relative; deletePic() {
} this.$emit('input', null);
},
.iconimg { },
position: absolute; };
left: 50%; </script>
top: 50%;
transform: translate(-50%, -50%); <style scoped>
} .content_upload {
</style> position: relative;
}
.iconimg {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -308,7 +308,7 @@
<view <view
class="addressinfo" class="addressinfo"
@click="selectMap" @click="selectMap"
:style="`fontSize: 15px;color: ${info.address ? '#333333' : '#c0c4cc'}`" :style="{ fontSize: '15px', color: info.address ? '#333333' : '#c0c4cc' }"
> >
{{ info.address || '请选择' }} {{ info.address || '请选择' }}
</view> </view>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -86,6 +86,10 @@ async function DoAjax(options, config = {}) {
if (baseUrl) { if (baseUrl) {
options.url = baseUrl + options.url options.url = baseUrl + options.url
} }
// 馆陶替换url
if (options.url.startsWith('/api')) {
options.url = options.url.replace(/^\/api/, '/api/gt');
}
options = Object.assign({}, options, { options = Object.assign({}, options, {
header header
}); });

View File

@@ -7,10 +7,11 @@ module.exports = {
proxy: { proxy: {
'/api': { '/api': {
// target: 'http://192.168.1.115:8000', // target: 'http://192.168.1.115:8000',
target: 'http://39.98.184.58:8000', // target: 'http://39.98.184.58:8000',
target: 'http://39.98.44.136:80',
ws: true, ws: true,
pathRewrite: { pathRewrite: {
'^/api': '/' '^/api': '/api'
} }
}, },
'/qq/map': { '/qq/map': {