bibi 3 years ago
parent 02bc803f02
commit 4fa7841331

@ -0,0 +1,10 @@
import httpService from "@/request"
// 注册
export function allCity(params) {
return httpService({
url: `/city/allCity`,
method: 'get',
params: params,
})
}

@ -0,0 +1,34 @@
<template>
<div>
<a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel">
<img alt="example" style="width: 100%" :src="previewImage" />
</a-modal>
</div>
</template>
<script>
export default {
props:{
previewVisible:{
type:Boolean,
default:false,
},
previewImage:{
type:String,
}
},
data() {
return{
}
},
methods:{
handleCancel() {
this.$emit('handleCancel')
},
}
}
</script>
<style>
</style>

@ -0,0 +1,68 @@
<template>
<div>
<a-upload
:action="`${$upload}`"
accept='.jpg,.JPG,.png,.PNG,.jpeg,.JPEG'
list-type="picture-card"
:headers="uploadHeaders"
:file-list="fileList"
@preview="handlePreview"
@change="handleChange"
>
<div v-if="fileList.length < 1">
<a-icon type="plus" />
<div class="ant-upload-text">上传图片</div>
</div>
</a-upload>
<Img :previewVisible='previewVisible' :previewImage='previewImage' @handleCancel='handleCancel'/>
</div>
</template>
<script>
import Img from "./img.vue"
function getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
import store from "@/store";
export default {
components:{
Img
},
data() {
return{
previewVisible: false,
previewImage: '',
fileList: [],
uploadHeaders: {
"admin-login-token": store.getters.getToken
}
}
},
methods:{
async handlePreview(file) {
if (!file.url && !file.preview) {
file.preview = await getBase64(file.originFileObj);
}
this.previewImage = file.url || file.preview;
this.previewVisible = true;
},
handleCancel(){
this.previewVisible = false;
},
handleChange({ fileList }) {
this.fileList = fileList
if(fileList[0].status==='done'){
this.$emit('handleChange',fileList)
}
},
}
};
</script>
<style>
</style>

@ -21,9 +21,11 @@ import store from "@/store";
import router from "@/permission";
Vue.config.productionTip = false
import commonTable from './components/table'
import commonUpload from './components/upload/index.vue'
// 注册组件
Vue.component('commonTable', commonTable)
Vue.component('commonUpload', commonUpload)
router.beforeEach((to, from, next) => {
// 让页面回到顶部

@ -10,5 +10,8 @@ const state = {
selectedKeys: JSON.parse(sessionStorage.getItem('selectedKeys')) || ['/'],
openKeys: JSON.parse(sessionStorage.getItem('openKeys')) || [],
token: sessionStorage.getItem('token') || "",
Info: {
name:'11'
}
}
export default state

@ -0,0 +1,111 @@
export const form = {
tel: "",
code:'',
companyName: "",
socialCreditCode:"",
companyAddress:undefined,
companyAddressDetail:'',
legalPersonName:'',
legalPersonIdCard:'',
contactsName:'',
contactsTel:'',
contactsEmail:'',
contactsAddress:'',
contactsAddressDetail: '',
idCardFrontImgUrls:[],
idCardBackImgUrls:[],
businessLicenseImgUrls:[],
othersImgUrls:[],
}
export const rules = {
tel: [
{
required: true,
message: "请输入手机号",
trigger: "blur",
},
{
min: 11,
max: 11,
message: "手机号长度必须为 11 位",
trigger: "blur",
},
],
code: [
{
required: true,
message: "请输入验证码",
trigger: "blur",
}],
companyName: [
{
required: true,
message: "请输入公司名称",
trigger: "blur",
}],
socialCreditCode: [
{
required: true,
message: "请输入社会信用代码",
trigger: "blur",
}],
companyAddress: [
{
required: true,
message: "请输入公司地址",
trigger: "change",
}],
companyAddressDetail: [
{
required: true,
message: "请输入公司详细地址",
trigger: "blur",
}],
legalPersonName: [
{
required: true,
message: "请输入法人名称",
trigger: "blur",
}],
legalPersonIdCard: [
{
required: true,
message: "请输入法人身份证号",
trigger: "blur",
}],
contactsName: [
{
required: true,
message: "请输入联系人姓名",
trigger: "blur",
}],
licenseTimeStart: [
{
required: true,
message: "请选择时间",
trigger: "change",
}],
contactsTel: [
{
required: true,
message: "请输入联系人手机号",
trigger: "blur",
}],
// contactsAddress: [
// {
// required: true,
// message: "请选择联系人地址",
// trigger: "change",
// }],
// contactsAddressDetail: [
// {
// required: true,
// message: "请输入联系人详细地址",
// trigger: "blur",
// }],
}
export const cascaderConfig = {
label: 'name',
value:'id',
children: 'cityList'
}

@ -7,15 +7,20 @@
</a-space>
</div>
<div class="content">
<div class="top">
<div class="top" v-if='companyInfo===null||[]'>
<span style="margin-left:30px">
<div class="top-a">你好admin</div>
<div class="top-a">你好{{username}}</div>
<div class="top-b">请尽快绑定企业信息进行下一步</div>
</span>
<span>
<a-button type="primary" class="top-c" shape="round" size="default" @click="settled()"></a-button>
</span>
</div>
<div v-else class="top">
<a-row>
<a-col class='com-name'>{{companyInfo.companyName}}</a-col>
</a-row>
</div>
</div>
<div class="content">
<a-row>
@ -72,6 +77,11 @@
<div class="card-b-content" v-else>
<div>当前无订单</div>
<div>请购买后台功能</div>
<a-card hoverable class="addOrder">
<div class="card-b-content-add" @click="newOrder">
点击新建订单
</div>
</a-card>
</div>
</div>
</a-col>
@ -115,8 +125,14 @@
<script>
import { consoleShow } from "@/api/basic/console";
import store from "@/store";
export default {
name: "Console",
computed:{
username(){
return store.state.Info.name //
}
},
data(){
return{
form:{},
@ -174,6 +190,7 @@ export default {
],
visible: false,
confirmLoading: false,
companyInfo:{}
}
},
mounted(){
@ -185,6 +202,7 @@ export default {
// consoleCompanyVo
this.estateList = res.data.consoleCommunityVoList
this.orderList = res.data.consoleOrderVoList
this.companyInfo = res.data.consoleCompanyVo
},
settled(){
this.$router.push({name:'settled'})

@ -25,7 +25,7 @@
<a-icon class="h-d2-c" style="color: #b7b7b7" type="question-circle" />
<a-icon class="h-d2-c" type="alert" />
<a-icon class="h-d2-c" style="color: #979a96;margin-right: 7px;" type="user" />
<span class="h-d2-s">admin</span>
<span class="h-d2-s">{{Info.director}}</span>
</div>
</a-layout-header>
<a-layout-content :style="{ margin: '10px'}">
@ -42,7 +42,12 @@ export default {
},
mounted(){
this.$router.push({ name: sessionStorage.getItem('routerName') });
// this.tagActive = Number(sessionStorage.getItem('index'))
// userInfo().then(res =>{
// this.Info = res.data
// sessionStorage.setItem('info',JSON.stringify(this.Info))
// })
},
watch: {
$route: {
@ -62,6 +67,10 @@ export default {
},
data() {
return {
Info:{
director:'',
type:undefined,//1.2.3.
},
collapsed: false,
tagActive: 0,
menuTags: [

@ -90,19 +90,18 @@ export default {
created() {
this.openKeys = this.getOpenKeys;
this.defaultSelectedKeys = this.getSelectedKeys;
// console.log(JSON.parse(sessionStorage.getItem('info')));
this.initMenu();
},
methods: {
handlerSelect({selectedKeys}) {
this.selectedKeys = selectedKeys;
this.setSelectedKeys(selectedKeys);
},
handlerOpen(val) {
this.setOpenKeys(val);
},
menuClick({key}) {
console.log(key)
this.$router.push(key)
},
initMenu() {
@ -113,6 +112,24 @@ export default {
let arr = farr[0].children || [];
let menus = [];
this.routerToMenu(arr, menus);
let typevalue = JSON.parse(sessionStorage.getItem('info')).type
// if(typevalue===3){
// menus.forEach((item,index)=>{
// if(item.title !==''&&item.title !==''){
// item.hide = true
// }
// })
// console.log('');
// this.list = menus;
// }else{
// menus.forEach((item,index)=>{
// if(item.title ===''||item.title ===''){
// item.hide = true
// }
// })
// this.list = menus;
// console.log('');
// }
this.list = menus;
},
//

@ -6,20 +6,13 @@
</div>
<div class="login-box">
<a-row>
<!-- <a-col :span="12" class="box-a">
<img src="@/assets/images/logo.png" alt="" />
</a-col> -->
<!-- <a-col :span="1" class="box-cen"></a-col> -->
<!-- 登录 -->
<a-col class="box-b" v-if="status === 1">
<a-tabs v-model="activeName" @change="tabsSwitch">
<a-col class="box-b" v-if="loginStatus === 1">
<a-tabs>
<a-tab-pane key="1" tab="密码登录">
</a-tab-pane>
<a-tab-pane key="2" tab="验证码登录"> </a-tab-pane>
</a-tabs>
<div class="login-input" v-if="activeName === '1'">
<a-input placeholder="请输入手机号码"></a-input>
<a-input type="password" placeholder="请输入密码"></a-input>
<div class="login-input">
<a-input v-model="form.username" placeholder="请输入手机号码"></a-input>
<a-input type="password" v-model="form.password" placeholder="请输入密码"></a-input>
<a-row>
<a-col :span="12" style="margin-left: 23px"
><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col
@ -27,7 +20,7 @@
</a-row>
<a-button
type="primary"
@click="login"
@click="loginPWD"
style="width: 90%; margin: 30px"
>
登录
@ -37,17 +30,22 @@
<a-checkbox></a-checkbox>&nbsp;&nbsp;
</a-col>
<a-col :span="10">
<span class="logintext" @click="status = 3">忘记密码</span
<span class="logintext" @click="loginStatus = 3">忘记密码</span
>&nbsp;&nbsp;&nbsp;&nbsp;<span
class="logintext"
@click="status = 2"
@click="loginStatus = 2"
>免费注册</span
>
</a-col>
</a-row>
</div>
<div class="login-input" v-else-if="activeName === '2'">
<a-input placeholder="请输入手机号码" v-model="form.tel"></a-input>
</a-tab-pane>
<a-tab-pane key="2" tab="验证码登录">
<div class="login-input">
<a-input
placeholder="请输入手机号码"
v-model="form.tel"
></a-input>
<a-input
placeholder="请输入验证码"
v-model="form.code"
@ -71,28 +69,30 @@
<a-checkbox></a-checkbox>&nbsp;&nbsp;
</a-col>
<a-col :span="10">
<span class="logintext" @click="status = 3">忘记密码</span
<span class="logintext" @click="loginStatus = 3">忘记密码</span
>&nbsp;&nbsp;&nbsp;&nbsp;<span
class="logintext"
@click="status = 2"
@click="loginStatus = 2"
>免费注册</span
>
</a-col>
</a-row>
</div>
</a-tab-pane>
</a-tabs>
</a-col>
<!-- 注册 -->
<a-col class="box-b" v-if="status === 2">
<a-col class="box-b" v-if="loginStatus === 2">
<div class="cardTitle">新建账号</div>
<a-form-model
ref="ruleForm"
:model="form"
:rules="rules"
ref="register"
:model="registerForm"
:rules="registerRules"
layout="vertical"
>
<a-form-model-item ref="tel" label="手机号码" prop="tel">
<a-input
v-model="form.tel"
v-model="registerForm.tel"
style="width: 100%"
placeholder="请输入手机号"
@blur="
@ -101,43 +101,44 @@
}
"
/>
<a-row style="margin-top: 20px">
</a-form-model-item>
<a-form-model-item prop="code">
<a-col :span="16" style="margin-right: 10px">
<a-input
style="width: 100%"
v-model="form.verificationCode"
v-model="registerForm.code"
placeholder="请输入验证码"
/>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="getCode"
<a-button type="primary" @click="registerCode"
>获取验证码</a-button
>
</a-col>
</a-row>
</a-form-model-item>
<a-form-model-item label="设置密码" prop="psw">
<a-input placeholder="请输入密码" />
<a-form-model-item label="设置密码" prop="password">
<a-input placeholder="请输入密码" v-model="registerForm.password"/>
</a-form-model-item>
<a-form-model-item label="确认密码" prop="confirmPsw">
<a-input placeholder="请再次输入密码" />
<a-input placeholder="请再次输入密码" v-model="registerForm.confirmPsw"/>
</a-form-model-item>
<a-form-model-item>
<a-button type="primary" style="width: 100%"> 确定 </a-button>
<a-button type="primary" @click='registerSubmit' style="width: 100%"> 确定 </a-button>
</a-form-model-item>
<a-form-model-item>
<span>已有账号</span
><span class="logintext" @click="status = 1">登录</span>
><span class="logintext" @click="loginStatus = 1">登录</span>
</a-form-model-item>
</a-form-model>
</a-col>
<!-- 找回密码 -->
<a-col class="box-b" v-if="status === 3">
<a-col class="box-b" v-if="loginStatus === 3">
<div class="cardTitle">找回密码</div>
<a-form-model
ref="ruleForm"
:model="form"
:rules="rules"
:model="registerForm"
:rules="registerRules"
layout="vertical"
>
<a-form-model-item ref="tel" label="手机号码" prop="tel">
@ -177,7 +178,7 @@
</a-form-model-item>
<a-form-model-item>
<span>已有账号</span
><span class="logintext" @click="status = 1">登录</span>
><span class="logintext" @click="loginStatus = 1">登录</span>
</a-form-model-item>
</a-form-model>
</a-col>
@ -187,45 +188,21 @@
</template>
<script>
import { register, sendTelCode, loginPWD, loginTelCode } from "@/api/public/login";
import {
register,
sendTelCode,
loginPWD,
loginTelCode,
sendRegisterCode,
userInfo
} from "@/api/public/login";
import { form, registerForm, registerRules } from './depend/config'
export default {
name: "Login",
data() {
return {
status: 1,
activeName: "1",
form: {
tel: "",
code: "",
},
rules: {
tel: [
{
required: true,
message: "请输入手机号",
trigger: "blur",
},
{
min: 11,
max: 11,
message: "姓名长度必须为 11 位",
trigger: "blur",
},
],
name: [
{
required: true,
message: "请输入姓名",
trigger: "blur",
},
{
min: 3,
max: 5,
message: "姓名长度必须为 3 至 5位",
trigger: "blur",
},
],
},
loginStatus: 1,
form,registerForm,registerRules
};
},
created() {
@ -242,59 +219,73 @@ export default {
};
},
login() {
loginTelCode(this.form).then(res=>{
loginTelCode(this.form).then((res) => {
if (res.code === 200) {
this.$message.success(res.msg);
// token
this.setToken(res.data);
userInfo().then(res =>{
console.log(res.data);
sessionStorage.setItem('info',JSON.stringify(res.data))
})
this.$router.push("/");
} else {
this.$message.error(res.msg);
}
})
});
},
loginPWD() {
loginPWD(this.pswform).then(res=>{
loginPWD(this.form).then((res) => {
if (res.code === 200) {
this.$message.success(res.msg);
// token
this.setToken(res.data);
userInfo().then(res =>{
sessionStorage.setItem('info',JSON.stringify(res.data))
})
this.$router.push("/");
} else {
this.$message.error(res.msg);
}
})
});
},
//
getCode() {
console.log(1);
sendTelCode({tel:this.form.tel}).then((res) => {
sendTelCode({ tel: this.form.tel }).then((res) => {
if (res) {
// this.$message.success("");
this.$message.success(res.msg +' ' +res.data);
this.$message.success(res.msg + " " + res.data);
}
});
},
register(){
register
//
async registerCode(){
let res = await sendRegisterCode({tel: this.registerForm.tel})
this.$message.success(res.msg + " " + res.data);
},
onSubmit() {
this.$refs.ruleForm.validate((valid) => {
//
registerSubmit() {
this.$refs.register.validate(async valid => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
if(this.registerForm.password !== this.registerForm.confirmPsw){
this.$message.error('两次输入密码不一致')
return
}
});
let res = await register(this.registerForm)
if(res.code===200){
this.$message.success(res.msg)
this.$refs.register.resetFields();
this.loginStatus = 1
}else{
this.$message.error(res.msg)
}
}
})
},
//
resetForm() {
this.$refs.ruleForm.resetFields();
},
tabsSwitch() {
console.log(this.activeName);
},
},
};
</script>

Loading…
Cancel
Save