添加其它技术分类
This commit is contained in:
@@ -179,11 +179,15 @@ class Common extends Api
|
||||
'key' => $key == 0 ? '-1' : $key,
|
||||
];
|
||||
}
|
||||
// 过滤空值,避免配置项为空时返回空字符串标签
|
||||
$toLabels = function ($value) {
|
||||
return array_values(array_filter(array_map('trim', explode(',', $value ?? ''))));
|
||||
};
|
||||
$config = [
|
||||
'languageLabels' => explode(',', $code_languages),
|
||||
'frontLabels' => explode(',', $front_techs),
|
||||
'backendLabels' => explode(',', $back_techs),
|
||||
'otherLabels' => explode(',', $other_techs),
|
||||
'languageLabels' => $toLabels($code_languages),
|
||||
'frontLabels' => $toLabels($front_techs),
|
||||
'backendLabels' => $toLabels($back_techs),
|
||||
'otherLabels' => $toLabels($other_techs),
|
||||
'developTypes' => $developTypes,
|
||||
];
|
||||
|
||||
|
||||
@@ -20,6 +20,10 @@ class Developer extends Api
|
||||
* @param array $images 图片数组
|
||||
* @param array $files 文件数组
|
||||
* @param string $contact 联系方式
|
||||
* @param array $languageSelected 选中的编程语言
|
||||
* @param array $frontSelected 选中的前端技术
|
||||
* @param array $backendSelected 选中的后端技术
|
||||
* @param array $otherSelected 选中的其它技术
|
||||
*/
|
||||
public function submit()
|
||||
{
|
||||
@@ -46,7 +50,16 @@ class Developer extends Api
|
||||
if (DeveloperService::getOne(['user_id' => $userId])) {
|
||||
exception('您已经申请入驻,请勿重复申请!');
|
||||
}
|
||||
$params['tags'] = array_filter(array_merge($params['languageSelected'], $params['frontSelected'], $params['backendSelected']));
|
||||
// 合并各技术分类选中的标签(编程语言/前端技术/后端技术/其它技术)
|
||||
$params['tags'] = array_values(array_unique(array_filter(array_merge(
|
||||
(array)($params['languageSelected'] ?? []),
|
||||
(array)($params['frontSelected'] ?? []),
|
||||
(array)($params['backendSelected'] ?? []),
|
||||
(array)($params['otherSelected'] ?? [])
|
||||
))));
|
||||
if (empty($params['tags'])) {
|
||||
$this->error('技能标签不能为空');
|
||||
}
|
||||
DeveloperService::instance()->create($params, $userId);
|
||||
$this->success('申请已提交,等待审核通过即可接单');
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@@ -27,7 +27,7 @@ class DeveloperService
|
||||
$saveData = [
|
||||
'user_id' => $userId,
|
||||
'job' => $data['job'] ?? '',
|
||||
'tags' => implode(',', $data['tags'] ?? ''),
|
||||
'tags' => implode(',', array_filter((array)($data['tags'] ?? []))),
|
||||
'work_years' => $data['work_years'] ?? 0,
|
||||
'contact' => $data['contact'] ?? '',
|
||||
'desc' => $data['desc'] ?? '',
|
||||
|
||||
@@ -9,12 +9,15 @@ Page({
|
||||
languageLabels: [],
|
||||
frontLabels: [],
|
||||
backendLabels: [],
|
||||
otherLabels: [],
|
||||
languageSelected: [],
|
||||
frontSelected: [],
|
||||
backendSelected: [],
|
||||
otherSelected: [],
|
||||
languageSelectedMap: {},
|
||||
frontSelectedMap: {},
|
||||
backendSelectedMap: {},
|
||||
otherSelectedMap: {},
|
||||
desc: '',
|
||||
job: '',
|
||||
workYears: 0,
|
||||
@@ -28,9 +31,10 @@ Page({
|
||||
wx.$util.request(wx.$api.CommonGetMiniConfig, {}, 'GET').then(res => {
|
||||
if (res.code === 1) {
|
||||
this.setData({
|
||||
languageLabels: res.data.languageLabels,
|
||||
frontLabels: res.data.frontLabels,
|
||||
backendLabels: res.data.backendLabels,
|
||||
languageLabels: res.data.languageLabels || [],
|
||||
frontLabels: res.data.frontLabels || [],
|
||||
backendLabels: res.data.backendLabels || [],
|
||||
otherLabels: res.data.otherLabels || [],
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -64,11 +68,11 @@ Page({
|
||||
});
|
||||
},
|
||||
onSubmit() {
|
||||
const { backendSelected, frontSelected, languageSelected, contact, job, workYears, desc } = this.data;
|
||||
const { backendSelected, frontSelected, languageSelected, otherSelected, contact, job, workYears, desc } = this.data;
|
||||
|
||||
const validations = [
|
||||
{
|
||||
condition: !backendSelected.length && !frontSelected.length && !languageSelected.length,
|
||||
condition: !backendSelected.length && !frontSelected.length && !languageSelected.length && !otherSelected.length,
|
||||
message: '技能不能为空'
|
||||
},
|
||||
{
|
||||
@@ -106,6 +110,7 @@ Page({
|
||||
backendSelected: backendSelected,
|
||||
frontSelected: frontSelected,
|
||||
languageSelected: languageSelected,
|
||||
otherSelected: otherSelected,
|
||||
job: job,
|
||||
contact: contact,
|
||||
work_years: workYears,
|
||||
|
||||
@@ -38,6 +38,18 @@
|
||||
>{{item}}</view>
|
||||
</view>
|
||||
</t-collapse-panel>
|
||||
<t-collapse-panel header="其它技术" value="{{3}}">
|
||||
<view class="chip-list">
|
||||
<view
|
||||
wx:for="{{otherLabels}}"
|
||||
wx:key="index"
|
||||
class="chip-item {{otherSelectedMap[item] ? 'chip-item--active' : ''}}"
|
||||
data-field="other"
|
||||
data-value="{{item}}"
|
||||
bindtap="onChipTap"
|
||||
>{{item}}</view>
|
||||
</view>
|
||||
</t-collapse-panel>
|
||||
</t-collapse>
|
||||
|
||||
<t-divider />
|
||||
|
||||
Reference in New Issue
Block a user