|
@@ -0,0 +1,381 @@
|
|
|
+<template>
|
|
|
+ <view class="collect-information" >
|
|
|
+
|
|
|
+ <step-register />
|
|
|
+
|
|
|
+ <!-- 地区负责人信息 (づ ̄3 ̄)づ╭~ -->
|
|
|
+ <view class="area-principal-information" >
|
|
|
+ <view class="information-title" >
|
|
|
+ 地区负责人信息(承办人)
|
|
|
+ </view>
|
|
|
+ <view class="information-form" >
|
|
|
+ <view class="information-form-item" >
|
|
|
+ <view class="information-form-label" >承办地区</view>
|
|
|
+ <view class="information-form-filed">
|
|
|
+ <view class="filed-input-view"
|
|
|
+ @click="selectArea"
|
|
|
+ >
|
|
|
+ <text
|
|
|
+ :class="[form.address.startsWith('请')? `placeholder-class` : 'select-after-text text-Ellipsis']"
|
|
|
+ style="width: 438rpx"
|
|
|
+ >
|
|
|
+ {{form.address}}
|
|
|
+ </text>
|
|
|
+ <van-icon name="arrow-down" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="information-form-item" >
|
|
|
+ <view class="information-form-label" >详细地址 </view>
|
|
|
+ <view class="information-form-filed" >
|
|
|
+ <input
|
|
|
+ class="filed-input"
|
|
|
+ placeholder="选填"
|
|
|
+ placeholder-class="placeholder-class"
|
|
|
+ :value="form.detailAddress"
|
|
|
+ @input="(e) => changeForm(e, 'detailAddress')"
|
|
|
+ />
|
|
|
+ <image
|
|
|
+ class="close-icon"
|
|
|
+ :src="staticImg.closeIcon"
|
|
|
+ v-if="form.detailAddress"
|
|
|
+ @click="clearFormItem('detailAddress')"
|
|
|
+ />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="information-form-item" >
|
|
|
+ <view class="information-form-label" >承办单位</view>
|
|
|
+ <view class="information-form-filed" >
|
|
|
+ <input
|
|
|
+ class="filed-input"
|
|
|
+ placeholder="请输入承办单位"
|
|
|
+ placeholder-class="placeholder-class"
|
|
|
+ :value="form.organizer"
|
|
|
+ @input="(e) => changeForm(e, 'organizer')"
|
|
|
+ />
|
|
|
+ <image
|
|
|
+ class="close-icon"
|
|
|
+ :src="staticImg.closeIcon"
|
|
|
+ v-if="form.organizer"
|
|
|
+ @click="clearFormItem('organizer')"
|
|
|
+ />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="information-form-item" >
|
|
|
+ <view class="information-form-label" >承办人</view>
|
|
|
+ <view class="information-form-filed" >
|
|
|
+ <input
|
|
|
+ class="filed-input"
|
|
|
+ placeholder="请输入承办人姓名"
|
|
|
+ placeholder-class="placeholder-class"
|
|
|
+ :value="form.undertaker"
|
|
|
+ @input="(e) => changeForm(e, 'undertaker')"
|
|
|
+ />
|
|
|
+ <image
|
|
|
+ class="close-icon"
|
|
|
+ :src="staticImg.closeIcon"
|
|
|
+ v-if="form.undertaker"
|
|
|
+ @click="clearFormItem('undertaker')"
|
|
|
+ />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 参赛园所信息 -->
|
|
|
+ <view class="school-information" >
|
|
|
+ <view class="information-title" >
|
|
|
+ 参赛园所信息
|
|
|
+ </view>
|
|
|
+ <view class="school-add-area" >
|
|
|
+ <view class="school-add-button" >
|
|
|
+ <image class="plus-icon" :src="staticImg.plusIcon" />
|
|
|
+ <text>添加参赛园所</text>
|
|
|
+ <van-icon color="#4679FF" name="arrow" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 预定物料包数量 -->
|
|
|
+ <view class="pre-material-package" >
|
|
|
+ <view class="information-title pre-material-package-title" >
|
|
|
+ 预定物料包数量 <view class="tip" >(50套起订) </view>
|
|
|
+ </view>
|
|
|
+ <view class="material-package-information" >
|
|
|
+ <view
|
|
|
+ class="material-package-item"
|
|
|
+ v-for="material in form.materialList"
|
|
|
+ :key="material.name"
|
|
|
+ >
|
|
|
+ <view class="material-package-item-label">
|
|
|
+ <van-checkbox :value="true" shape="square" @change="onChange">
|
|
|
+ <view class="material-package-item-label-left" >
|
|
|
+ <view class="label-prefix" >赛事标准物料包</view><view class="clazz" >({{material.name}})</view>
|
|
|
+ </view>
|
|
|
+ </van-checkbox>
|
|
|
+ </view>
|
|
|
+ <view class="material-count" >
|
|
|
+ <input class="material-input" type="number" :min="50" :value="material.count" /> 套
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <step-tabbar />
|
|
|
+
|
|
|
+ <!-- 地区选择 -->
|
|
|
+ <van-action-sheet
|
|
|
+ class="area-picker"
|
|
|
+ :show="showAreaPicker"
|
|
|
+ @click-overlay="showAreaPicker = false"
|
|
|
+ >
|
|
|
+ <van-area
|
|
|
+ :area-list="areaList"
|
|
|
+ @confirm="confirmArea"
|
|
|
+ @cancel="cancelArea"
|
|
|
+ />
|
|
|
+ </van-action-sheet>
|
|
|
+
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import StepRegister from './component/step-register.vue'
|
|
|
+import StepTabbar from './component/step-tabbar.vue'
|
|
|
+import { areaList } from '@vant/area-data'
|
|
|
+
|
|
|
+const staticImg = {
|
|
|
+ closeIcon: require('@/static/competitionRegister/common/close-icon.png'),
|
|
|
+ plusIcon: require('@/static/competitionRegister/common/plus-icon.png')
|
|
|
+}
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'collect-information',
|
|
|
+ components: {
|
|
|
+ StepRegister,
|
|
|
+ StepTabbar
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ showAreaPicker: false,
|
|
|
+ staticImg,
|
|
|
+ areaList: Object.freeze(areaList),
|
|
|
+ form: {
|
|
|
+ address: '请选择所在地区',
|
|
|
+ detailAddress: '',
|
|
|
+ organizer: '',
|
|
|
+ undertaker: '',
|
|
|
+ materialList: [
|
|
|
+ {name: "小班", count: 50},
|
|
|
+ {name: "中班", count: 50},
|
|
|
+ {name: "大班", count: 50},
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created () {
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ clearFormItem (key) {
|
|
|
+ this.form[key] = ''
|
|
|
+ },
|
|
|
+ changeForm (e, key) {
|
|
|
+ console.log(e, key);
|
|
|
+ const value = e.detail.value
|
|
|
+ this.form[key] = value
|
|
|
+ },
|
|
|
+ cancelArea () {
|
|
|
+ this.showAreaPicker = false
|
|
|
+ },
|
|
|
+
|
|
|
+ confirmArea (e) {
|
|
|
+ const { values, code } = e.detail
|
|
|
+ this.form.address = values.map( item => item.name ).join('')
|
|
|
+ this.showAreaPicker = false
|
|
|
+ },
|
|
|
+ selectArea () {
|
|
|
+ this.showAreaPicker = !this.showAreaPicker
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less">
|
|
|
+@import '@/utils/utils.less';
|
|
|
+
|
|
|
+.collect-information {
|
|
|
+ padding-bottom: 200rpx;
|
|
|
+ .area-principal-information {
|
|
|
+ padding: 0 32rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ margin-top: 50rpx;
|
|
|
+ .information-form {
|
|
|
+ .information-form-item {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 28rpx;
|
|
|
+ .information-form-label {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-family: PingFangSC-Medium, PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #666666;
|
|
|
+ }
|
|
|
+ .information-form-filed {
|
|
|
+ width: 530rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ box-shadow: 0rpx 0rpx 44rpx 0rpx rgba(226, 226, 226, 0.58);
|
|
|
+ border-radius: 20rpx;
|
|
|
+ padding-left: 32rpx;
|
|
|
+ padding-right: 32rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ .filed-input-view {
|
|
|
+ height: 88rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding-right: 28rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ .filed-input {
|
|
|
+ width: 408rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ }
|
|
|
+ .close-icon {
|
|
|
+ width: 26rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ .placeholder-class {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-family: PingFangSC-Regular, PingFang SC;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #D1D1D1;
|
|
|
+ }
|
|
|
+ .select-after-text {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-family: PingFangSC-Medium, PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .school-information {
|
|
|
+ padding: 0 32rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ margin-top: 60rpx;
|
|
|
+ .school-add-area {
|
|
|
+ .school-add-button {
|
|
|
+ width: 686rpx;
|
|
|
+ height: 108rpx;
|
|
|
+ border-radius: 20rpx;
|
|
|
+ border: 4rpx dashed rgba(0, 91, 255, 0.3);
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ .plus-icon {
|
|
|
+ width: 42rpx;
|
|
|
+ height: 40rpx;
|
|
|
+ }
|
|
|
+ text {
|
|
|
+ font-size: 34rpx;
|
|
|
+ font-family: PingFangSC-Regular, PingFang SC;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #4679FF;
|
|
|
+ margin-left: 20rpx;
|
|
|
+ margin-right: 12rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .pre-material-package {
|
|
|
+
|
|
|
+ margin-top: 60rpx;
|
|
|
+ padding: 0 32rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .pre-material-package-title {
|
|
|
+ width: 100%;
|
|
|
+ height: 56rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .tip {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-family: PingFangSC-Regular, PingFang SC;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #FE6573;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .material-package-information {
|
|
|
+ width: 686rpx;
|
|
|
+ height: 300rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ box-shadow: 0rpx 0rpx 44rpx 0rpx rgba(226, 226, 226, 0.58);
|
|
|
+ border-radius: 20rpx;
|
|
|
+ padding: 34rpx 30rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .material-package-item {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 20rpx;
|
|
|
+ .material-package-item-label {
|
|
|
+ display: flex;
|
|
|
+ .material-package-item-label-left {
|
|
|
+ display: flex;
|
|
|
+ font-size: 28rpx;
|
|
|
+ font-family: PingFangSC-Medium, PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #666666;
|
|
|
+ .label-prefix {
|
|
|
+ color: #666;
|
|
|
+ margin-right: 10rpx;
|
|
|
+ }
|
|
|
+ .clazz {
|
|
|
+ color: #5F87F0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .material-count {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .material-input {
|
|
|
+ width: 120rpx;
|
|
|
+ height: 64rpx;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ border: 2rpx solid #E3E3E3;
|
|
|
+ margin-right: 14rpx;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .information-title {
|
|
|
+ font-size: 44rpx;
|
|
|
+ font-family: PingFangSC-Semibold, PingFang SC;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #333333;
|
|
|
+ margin-bottom: 40rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .area-picker {
|
|
|
+ width: 100vw;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|
|
|
+
|