hookehuyr

✨ feat: 联调新建主办方API

......@@ -16,6 +16,15 @@
/* 调整下划线的起始位置 左侧是0 上边是1.15em */
background-position: 0 1.25rem;
}
.user-type-box, .user-status-box {
padding-top: 1rem;
.title {
font-size: 32rpx; margin-left: 1rem;
}
.border {
margin: 0 1rem; border-bottom: 1px solid #F2F2F2;
}
}
.sign-box {
width: 100%;
display: flex;
......
<!--
* @Date: 2022-09-19 14:11:06
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-10-09 11:25:53
* @LastEditTime: 2022-10-10 10:55:06
* @FilePath: /swx/src/pages/createProject/index.vue
* @Description: 文件描述
* @Description: 新建主办方页面
-->
<template>
<view class="create-project-page">
......@@ -12,9 +12,9 @@
<text class="bg-gradient" style="font-size: 1.25rem;">主办方信息设置</text>
</view>
</view>
<AtInput :border="true" title="主办方名称" type='text' placeholder='请输入主办方名称' v-model:value="username" />
<view style="padding-top: 1rem;">
<text style="font-size: 32rpx; margin-left: 1rem;">用户类型</text>
<AtInput :border="true" title="主办方名称" type='text' placeholder='请输入主办方名称' v-model:value="name" />
<view class="user-type-box">
<text class="title">用户类型</text>
<view class="sign-box">
<view @tap="onTapType(item)" @longpress="onLongPressType(item)" v-for="(item, index) in userType" :key="index"
class="sign-item" :class="{ 'checked': item.checked }"><text>{{ item.label }}</text></view>
......@@ -22,11 +22,10 @@
<van-icon name="plus" color="" />
</view>
</view>
<view style="margin: 0 1rem; border-bottom: 1px solid #F2F2F2;"></view>
<view class="border"></view>
</view>
<view style="padding-top: 1rem;">
<text style="font-size: 32rpx; margin-left: 1rem;">用户状态</text>
<view class="user-status-box">
<text class="title">用户状态</text>
<view class="sign-box">
<view @tap="onTapStatus(item)" @longpress="onLongPressStatus(item)" v-for="(item, index) in userStatus" :key="index"
class="sign-item" :class="{ 'checked': item.checked }"><text>{{ item.label }}</text></view>
......@@ -34,10 +33,10 @@
<van-icon name="plus" color="" />
</view>
</view>
<view style="margin: 0 1rem; border-bottom: 1px solid #F2F2F2;"></view>
<view class="border"></view>
</view>
<view style="height: 6rem;"></view>
<bottom-button @on-submit="onSubmit">保存</bottom-button>
<bottom-button @on-submit="onSave">保存</bottom-button>
</view>
<!-- 用户类型弹出框 -->
......@@ -48,9 +47,9 @@
<text class="bg-gradient">用户类型</text>
</view>
<view style="width: 22rem;">
<van-field :value="message" label-class="label-class" input-class="input-class" rows="1" autosize label="字段名称"
type="textarea" placeholder="请输入字段名称(6个字以内)" placeholder-style="color: #999;" customStyle="" inputAlign=""
rightIcon="" :required="true" :maxlength="6" :border="true" @change="onChangeType" />
<van-field :value="add_user_type" label-class="label-class" input-class="input-class" rows="1" autosize label="用户类型"
type="textarea" placeholder="请输入用户类型(6个字以内)" placeholder-style="color: #999;" customStyle="" inputAlign=""
rightIcon="" :required="true" :border="true" @change="onChangeType" />
<van-row>
<van-col span="12">
<view class="cancel-box">
......@@ -76,9 +75,9 @@
<text class="bg-gradient">用户状态</text>
</view>
<view style="width: 22rem;">
<van-field :value="message" label-class="label-class" input-class="input-class" rows="1" autosize label="字段名称"
type="textarea" placeholder="请输入字段名称(6个字以内)" placeholder-style="color: #999;" customStyle="" inputAlign=""
rightIcon="" :required="true" :maxlength="6" :border="true" @change="onChangeStatus" />
<van-field :value="add_user_status" label-class="label-class" input-class="input-class" rows="1" autosize label="用户状态"
type="textarea" placeholder="请输入用户状态(6个字以内)" placeholder-style="color: #999;" customStyle="" inputAlign=""
rightIcon="" :required="true" :border="true" @change="onChangeStatus" />
<van-row>
<van-col span="12">
<view class="cancel-box">
......@@ -95,6 +94,7 @@
</view>
</view>
</van-overlay>
<van-toast id="van-toast" />
</template>
<script setup>
......@@ -103,70 +103,88 @@ import { ref } from "vue";
import { AtInput } from 'taro-ui-vue3'
import "taro-ui-vue3/dist/style/components/input.scss";
import bottomButton from "@/components/bottom-button";
const username = ref('');
const onSubmit = (val) => {
console.warn(val);
Taro.showToast({
title: '请检查输入项',
icon: 'error',
duration: 2000
import request from '../../utils/request';
import Toast from '@/components/vant-weapp/toast/toast';
const name = ref('');
const user_type = ref([]);
const user_status = ref([]);
const add_user_type= ref('');
const add_user_status = ref('');
const onSave = () => {
if (!name.value) {
Toast.fail('名称不能为空');
return false;
}
let temp_user_type = userType.value.filter(element => element.checked);
user_type.value = temp_user_type.map(element => element.label);
let temp_user_status = userStatus.value.filter(element => element.checked);
user_status.value = temp_user_status.map(element => element.label);
// 保存主办方信息
request.post('/srv/?a=host_add', {
name: name.value,
user_type: user_type.value,
user_status: user_status.value,
})
.then(res => {
if (res.data.code) {
Toast.success('保存成功');
Taro.navigateBack({
delta: 1
});
} else {
console.warn(res.data.msg);
}
})
.catch(err => {
console.error(err);
});
// Taro.redirectTo({
// url: '../joinSuccess/index'
// })
}
const userType = ref([{
key: '首次参与',
label: '首次参与',
checked: 1,
}, {
key: '老用户',
label: '老用户',
checked: 1,
}]);
const userStatus = ref([{
key: '跟踪',
label: '跟踪',
checked: 1,
}, {
key: '引导',
label: '引导',
checked: 1,
}]);
// 用户类型
// 用户类型弹框操作
const onTapType = (item) => {
item.checked = !item.checked
}
const onLongPressType = (item) => {
console.warn(item);
show_edit_type.value = true;
}
const show_edit_type = ref(false)
const onChangeType = ({ detail }) => {
console.warn(detail);
checked.value = detail;
add_user_type.value = detail;
}
const closeEditType = () => {
show_edit_type.value = false;
}
const confirmEditType = () => {
show_edit_type.value = false;
userType.value.push({
key: '推荐人',
label: '推荐人',
checked: 1,
})
if (!add_user_type.value) {
Toast.fail('名称不能为空');
} else {
show_edit_type.value = false;
userType.value.push({
label: add_user_type.value,
checked: 1,
});
add_user_type.value = '';
}
}
const addSign = () => {
show_edit_type.value = true;
}
......@@ -175,31 +193,28 @@ const addSign = () => {
const onTapStatus = (item) => {
item.checked = !item.checked
}
const onLongPressStatus = (item) => {
console.warn(item);
show_edit_status.value = true;
}
const show_edit_status= ref(false)
const onChangeStatus = ({ detail }) => {
console.warn(detail);
checked.value = detail;
add_user_status.value = detail;
}
const closeEditStatus = () => {
show_edit_status.value = false;
}
const confirmEditStatus = () => {
show_edit_status.value = false;
userStatus.value.push({
key: '关注',
label: '关注',
checked: 1,
})
if (!add_user_status.value) {
Toast.fail('名称不能为空');
} else {
show_edit_status.value = false;
userStatus.value.push({
label: add_user_status.value,
checked: 1,
})
add_user_status.value = '';
}
}
const addStatus = () => {
show_edit_status.value = true;
}
......