1

parent aee91a17
...@@ -22,10 +22,12 @@ ...@@ -22,10 +22,12 @@
"@dcloudio/uni-mp-weixin": "3.0.0-4000720240327002", "@dcloudio/uni-mp-weixin": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-xhs": "3.0.0-4000720240327002", "@dcloudio/uni-mp-xhs": "3.0.0-4000720240327002",
"@dcloudio/uni-quickapp-webview": "3.0.0-4000720240327002", "@dcloudio/uni-quickapp-webview": "3.0.0-4000720240327002",
"@vant/area-data": "^2.0.0",
"axios": "^1.7.2", "axios": "^1.7.2",
"dayjs": "^1.11.12", "dayjs": "^1.11.12",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"pinia": "2.0.36", "pinia": "2.0.36",
"vant": "^4.9.8",
"vconsole": "^3.15.1", "vconsole": "^3.15.1",
"vue": "^3.3.11", "vue": "^3.3.11",
"vue-i18n": "^9.1.9", "vue-i18n": "^9.1.9",
...@@ -4696,6 +4698,24 @@ ...@@ -4696,6 +4698,24 @@
"dev": true, "dev": true,
"peer": true "peer": true
}, },
"node_modules/@vant/area-data": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/@vant/area-data/-/area-data-2.0.0.tgz",
"integrity": "sha512-zgP4AA8z09S9QTNgVCCHo9cHjcybrv22RJDYPjuCkecn4SB98T5EoPQh2TwqbQXmUhbaOGgiZGy3OUaUxnY7qg=="
},
"node_modules/@vant/popperjs": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
},
"node_modules/@vant/use": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz",
"integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/@vitejs/plugin-legacy": { "node_modules/@vitejs/plugin-legacy": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz",
...@@ -14320,6 +14340,24 @@ ...@@ -14320,6 +14340,24 @@
"spdx-expression-parse": "^3.0.0" "spdx-expression-parse": "^3.0.0"
} }
}, },
"node_modules/vant": {
"version": "4.9.8",
"resolved": "https://registry.npmmirror.com/vant/-/vant-4.9.8.tgz",
"integrity": "sha512-iP+jNzwxkCeEdTrlUjro3WoXgY32+1CldOtLSc2K8acY7hR7t1zCkjzXSR9zWjtWT7zgNL1LEXofL8O7mtkYdQ==",
"dependencies": {
"@vant/popperjs": "^1.3.0",
"@vant/use": "^1.6.0",
"@vue/shared": "^3.5.11"
},
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/vant/node_modules/@vue/shared": {
"version": "3.5.12",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.12.tgz",
"integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg=="
},
"node_modules/vary": { "node_modules/vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
......
...@@ -22,10 +22,12 @@ ...@@ -22,10 +22,12 @@
"@dcloudio/uni-mp-weixin": "3.0.0-4000720240327002", "@dcloudio/uni-mp-weixin": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-xhs": "3.0.0-4000720240327002", "@dcloudio/uni-mp-xhs": "3.0.0-4000720240327002",
"@dcloudio/uni-quickapp-webview": "3.0.0-4000720240327002", "@dcloudio/uni-quickapp-webview": "3.0.0-4000720240327002",
"@vant/area-data": "^2.0.0",
"axios": "^1.7.2", "axios": "^1.7.2",
"dayjs": "^1.11.12", "dayjs": "^1.11.12",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"pinia": "2.0.36", "pinia": "2.0.36",
"vant": "^4.9.8",
"vconsole": "^3.15.1", "vconsole": "^3.15.1",
"vue": "^3.3.11", "vue": "^3.3.11",
"vue-i18n": "^9.1.9", "vue-i18n": "^9.1.9",
......
// 可以将此代码放置于项目src/hooks/useColPickerData.ts中
import { useCascaderAreaData } from '@vant/area-data'
export type CascaderOption = {
text: any
value: any
children?: any[]
}
/**
* 使用'@vant/area-data'作为数据源,构造ColPicker组件的数据
* @returns
*/
export function useColPickerData() {
// '@vant/area-data' 数据源
const colPickerData: any[] = useCascaderAreaData()
// 根据code查找子节点,不传code则返回所有节点
function findChildrenByCode(data: any[], code?: any): any[] | null {
if (!code) {
return data
}
for (const item of data) {
if (item.value === code) {
return item.children || null
}
if (item.children) {
const childrenResult = findChildrenByCode(item.children, code)
if (childrenResult) {
return childrenResult
}
}
}
return null
}
return { colPickerData, findChildrenByCode }
}
\ No newline at end of file
...@@ -3,6 +3,8 @@ import App from "./App.vue"; ...@@ -3,6 +3,8 @@ import App from "./App.vue";
import store from "./store"; import store from "./store";
import Vconsole from "vconsole"; import Vconsole from "vconsole";
import NavBar from "@/components/navBar/index.vue"; import NavBar from "@/components/navBar/index.vue";
import { Area } from 'vant'
import 'vant/lib/index.css';
// 字体 // 字体
import '@/assets/font.css'; import '@/assets/font.css';
import { formatTimestamp } from "@/utils/utils"; import { formatTimestamp } from "@/utils/utils";
...@@ -12,6 +14,7 @@ export function createApp() { ...@@ -12,6 +14,7 @@ export function createApp() {
app.component("NavBar", NavBar); app.component("NavBar", NavBar);
const vConsole = new Vconsole(); const vConsole = new Vconsole();
app.use(store); app.use(store);
app.use(Area);
// app.use(vConsole); // app.use(vConsole);
return { return {
app app
......
...@@ -33,7 +33,18 @@ ...@@ -33,7 +33,18 @@
data.bm ? "立即报名" : "报名结束" data.bm ? "立即报名" : "报名结束"
}}</wd-button> }}</wd-button>
</wd-tabbar> </wd-tabbar>
<wd-action-sheet v-model="show" :actions="actions" @close="close" @select="select" /> <wd-popup
v-model="show"
lock-scroll
position="bottom"
:safe-area-inset-bottom="true"
custom-style="height: 200px;border-radius: 30rpx 30rpx 0 0;"
@close="handleClose10"
>
<view class="select">
<view v-for="(item, index) in actions" :key="index" @click="select({ item, index })">{{ item.name }}</view>
</view>
</wd-popup>
</div> </div>
</template> </template>
...@@ -46,7 +57,7 @@ const data = ref({}); ...@@ -46,7 +57,7 @@ const data = ref({});
const show = ref(false); const show = ref(false);
const actions = ref([ const actions = ref([
{ {
name: "更新岗位" name: "选择已有岗位"
}, },
{ {
name: "新增岗位" name: "新增岗位"
...@@ -77,6 +88,7 @@ function close() { ...@@ -77,6 +88,7 @@ function close() {
show.value = false; show.value = false;
} }
function select({ item, index }) { function select({ item, index }) {
show.value = false;
if (index == 0) { if (index == 0) {
xma.navigateTo({ xma.navigateTo({
url: `/pages/signUp/addPost?articleId=${articleId.value}&type=update` url: `/pages/signUp/addPost?articleId=${articleId.value}&type=update`
...@@ -146,6 +158,22 @@ function next() { ...@@ -146,6 +158,22 @@ function next() {
} }
} }
} }
.select {
margin: 0 auto;
width: 100%;
align-items: center;
display: flex;
flex-direction: column;
margin-top: 100rpx;
view {
width: 100%;
text-align: center;
padding: 20rpx 0;
font-weight: 600;
font-size: 36rpx;
color: #404040;
}
}
.foot-btn { .foot-btn {
position: fixed; position: fixed;
display: flex; display: flex;
......
...@@ -80,7 +80,7 @@ import { useAsync } from "@/hooks/useAsync"; ...@@ -80,7 +80,7 @@ import { useAsync } from "@/hooks/useAsync";
import _ from "lodash"; import _ from "lodash";
import Filter from "@/components/filter/index.vue"; import Filter from "@/components/filter/index.vue";
/* tab */ /* tab */
const contentHeight = ref("100rpx"); const contentHeight = ref("50px");
const activeTab = ref("求职推荐"); const activeTab = ref("求职推荐");
const changeActiveTab = tab => { const changeActiveTab = tab => {
activeTab.value = tab; activeTab.value = tab;
...@@ -236,6 +236,7 @@ const getResumeRecommendList = () => { ...@@ -236,6 +236,7 @@ const getResumeRecommendList = () => {
onShow(() => { onShow(() => {
resetPageParams(); resetPageParams();
getResumeRecommendList(); getResumeRecommendList();
getUserInfo();
}); });
// 城市筛选 // 城市筛选
const valueCity = ref([]); const valueCity = ref([]);
...@@ -310,10 +311,16 @@ const filterConfirm = data => { ...@@ -310,10 +311,16 @@ const filterConfirm = data => {
/* 获取用户信息 */ /* 获取用户信息 */
const getUserInfo = async () => { const getUserInfo = async () => {
const userRes = await getLoginUserApi(); const userRes = await getLoginUserApi();
if (userRes.data.status == 0) { if (!userRes.data) {
xma.navigateTo({ xma.navigateTo({
url: `/pages/user/businessLicense/fillIn?steps=3` url: `/pages/user/businessLicense/fillIn?steps=1`
}); });
} else {
if (userRes.data.status == 0) {
xma.navigateTo({
url: `/pages/user/businessLicense/fillIn?steps=3`
});
}
} }
}; };
onLoad(() => { onLoad(() => {
...@@ -327,7 +334,6 @@ onLoad(() => { ...@@ -327,7 +334,6 @@ onLoad(() => {
contentHeight.value = (res.top + res.bottom) / 2 + 25 + "px"; contentHeight.value = (res.top + res.bottom) / 2 + 25 + "px";
} }
}); });
getUserInfo();
}); });
</script> </script>
...@@ -341,18 +347,18 @@ onLoad(() => { ...@@ -341,18 +347,18 @@ onLoad(() => {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding-bottom: 14rpx; padding-bottom: 7px;
background-color: #ffffff; background-color: #ffffff;
text { text {
width: 280rpx; width: 140px;
height: 80rpx; height: 40px;
font-size: 36rpx; font-size: 18px;
line-height: 80rpx; line-height: 40px;
color: #1b2026; color: #1b2026;
text-align: center; text-align: center;
&.active { &.active {
position: relative; position: relative;
font-size: 36rpx; font-size: 18px;
font-weight: 600; font-weight: 600;
background-image: url("https://lygsh-image.wjzpgz.com/community/communityActiveTab.png"); background-image: url("https://lygsh-image.wjzpgz.com/community/communityActiveTab.png");
background-repeat: no-repeat; background-repeat: no-repeat;
...@@ -372,56 +378,56 @@ onLoad(() => { ...@@ -372,56 +378,56 @@ onLoad(() => {
flex-grow: 1; flex-grow: 1;
.filter { .filter {
position: relative; position: relative;
padding: 0 32rpx 0 44rpx; padding: 0 16px 0 22px;
.filter-opstion { .filter-opstion {
max-width: 230rpx; max-width: 115px;
:deep(.wd-picker__field) { :deep(.wd-picker__field) {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.t1 { .t1 {
font-size: 24rpx; font-size: 12px;
font-weight: normal; font-weight: normal;
line-height: 36rpx; line-height: 18px;
color: #77818f; color: #77818f;
} }
.t2 { .t2 {
flex-grow: 1; flex-grow: 1;
width: 100rpx; width: 50px;
overflow: hidden; overflow: hidden;
font-size: 32rpx; font-size: 16px;
font-weight: 600; font-weight: 600;
line-height: 48rpx; line-height: 24px;
color: #1b2026; color: #1b2026;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
.arrow { .arrow {
width: 0; width: 0;
height: 0; height: 0;
margin-left: 20rpx; margin-left: 10px;
border-color: #c9cdd4; border-color: #c9cdd4;
border-width: 8rpx; border-width: 4px;
transform: rotateZ(45deg) translateY(-4rpx); transform: rotateZ(45deg) translateY(-2px);
} }
} }
} }
.filter-other { .filter-other {
gap: 16rpx; gap: 8px;
.item { .item {
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
padding: 12rpx 18rpx; padding: 6px 9px;
font-size: 24rpx; font-size: 12px;
font-weight: normal; font-weight: normal;
line-height: 24rpx; line-height: 12px;
color: #1f86ff; color: #1f86ff;
background: rgb(31 134 255 / 10%); background: rgb(31 134 255 / 10%);
.arrow { .arrow {
width: 0; width: 0;
height: 0; height: 0;
margin-left: 4rpx; margin-left: 2px;
border-color: #1f86ff; border-color: #1f86ff;
border-width: 4rpx; border-width: 2px;
transform: rotateZ(0deg); transform: rotateZ(0deg);
} }
} }
...@@ -436,25 +442,25 @@ onLoad(() => { ...@@ -436,25 +442,25 @@ onLoad(() => {
height: 100%; height: 100%;
background-color: #00000066; background-color: #00000066;
.wrapper { .wrapper {
padding: 1rpx 40rpx; padding: 0.5px 20px;
background-color: #ffffff; background-color: #ffffff;
.other-view-item { .other-view-item {
margin-top: 24rpx; margin-top: 12px;
label { label {
font-size: 24rpx; font-size: 12px;
color: #1b2026; color: #1b2026;
} }
.select-list { .select-list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 24rpx; gap: 12px;
margin-top: 24rpx; margin-top: 12px;
.select-item { .select-item {
padding: 12rpx 28rpx; padding: 6px 14px;
font-size: 24rpx; font-size: 12px;
color: #a3a7b3; color: #a3a7b3;
border: 2rpx solid #e1e2e6; border: 1px solid #e1e2e6;
border-radius: 8rpx; border-radius: 4px;
&.active { &.active {
color: #1f86ff; color: #1f86ff;
background: rgb(31 134 255 / 10%); background: rgb(31 134 255 / 10%);
...@@ -463,36 +469,36 @@ onLoad(() => { ...@@ -463,36 +469,36 @@ onLoad(() => {
} }
} }
:deep(.wd-slider) { :deep(.wd-slider) {
height: 36rpx; height: 18px;
padding-top: 36rpx; padding-top: 18px;
.wd-slider__button-wrapper { .wd-slider__button-wrapper {
width: 30rpx; width: 15px;
height: 30rpx; height: 15px;
.wd-slider__button { .wd-slider__button {
width: 30rpx; width: 15px;
height: 30rpx; height: 15px;
} }
.wd-slider__label { .wd-slider__label {
bottom: 36rpx; bottom: 18px;
width: 30rpx; width: 15px;
font-size: 20rpx; font-size: 10px;
} }
} }
.wd-slider__bar-wrapper { .wd-slider__bar-wrapper {
margin: 0 40rpx; margin: 0 20px;
} }
} }
} }
.button-wrap { .button-wrap {
display: flex; display: flex;
gap: 24rpx; gap: 12px;
justify-content: flex-end; justify-content: flex-end;
padding: 32rpx 0; padding: 16px 0;
div { div {
padding: 10rpx 24rpx; padding: 5px 12px;
font-size: 28rpx; font-size: 14px;
color: #1f86ff; color: #1f86ff;
border-radius: 8rpx; border-radius: 4px;
} }
.reset { .reset {
color: #ffffff; color: #ffffff;
...@@ -500,20 +506,20 @@ onLoad(() => { ...@@ -500,20 +506,20 @@ onLoad(() => {
} }
.confirm { .confirm {
color: #1f86ff; color: #1f86ff;
border: 2rpx solid #1f86ff; border: 1px solid #1f86ff;
} }
} }
} }
} }
.recommend-list { .recommend-list {
flex-grow: 1; flex-grow: 1;
height: 200rpx; height: 100px;
.item { .item {
padding: 16rpx 32rpx; padding: 8px 16px;
border-bottom: 16rpx solid #f3f4f8; border-bottom: 8px solid #f3f4f8;
} }
.wd-status-tip { .wd-status-tip {
padding-top: 280rpx; padding-top: 140px;
} }
} }
} }
......
<template> <template>
<div class="page"> <div class="page" :style="{ background: pageType == 'update' ? '#fff' : '#E8E9EA' }">
<NavBar :showIcon="true" :showTitle="true" title="岗位信息" backgroundBox="#FFFFFF"></NavBar> <NavBar :showIcon="true" :showTitle="true" title="岗位信息" backgroundBox="#FFFFFF"></NavBar>
<view class="from-1" v-if="pageType == 'update'"> <view class="from-1" v-if="pageType == 'update'">
<wd-checkbox-group v-model="value"> <wd-checkbox-group v-model="value">
...@@ -10,11 +10,15 @@ ...@@ -10,11 +10,15 @@
<view class="tip">贵阳|{{ i.workDic }}{{ i.jobTypeName }}</view> <view class="tip">贵阳|{{ i.workDic }}{{ i.jobTypeName }}</view>
</view> </view>
</view> </view>
<wd-status-tip v-if="!gwList || gwList.length == 0" image="content" tip="暂无岗位" />
</wd-checkbox-group> </wd-checkbox-group>
</view> </view>
<view v-else> <view v-else>
<view class="from-2" v-for="(item, index) in jobForm" :key="index"> <view class="from-2" v-for="(item, index) in jobForm" :key="index">
<view class="title">新增岗位信息{{ index + 1 }}</view> <view class="title">
<view>添加岗位信息{{ index + 1 }}</view>
<wd-icon v-if="index > 0" @click="deleteItem(index)" name="close-outline" size="34rpx"></wd-icon
></view>
<selectbox <selectbox
@update="initSalaryColumns" @update="initSalaryColumns"
:options="EnumWorkMode" :options="EnumWorkMode"
...@@ -52,56 +56,57 @@ ...@@ -52,56 +56,57 @@
<textarea maxlength="800" v-model="item.positionDesc" placeholder="请输入你的职位描述"></textarea> <textarea maxlength="800" v-model="item.positionDesc" placeholder="请输入你的职位描述"></textarea>
</form-item> </form-item>
</form-row> </form-row>
<view class="transverse"> <form-item title="职位薪资" icon="">
<form-item title="职位薪资" icon=""> <view
<view v-if="item.settlementType == 4"
v-if="item.settlementType == 4" :class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
:class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`" style="display: flex; justify-content: space-between; width: 100%"
@click="onOpen(item, index)" @click="onOpen(item, index)"
> >
{{ item.salaryText || "请选择月薪范围" }} {{ item.salaryText || "请选择月薪范围" }}
<!-- <view class="arrow"></view> --> <!-- <view class="arrow"></view> -->
<checkbox <checkbox
class="checkbox" class="checkbox"
:value="item.negotiableSalary" :value="item.negotiableSalary"
@click="onChecked(item)" @click="onChecked(item)"
:checked="item.negotiableSalary == 1" :checked="item.negotiableSalary == 1"
>面议</checkbox >面议</checkbox
>
</view>
<view
v-else
:class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
@click="onOpen(item, index)"
> >
{{ item.salaryText || "请选择时薪范围" }} </view>
<!-- <view class="arrow"></view> --> <view
<checkbox v-else
class="checkbox" :class="`inner flex-between ${item.salaryText ? '' : 'placeholder'}`"
:value="item.negotiableSalary" style="display: flex; justify-content: space-between; width: 100%"
@click="onChecked(item)" @click="onOpen(item, index)"
:checked="item.negotiableSalary == 1" >
>面议</checkbox {{ item.salaryText || "请选择时薪范围" }}
> <!-- <view class="arrow"></view> -->
</view> <checkbox
</form-item> class="checkbox"
<form-item title="工作地址" icon=""> :value="item.negotiableSalary"
<wd-col-picker @click="onChecked(item)"
v-model="cityValue" :checked="item.negotiableSalary == 1"
:columns="cityOpstion" >面议</checkbox
value-key="code"
label-key="name"
:column-change="columnChangeCity"
@confirm="params => handleConfirmCity(params, item)"
use-default-slot
> >
<p :class="{ placeholder: !item.cityText }" class="text-single"> </view>
{{ item.cityText || "请选择公司所在地" }} </form-item>
</p>
</wd-col-picker> <form-item title="工作地址" icon="">
</form-item> <wd-col-picker
</view> v-model="cityValue"
:columns="cityOpstion"
value-key="code"
label-key="name"
:column-change="columnChangeCity"
@confirm="params => handleConfirmCity(params, item)"
use-default-slot
>
<p :class="{ placeholder: !item.cityText }" class="text-single">
{{ item.cityText || "请选择公司所在地" }}
</p>
</wd-col-picker>
</form-item>
<form-item title="是否提供食宿" icon=""> <form-item title="是否提供食宿" icon="">
<wd-radio-group v-model="item.accommodation" inline shape="dot"> <wd-radio-group v-model="item.accommodation" inline shape="dot">
<wd-radio v-for="(v, n) in radioOpstion" :value="v.code" :key="n">{{ v.text }}</wd-radio> <wd-radio v-for="(v, n) in radioOpstion" :value="v.code" :key="n">{{ v.text }}</wd-radio>
...@@ -414,6 +419,9 @@ function handleClose() { ...@@ -414,6 +419,9 @@ function handleClose() {
} }
salaryShow.value = false; salaryShow.value = false;
} }
function deleteItem(index) {
jobForm.value.splice(index, 1);
}
const initageColumns = () => { const initageColumns = () => {
const temp = [ const temp = [
{ {
...@@ -439,7 +447,7 @@ getTreeListApi({ provinceName: "贵州省" }).then(res => { ...@@ -439,7 +447,7 @@ getTreeListApi({ provinceName: "贵州省" }).then(res => {
cityOpstion.value.push(res.data[0].children); cityOpstion.value.push(res.data[0].children);
}); });
getEnumWorkMode(); getEnumWorkMode();
positionList({}).then(res => { positionList({ stutas: 3 }).then(res => {
res.data = res.data.map(item => { res.data = res.data.map(item => {
item.workDic = EnumWorkMode.value.find(v => v.code == item.workMode).text; item.workDic = EnumWorkMode.value.find(v => v.code == item.workMode).text;
return item; return item;
...@@ -841,10 +849,15 @@ page { ...@@ -841,10 +849,15 @@ page {
flex-direction: column; flex-direction: column;
padding: 32rpx; padding: 32rpx;
margin-top: 32rpx; margin-top: 32rpx;
background: #fff;
.title { .title {
font-size: 48rpx; font-size: 48rpx;
font-weight: 500; font-weight: 500;
color: #1b2026; color: #1b2026;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 32rpx; margin-bottom: 32rpx;
} }
textarea { textarea {
...@@ -892,7 +905,6 @@ page { ...@@ -892,7 +905,6 @@ page {
} }
.text-single { .text-single {
width: 100%; width: 100%;
margin-left: 20rpx;
white-space: wrap; white-space: wrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
......
...@@ -7,7 +7,7 @@ export const useDefineStore = defineStore("useDefineStore", ()=>{ ...@@ -7,7 +7,7 @@ export const useDefineStore = defineStore("useDefineStore", ()=>{
creditCode: "", creditCode: "",
licensePath: "", licensePath: "",
location:"", location:"",
licenseValidityPeriod: "" humanResourcesLicensePath: ""
}) })
function setFormDataKey(key, data) { function setFormDataKey(key, data) {
this.formData[key] = data; this.formData[key] = data;
......
...@@ -27,15 +27,15 @@ ...@@ -27,15 +27,15 @@
<view class="item"> <view class="item">
<view class="label"> 是否人资机构 </view> <view class="label"> 是否人资机构 </view>
<view class="content"> <view class="content">
<wd-radio-group v-model="pinias.formData.humanResourcesLicensePath" shape="dot" inline> <wd-radio-group v-model="isHumanResources" shape="dot" inline>
<wd-radio :value="pinias.formData.humanResourcesLicensePath"></wd-radio> <wd-radio value="1"></wd-radio>
<wd-radio value=""></wd-radio> <wd-radio value="2"></wd-radio>
</wd-radio-group> </wd-radio-group>
</view> </view>
</view> </view>
<view class="image-upload"> <view class="image-upload">
<image <image
v-if="pinias.formData.humanResourcesLicensePath" v-if="isHumanResources == '1' && pinias.formData.humanResourcesLicensePath"
:src="evn.APP_IMAGE_BASE_API + pinias.formData.humanResourcesLicensePath" :src="evn.APP_IMAGE_BASE_API + pinias.formData.humanResourcesLicensePath"
mode="" mode=""
/> />
...@@ -143,6 +143,7 @@ const navigateTo = url => { ...@@ -143,6 +143,7 @@ const navigateTo = url => {
url url
}); });
}; };
const isHumanResources = ref("1");
/* 选择图片 */ /* 选择图片 */
const chooseImage = sourceType => { const chooseImage = sourceType => {
uni.chooseImage({ uni.chooseImage({
...@@ -151,6 +152,7 @@ const chooseImage = sourceType => { ...@@ -151,6 +152,7 @@ const chooseImage = sourceType => {
success: async ({ tempFiles }) => { success: async ({ tempFiles }) => {
const res = await uploadFiles(tempFiles); const res = await uploadFiles(tempFiles);
pinias.setFormDataKey("humanResourcesLicensePath", res[0].key); pinias.setFormDataKey("humanResourcesLicensePath", res[0].key);
isHumanResources.value = 1;
} }
}); });
}; };
......
...@@ -55,13 +55,16 @@ const params = reactive({ ...@@ -55,13 +55,16 @@ const params = reactive({
}); });
onLoad(option => { onLoad(option => {
id.value = option.id; id.value = option.id;
feedbackByIdFn(option.id); if (option.id) {
feedbackByIdFn(option.id);
}
}); });
const feedbackByIdFn = id => { const feedbackByIdFn = id => {
feedbackById(id).then(feedback => { feedbackById(id).then(feedback => {
detail.value = feedback.data; detail.value = feedback.data;
params.questionDesc = feedback.data.questionDesc; params.questionDesc = feedback.data.questionDesc;
imgArr.value = feedback.data.imagesPath.split(","); imgArr.value = feedback.data.imagesPath.split(",");
console.log("imgArr.value", imgArr.value);
}); });
}; };
function previewImage(url) { function previewImage(url) {
......
...@@ -183,7 +183,7 @@ const appealInfoFn = () => { ...@@ -183,7 +183,7 @@ const appealInfoFn = () => {
const companyReviewInfoFn = () => { const companyReviewInfoFn = () => {
companyReviewInfo().then(res => { companyReviewInfo().then(res => {
const { reviewType, status } = res.data; const { reviewType, status } = res.data;
if (reviewType === 1) { if (reviewType == 1) {
navList[0].url = `/pages/user/myCompany/index?status=${status === 0 ? 2 : 3}`; navList[0].url = `/pages/user/myCompany/index?status=${status === 0 ? 2 : 3}`;
navList[0].subText = status === 0 ? "审核中" : "审核不通过"; navList[0].subText = status === 0 ? "审核中" : "审核不通过";
} else if (reviewType !== 1) { } else if (reviewType !== 1) {
...@@ -195,6 +195,11 @@ const companyReviewInfoFn = () => { ...@@ -195,6 +195,11 @@ const companyReviewInfoFn = () => {
/* 获取用户信息 */ /* 获取用户信息 */
const getUserInfo = async () => { const getUserInfo = async () => {
const userRes = await getLoginUserApi(); const userRes = await getLoginUserApi();
if (!userRes.data) {
uni.navigateTo({
url: `/pages/user/businessLicense/fillIn?steps=1`
});
}
if (userRes.code == 200) { if (userRes.code == 200) {
userInfo.value = userRes.data || {}; userInfo.value = userRes.data || {};
navList[0].subText = userRes.data.companyName; navList[0].subText = userRes.data.companyName;
......
...@@ -35,22 +35,25 @@ ...@@ -35,22 +35,25 @@
<formItem title="信用代码"> <formItem title="信用代码">
<p style="color: #77818f">{{ companyInfo.creditCode }}</p> <p style="color: #77818f">{{ companyInfo.creditCode }}</p>
</formItem> </formItem>
<formItem title="公司地址" arrow>
<formItem title="公司地址" icon="">
<wd-col-picker <wd-col-picker
v-model="cityValue" v-model="cityValue"
:columns="cityOpstion" :columns="cityOpstion"
:disabled="![1].includes(pageStatus)" :disabled="![1].includes(pageStatus)"
value-key="code" value-key="value"
label-key="name" label-key="label"
auto-complete
:column-change="columnChangeCity" :column-change="columnChangeCity"
@confirm="handleConfirmCity" @confirm="handleConfirmCity"
use-default-slot
> >
<p :class="{ placeholder: !params.location }" style="margin-left: 20rpx">
{{ params.location || "请选择公司所在地" }}
</p>
</wd-col-picker> </wd-col-picker>
</formItem> </formItem>
<formItem title="详细地址" arrow>
<p :class="{ placeholder: !params.location }" style="margin-left: 20rpx">
{{ params.location || "请选择公司所在地" }}
</p>
</formItem>
<div class="textarea-wrap" v-if="[1].includes(pageStatus)"> <div class="textarea-wrap" v-if="[1].includes(pageStatus)">
<p class="label">公司介绍</p> <p class="label">公司介绍</p>
<textarea maxlength="500" placeholder="请输入公司介绍" v-model="params.introduction" /> <textarea maxlength="500" placeholder="请输入公司介绍" v-model="params.introduction" />
...@@ -78,6 +81,8 @@ import { getTreeListApi, getDictDataApi } from "@/api/common"; ...@@ -78,6 +81,8 @@ import { getTreeListApi, getDictDataApi } from "@/api/common";
import { uploadFiles } from "@/utils/fileUpload"; import { uploadFiles } from "@/utils/fileUpload";
import { getEnumText } from "@/utils/utils"; import { getEnumText } from "@/utils/utils";
import evn from "@/utils/config"; import evn from "@/utils/config";
import { useColPickerData } from "@/hooks/useColPickerData.ts";
const { colPickerData, findChildrenByCode } = useColPickerData();
const params = reactive({ const params = reactive({
id: 0, id: 0,
...@@ -103,9 +108,15 @@ const jupmLicenseInfo = () => { ...@@ -103,9 +108,15 @@ const jupmLicenseInfo = () => {
}); });
} }
}; };
onLoad(({ status }) => { onLoad(async ({ status }) => {
pageStatus.value = status * 1; pageStatus.value = status * 1;
// await getTreeListApi().then(res => {
// // cityOpstion.value.push(res.data);
// });
await getDictDataApi(["EnumIndustryCategory"]).then(res => {
columns.value = res.data.EnumIndustryCategory;
});
if (status == 1) { if (status == 1) {
getCompanyInfoApiFn(); getCompanyInfoApiFn();
} else { } else {
...@@ -122,11 +133,26 @@ function getCompanyInfoApiFn() { ...@@ -122,11 +133,26 @@ function getCompanyInfoApiFn() {
Object.keys(params).forEach(key => { Object.keys(params).forEach(key => {
params[key] = res.data[key]; params[key] = res.data[key];
}); });
const { provinceName, cityName, districtName, name, introduction, logoPath } = res.data; const {
provinceName,
cityName,
districtName,
name,
introduction,
logoPath,
creditCode,
cityCode,
districtCode,
provinceCode
} = res.data;
params.companyName = name; params.companyName = name;
params.introduction = introduction; params.introduction = introduction;
params.logoPath = logoPath; params.logoPath = logoPath;
params.creditCode = creditCode;
await sleep();
if (provinceCode) {
cityValue.value = [provinceCode, cityCode, districtCode];
}
cityText.value = [provinceName, cityName, districtName].join("-"); cityText.value = [provinceName, cityName, districtName].join("-");
// 审核状态 // 审核状态
auditStatus.value = await getEnumText("EnumAuditStatus", res.data.status); auditStatus.value = await getEnumText("EnumAuditStatus", res.data.status);
...@@ -139,13 +165,30 @@ function companyReviewInfoFn() { ...@@ -139,13 +165,30 @@ function companyReviewInfoFn() {
params[key] = res.data[key]; params[key] = res.data[key];
}); });
const { provinceName, cityName, districtName, name, introduction, location, logoPath } = res.data; const {
provinceName,
cityName,
districtName,
name,
introduction,
location,
logoPath,
creditCode,
provinceCode,
cityCode,
districtCode
} = res.data;
cityText.value = location; cityText.value = location;
params.address = selectedItems.map(v => v.name).join("-");
params.companyName = name; params.companyName = name;
params.introduction = introduction; params.introduction = introduction;
params.logoPath = logoPath; params.logoPath = logoPath;
params.creditCode = creditCode;
await sleep();
if (provinceCode) {
cityValue.value = [provinceCode, cityCode, districtCode];
}
cityText.value = [provinceName, cityName, districtName].join("-"); cityText.value = [provinceName, cityName, districtName].join("-");
// 审核状态 // 审核状态
auditStatus.value = await getEnumText("EnumAuditStatus", res.data.status); auditStatus.value = await getEnumText("EnumAuditStatus", res.data.status);
...@@ -153,21 +196,38 @@ function companyReviewInfoFn() { ...@@ -153,21 +196,38 @@ function companyReviewInfoFn() {
} }
function handleConfirm() {} function handleConfirm() {}
/* 获取省市区 */ /* 获取省市区 */
const cityOpstion = ref([]); const cityOpstion = ref([
colPickerData.map(item => {
return {
value: item.value,
label: item.text
};
})
]);
const columns = ref([]); const columns = ref([]);
const cityValue = ref([]); const cityValue = ref([]);
const cityText = ref(""); const cityText = ref("");
let citySelectedItems = []; let citySelectedItems = [];
getTreeListApi().then(res => { function sleep(second = 1) {
cityOpstion.value.push(res.data); return new Promise(resolve => {
}); setTimeout(() => {
getDictDataApi(["EnumIndustryCategory"]).then(res => { resolve(true);
columns.value = res.data.EnumIndustryCategory; }, 1000 * second);
}); });
const columnChangeCity = ({ selectedItem, resolve, finish }) => { }
if (selectedItem.children) { const columnChangeCity = async ({ selectedItem, resolve, finish }) => {
resolve(selectedItem.children); await sleep(0.3);
const areaData = findChildrenByCode(colPickerData, selectedItem.value);
if (areaData && areaData.length) {
resolve(
areaData.map(item => {
return {
value: item.value,
label: item.text
};
})
);
} else { } else {
finish(); finish();
} }
...@@ -176,13 +236,14 @@ const handleConfirmCity = ({ selectedItems }) => { ...@@ -176,13 +236,14 @@ const handleConfirmCity = ({ selectedItems }) => {
cityText.value = selectedItems.map(v => v.name).join("-"); cityText.value = selectedItems.map(v => v.name).join("-");
citySelectedItems = selectedItems; citySelectedItems = selectedItems;
const [province, city, district] = selectedItems; const [province, city, district] = selectedItems;
params.provinceCode = province.code; params.provinceCode = province.value;
params.provinceName = province.name; params.provinceName = province.label;
params.cityCode = city.code; params.cityCode = city.value;
params.cityName = city.name; params.cityName = city.label;
params.districtCode = district.code; params.districtCode = district.value;
params.districtName = district.name; params.districtName = district.label;
params.location = selectedItems.map(v => v.name).join("-"); params.address = selectedItems.map(v => v.label).join("-");
// params.location = selectedItems.map(v => v.name).join("-");
}; };
/* 选择图片 */ /* 选择图片 */
const chooseImage = sourceType => { const chooseImage = sourceType => {
...@@ -200,6 +261,21 @@ const submit = () => { ...@@ -200,6 +261,21 @@ const submit = () => {
console.log("params", params); console.log("params", params);
if ( if (
// validateForm(params, [
// "location",
// "cityCode",
// "cityName",
// "companyName",
// "creditCode",
// "introduction",
// "districtCode",
// "districtName",
// "id",
// "logoPath",
// "provinceCode",
// "provinceName",
// "industry"
// ])
validateForm(params, [ validateForm(params, [
"location", "location",
"cityCode", "cityCode",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment