index.vue 6.03 KB
<!--
 * @Date: 2022-09-19 14:11:06
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2022-10-09 11:25:53
 * @FilePath: /swx/src/pages/createProject/index.vue
 * @Description: 文件描述
-->
<template>
  <view class="create-project-page">
    <view class="activity-title">
      <view class="box">
        <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>
      <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>
        <view class="sign-item" @tap="addSign">
          <van-icon name="plus" color="" />
        </view>
      </view>
      <view style="margin: 0 1rem; border-bottom: 1px solid #F2F2F2;"></view>
    </view>

    <view style="padding-top: 1rem;">
      <text style="font-size: 32rpx; margin-left: 1rem;">用户状态</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>
        <view class="sign-item" @tap="addStatus">
          <van-icon name="plus" color="" />
        </view>
      </view>
      <view style="margin: 0 1rem; border-bottom: 1px solid #F2F2F2;"></view>
    </view>
    <view style="height: 6rem;"></view>
    <bottom-button @on-submit="onSubmit">保存</bottom-button>
  </view>

  <!-- 用户类型弹出框 -->
  <van-overlay :show="show_edit_type" z-index="999">
    <view class="sign-wrapper">
      <view class="block">
        <view class="title">
          <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-row>
            <van-col span="12">
              <view class="cancel-box">
                <view class="button" @tap="closeEditType">取消</view>
              </view>
            </van-col>
            <van-col span="12">
              <view class="confirm-box">
                <view class="button" @tap="confirmEditType">确定</view>
              </view>
            </van-col>
          </van-row>
        </view>
      </view>
    </view>
  </van-overlay>

  <!-- 用户状态弹出框 -->
  <van-overlay :show="show_edit_status" z-index="999">
    <view class="sign-wrapper">
      <view class="block">
        <view class="title">
          <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-row>
            <van-col span="12">
              <view class="cancel-box">
                <view class="button" @tap="closeEditStatus">取消</view>
              </view>
            </van-col>
            <van-col span="12">
              <view class="confirm-box">
                <view class="button" @tap="confirmEditStatus">确定</view>
              </view>
            </van-col>
          </van-row>
        </view>
      </view>
    </view>
  </van-overlay>
</template>

<script setup>
import Taro from '@tarojs/taro'
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
  });
  // 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;
}

const closeEditType = () => {
  show_edit_type.value = false;
}
const confirmEditType = () => {
  show_edit_type.value = false;
  userType.value.push({
    key: '推荐人',
    label: '推荐人',
    checked: 1,
  })
}

const addSign = () => {
  show_edit_type.value = true;
}

// 用户状态
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;
}

const closeEditStatus = () => {
  show_edit_status.value = false;
}
const confirmEditStatus = () => {
  show_edit_status.value = false;
  userStatus.value.push({
    key: '关注',
    label: '关注',
    checked: 1,
  })
}

const addStatus = () => {
  show_edit_status.value = true;
}

</script>

<script>
import "./index.less";

export default {
  name: "createProjectPage",
};
</script>