case-data/pages/apply/apply.vue
2025-04-11 10:49:39 +08:00

225 lines
5.9 KiB
Vue

<template>
<view class="logincontent">
<up-form labelPosition="left" :model="model" ref="form" labelWidth="115rpx">
<up-form-item label="姓名" prop="userInfo.name" borderBottom>
<up-input v-model="model.name" placeholder="请输入真实姓名"></up-input>
</up-form-item>
<view class="smsbox">
<up-form-item label="医院" prop="userInfo.name" borderBottom @click="showArea=true">
<up-input v-model="model.name" placeholder="请选择医院"></up-input>
<template #right>
<up-icon name="arrow-right"></up-icon>
</template>
</up-form-item>
<up-form-item label="科室" prop="userInfo.name" borderBottom @click="showDepart=true">
<up-input v-model="model.name" placeholder="请选择科室"></up-input>
<template #right>
<up-icon name="arrow-right"></up-icon>
</template>
</up-form-item>
<up-form-item label="职称" prop="userInfo.name" borderBottom @click="showTitle=true">
<up-input v-model="model.name" placeholder="请选择职称"></up-input>
<template #right>
<up-icon name="arrow-right"></up-icon>
</template>
</up-form-item>
<up-form-item label="执业证号(选填)" prop="userInfo.name" borderBottom>
<up-input
v-model="model.name"
placeholder="请输入执业证号"
></up-input>
</up-form-item>
<up-form-item
label="执业医师资格证或工作胸牌"
prop="userInfo.name"
borderBottom
>
<up-input v-model="model.name" placeholder=""></up-input>
<template #right>
<view class="rightbox">
<view class="uploadwraper">
<up-upload @afterRead="afterRead" :maxCount="1"> </up-upload>
<image
:src="img"
mode="widthFix"
style="width: 120rpx; height: 80px"
class="dimg"
></image>
</view>
<up-icon name="arrow-right"></up-icon>
</view>
</template>
</up-form-item>
</view>
</up-form>
<view class="row">
<up-button
:customStyle="customStyle"
class="custom-style"
type="success"
text="提交"
color="#3cc7c0"
size="large"
></up-button>
</view>
<view>
<QfImageCropper
v-if="showCroper"
:width="500"
:height="500"
:radius="0"
backgroundColor="#000"
:src="coperImg"
zIndex="999"
delay="1500"
ref="imgCropper"
@cancel="handleCancel"
@crop="handleCrop"
></QfImageCropper>
</view>
<up-picker @cancel="closeArea" @confirm="confirmArea" :show="showArea" :columns="areacolumns"></up-picker>
<up-picker @cancel="closeDepart" @confirm="confirmDepart" :show="showDepart" :columns="departcolumns"></up-picker>
<up-picker @cancel="closeTitle" @confirm="confirmTitle" :show="showTitle" :columns="titlecolumns"></up-picker>
</view>
</template>
<script setup>
import { ref, reactive } from "vue";
import { onShow } from "@dcloudio/uni-app";
import img from "@/static/default.png";
import QfImageCropper from "@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue";
const imgCropper=ref(null);
const model = reactive({
name: "",
});
const showCroper = ref(false);
const coperImg = ref("");
const customStyle = reactive({
height: "90rpx",
fontSize: "36rpx",
});
const areacolumns = ref([]);
const showArea = ref(false);
const departcolumns = ref([]);
const showDepart = ref(false);
const titlecolumns = ref([]);
const showTitle = ref(false);
const closeArea = () => {
showArea.value = false;
};
const confirmArea = (e) => {
showArea.value = false;
};
const closeDepart = () => {
showDepart.value = false;
};
const confirmDepart = (e) => {
console.log(e);
showDepart.value = false;
};
const closeTitle = () => {
showTitle.value = false;
};
const confirmTitle = (e) => {
showTitle.value = false;
}
const afterRead = (event) => {
// console.log(event.file);
// console.log(QfImageCropper);
coperImg.value =event.file.url;
showCroper.value = true;
};
const handleCrop = (e) => {
console.log(e.tempFilePath)
// uni.previewImage({
// urls: [e.tempFilePath],
// current: 0,
// });
};
const handleCancel = () => {
showCroper.value = false;
};
onShow(() => {
});
</script>
<style lang="scss" scoped>
.logincontent {
width: 100%;
height: 100vh;
background: #fff;
.rightbox {
display: flex;
}
.uploadwraper {
position: relative;
width: 140rpx;
height: 80rpx;
overflow: hidden;
::v-deep .u-upload {
width: 140rpx;
height: 80rpx;
position: relative;
z-index: 2;
opacity: 0;
}
}
.uploadwraper ::v-deep .dimg {
position: absolute;
top: 0;
bottom: 0;
}
.smsbox ::v-deep .u-form-item:nth-child(4) .u-form-item__body__left {
width: 240rpx !important;
}
.smsbox ::v-deep .u-form-item:nth-child(5) .u-form-item__body__left {
width: 418rpx !important;
}
::v-deep .u-form-item__body__left__content__label {
font-size: 34rpx;
color: #000;
}
.title {
padding: 124rpx 0 64rpx 30rpx;
//padding-left: 30rpx;
font-size: 46rpx;
font-stretch: normal;
letter-spacing: 2rpx;
color: #000000;
}
::v-deep .u-form {
padding: 0 30rpx;
}
.row {
margin-top: 60rpx;
display: flex;
justify-content: space-between;
padding: 0 30rpx;
.left {
flex: 1;
color: #3cc7c0;
text-align: left;
}
.right {
flex: 1;
color: #666;
text-align: right;
}
::v-deep .u-button--large .u-button__text {
font-size: 36rpx !important;
}
}
::v-deep .wrap {
border-radius: 16rpx;
overflow: hidden;
border: none;
}
}
</style>