app/pages/mine/expert/index.vue
2025-04-21 17:39:41 +08:00

334 lines
8.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view style="padding: 10px">
<u-form :model="form" ref="uForm" :rules="rules">
<u-form-item label="姓名"
><u-input v-model="form.name" placeholder="请输入您真实姓名"
/></u-form-item>
<u-form-item label="性别">
<u-radio-group v-model="form.sex" style="margin-left: 30px">
<u-radio
v-for="(item, index) in radioList"
:key="index"
:name="item.value"
:value="item.value"
:disabled="item.disabled"
>
{{ item.name }}
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="联系方式"
><u-input v-model="form.contact" placeholder="请输入"
/></u-form-item>
<u-form-item label="店铺地址"
><u-input v-model="form.residenceAddress" placeholder="请输入"
/></u-form-item>
<u-form-item label="营业执照">
<u-upload
:action="action"
:header="{ accessToken: storage.getAccessToken() }"
max-count="1"
style="margin-left: 30px"
@on-uploaded="onUploaded"
></u-upload>
<!-- <u-input v-model="form.businessLicense" placeholder="请输入"/> -->
</u-form-item>
<u-form-item label="证件类别"
><u-input v-model="idType" type="select" @click="show = true" />
<u-action-sheet
:list="actionSheetList"
v-model="show"
@click="actionSheetCallback"
></u-action-sheet>
</u-form-item>
<u-form-item label="证件照片">
<u-upload
:header="{ accessToken: storage.getAccessToken() }"
max-count="2"
:action="action"
@on-uploaded="onUploadedtwo"
style="margin-left: 30px"
></u-upload>
</u-form-item>
<u-form-item label="证件有效期" right-icon="arrow-right">
<u-input
v-model="form.idExpiryDate"
placeholder="请输入"
@click="showtime = true"
/>
<u-calendar
v-model="showtime"
mode="date"
@change="changetime"
max-date="30000"
></u-calendar>
</u-form-item>
<u-form-item label="经营范围">
<u-checkbox-group
@change="checkboxGroupChange"
style="margin-left: 30px"
>
<u-checkbox
v-model="item.checked"
v-for="(item, index) in cateList"
:key="index"
:name="item.id"
>{{ item.name }}</u-checkbox
>
</u-checkbox-group>
</u-form-item>
</u-form>
<button @click="consub" :style="{ background: '#FE3C3C' }"
class="bunem">提交</button>
<u-toast ref="uToast" />
</view>
</template>
<script>
import storage from "@/utils/storage.js";
import { upload } from "@/api/common.js";
import { getCategoryList, getMon } from "@/api/goods.js";
export default {
data() {
return {
action: upload,
storage: storage,
form: {
name: "",
sex: "",
contact: "",
residenceAddress: "",
businessLicense: "",
idType: "",
idPhoto: [],
idExpiryDate: "",
businessAddress: "",
businessScope: "",
},
rules: {
name: [
{
required: true,
message: "姓名不能为空",
trigger: "blur",
},
],
sex: [
{
required: true,
message: "性别不能为空",
trigger: "change",
},
],
contact: [
{
required: true,
message: "联系方式不能为空",
trigger: "blur",
},
],
residenceAddress: [
{
required: true,
message: "居住地址不能为空",
trigger: "blur",
},
],
businessLicense: [
{
required: true,
message: "营业执照不能为空",
trigger: "change",
},
],
idType: [
{
required: true,
message: "证件类别不能为空",
trigger: "change",
},
],
idPhoto: [
{
required: true,
message: "证件照片不能为空",
trigger: "change",
},
],
idExpiryDate: [
{
required: true,
message: "证件有效期不能为空",
trigger: "change",
},
],
businessAddress: [
{
required: true,
message: "经营范围不能为空",
trigger: "change",
},
],
},
idType: "",
radioList: [
{
name: "男",
disabled: false,
value: "MALE",
},
{
name: "女",
disabled: false,
value: "FEMALE",
},
],
showtime: false, // 控制u-calendar的显示与隐藏
show: false, // 控制actionSheet的显示与隐藏--证件
// 证件
actionSheetList: [
{
text: "身份证",
value: "ID",
},
{
text: "护照",
value: "PASSPORT",
},
{
text: "其他",
value: "OTHER",
},
],
radio: "",
switchVal: false,
cateList: [],
};
},
onLoad() {
// 页面加载时可以初始化数据
},
onShow() {
// 页面显示时可以执行一些操作
},
mounted() {
this.getCategoryList(); // 调用获取分类列表的方法
},
methods: {
//点击actionSheet回调--证件
actionSheetCallback(index) {
this.form.idType = this.actionSheetList[index].value;
this.idType = this.actionSheetList[index].text;
},
consub() {
const {
name,
sex,
contact,
residenceAddress,
businessLicense,
idType,
idPhoto,
idExpiryDate,
businessAddress,
businessScope,
} = this.form;
if (
name == "" ||
sex == "" ||
contact == "" ||
residenceAddress == "" ||
businessLicense.length == 0 ||
idType == "" ||
idPhoto.length == 0 ||
idExpiryDate == "" ||
businessScope.length == 0
) {
this.$refs.uToast.show({
title: "不能为空",
type: "error",
});
} else {
this.form.businessAddress = this.form.residenceAddress;
getMon(this.form).then((res) => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: "提交成功",
type: "success",
});
setTimeout(() => {
uni.switchTab({
url: "/pages/tabbar/user/my",
});
}, 1000);
}
});
}
},
onUploaded(lists) {
console.log(lists); // 打印上传成功后的文件列表
lists.forEach((item) => {
this.form.businessLicense = item.response.result;
});
},
onUploadedtwo(lists) {
let images = [];
lists.forEach((item) => {
images.push(item.response.result);
});
this.form.idPhoto = images;
},
changetime(value) {
console.log(value); // 打印选择的日期
this.form.idExpiryDate = value.result; // 将选择的日期赋值给form.idExpiryDate
},
// 选中某个复选框时由checkbox时触发
checkboxChange(e) {
console.log(e, "[====]");
},
// 选中任一checkbox时由checkbox-group触发
checkboxGroupChange(e) {
this.form.businessScope = e;
},
getCategoryList() {
getCategoryList(0).then((res) => {
res.data.result.forEach((item) => {
item.checked = false; // 初始化每个项目的checked属性为false
});
this.cateList = res.data.result;
});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep {
.u-form-item--left__content {
width: 100px;
white-space: nowrap;
}
.u-input {
margin-left: 30px; // 可根据实际情况调整这个值
}
.u-checkbox__icon-wrap--checked{
border-color: #fe3c3c !important;
background-color: #fe3c3c !important;
}
}
.bunem {
width: 309px;
margin-top: 20px;
height: 41px;
font-size: 15px;
line-height: 41px;
text-align: center;
color: #ffffff;
margin-bottom: 35px;
}
</style>