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"; import router from "@/permission";
Vue.config.productionTip = false Vue.config.productionTip = false
import commonTable from './components/table' import commonTable from './components/table'
import commonUpload from './components/upload/index.vue'
// 注册组件 // 注册组件
Vue.component('commonTable', commonTable) Vue.component('commonTable', commonTable)
Vue.component('commonUpload', commonUpload)
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
// 让页面回到顶部 // 让页面回到顶部

@ -10,5 +10,8 @@ const state = {
selectedKeys: JSON.parse(sessionStorage.getItem('selectedKeys')) || ['/'], selectedKeys: JSON.parse(sessionStorage.getItem('selectedKeys')) || ['/'],
openKeys: JSON.parse(sessionStorage.getItem('openKeys')) || [], openKeys: JSON.parse(sessionStorage.getItem('openKeys')) || [],
token: sessionStorage.getItem('token') || "", token: sessionStorage.getItem('token') || "",
Info: {
name:'11'
}
} }
export default state 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> </a-space>
</div> </div>
<div class="content"> <div class="content">
<div class="top"> <div class="top" v-if='companyInfo===null||[]'>
<span style="margin-left:30px"> <span style="margin-left:30px">
<div class="top-a">你好admin</div> <div class="top-a">你好{{username}}</div>
<div class="top-b">请尽快绑定企业信息进行下一步</div> <div class="top-b">请尽快绑定企业信息进行下一步</div>
</span> </span>
<span> <span>
<a-button type="primary" class="top-c" shape="round" size="default" @click="settled()"></a-button> <a-button type="primary" class="top-c" shape="round" size="default" @click="settled()"></a-button>
</span> </span>
</div> </div>
<div v-else class="top">
<a-row>
<a-col class='com-name'>{{companyInfo.companyName}}</a-col>
</a-row>
</div>
</div> </div>
<div class="content"> <div class="content">
<a-row> <a-row>
@ -72,6 +77,11 @@
<div class="card-b-content" v-else> <div class="card-b-content" v-else>
<div>当前无订单</div> <div>当前无订单</div>
<div>请购买后台功能</div> <div>请购买后台功能</div>
<a-card hoverable class="addOrder">
<div class="card-b-content-add" @click="newOrder">
点击新建订单
</div>
</a-card>
</div> </div>
</div> </div>
</a-col> </a-col>
@ -115,8 +125,14 @@
<script> <script>
import { consoleShow } from "@/api/basic/console"; import { consoleShow } from "@/api/basic/console";
import store from "@/store";
export default { export default {
name: "Console", name: "Console",
computed:{
username(){
return store.state.Info.name //
}
},
data(){ data(){
return{ return{
form:{}, form:{},
@ -174,6 +190,7 @@ export default {
], ],
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
companyInfo:{}
} }
}, },
mounted(){ mounted(){
@ -185,6 +202,7 @@ export default {
// consoleCompanyVo // consoleCompanyVo
this.estateList = res.data.consoleCommunityVoList this.estateList = res.data.consoleCommunityVoList
this.orderList = res.data.consoleOrderVoList this.orderList = res.data.consoleOrderVoList
this.companyInfo = res.data.consoleCompanyVo
}, },
settled(){ settled(){
this.$router.push({name:'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" style="color: #b7b7b7" type="question-circle" />
<a-icon class="h-d2-c" type="alert" /> <a-icon class="h-d2-c" type="alert" />
<a-icon class="h-d2-c" style="color: #979a96;margin-right: 7px;" type="user" /> <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> </div>
</a-layout-header> </a-layout-header>
<a-layout-content :style="{ margin: '10px'}"> <a-layout-content :style="{ margin: '10px'}">
@ -42,7 +42,12 @@ export default {
}, },
mounted(){ mounted(){
this.$router.push({ name: sessionStorage.getItem('routerName') }); this.$router.push({ name: sessionStorage.getItem('routerName') });
// this.tagActive = Number(sessionStorage.getItem('index')) // this.tagActive = Number(sessionStorage.getItem('index'))
// userInfo().then(res =>{
// this.Info = res.data
// sessionStorage.setItem('info',JSON.stringify(this.Info))
// })
}, },
watch: { watch: {
$route: { $route: {
@ -62,6 +67,10 @@ export default {
}, },
data() { data() {
return { return {
Info:{
director:'',
type:undefined,//1.2.3.
},
collapsed: false, collapsed: false,
tagActive: 0, tagActive: 0,
menuTags: [ menuTags: [

@ -90,19 +90,18 @@ export default {
created() { created() {
this.openKeys = this.getOpenKeys; this.openKeys = this.getOpenKeys;
this.defaultSelectedKeys = this.getSelectedKeys; this.defaultSelectedKeys = this.getSelectedKeys;
// console.log(JSON.parse(sessionStorage.getItem('info')));
this.initMenu(); this.initMenu();
}, },
methods: { methods: {
handlerSelect({selectedKeys}) { handlerSelect({selectedKeys}) {
this.selectedKeys = selectedKeys; this.selectedKeys = selectedKeys;
this.setSelectedKeys(selectedKeys); this.setSelectedKeys(selectedKeys);
}, },
handlerOpen(val) { handlerOpen(val) {
this.setOpenKeys(val); this.setOpenKeys(val);
}, },
menuClick({key}) { menuClick({key}) {
console.log(key)
this.$router.push(key) this.$router.push(key)
}, },
initMenu() { initMenu() {
@ -113,6 +112,24 @@ export default {
let arr = farr[0].children || []; let arr = farr[0].children || [];
let menus = []; let menus = [];
this.routerToMenu(arr, 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; this.list = menus;
}, },
// //

@ -6,93 +6,93 @@
</div> </div>
<div class="login-box"> <div class="login-box">
<a-row> <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-col class="box-b" v-if="loginStatus === 1">
<a-tabs v-model="activeName" @change="tabsSwitch"> <a-tabs>
<a-tab-pane key="1" tab="密码登录"> <a-tab-pane key="1" tab="密码登录">
</a-tab-pane> <div class="login-input">
<a-tab-pane key="2" tab="验证码登录"> </a-tab-pane> <a-input v-model="form.username" placeholder="请输入手机号码"></a-input>
</a-tabs> <a-input type="password" v-model="form.password" placeholder="请输入密码"></a-input>
<div class="login-input" v-if="activeName === '1'"> <a-row>
<a-input placeholder="请输入手机号码"></a-input> <a-col :span="12" style="margin-left: 23px"
<a-input type="password" placeholder="请输入密码"></a-input> ><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col
<a-row> >
<a-col :span="12" style="margin-left: 23px" </a-row>
><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col <a-button
> type="primary"
</a-row> @click="loginPWD"
<a-button style="width: 90%; margin: 30px"
type="primary"
@click="login"
style="width: 90%; margin: 30px"
>
登录
</a-button>
<a-row style="margin-top: 20px; margin-left: 23px">
<a-col :span="14">
<a-checkbox></a-checkbox>&nbsp;&nbsp;
</a-col>
<a-col :span="10">
<span class="logintext" @click="status = 3">忘记密码</span
>&nbsp;&nbsp;&nbsp;&nbsp;<span
class="logintext"
@click="status = 2"
>免费注册</span
> >
</a-col> 登录
</a-row> </a-button>
</div> <a-row style="margin-top: 20px; margin-left: 23px">
<div class="login-input" v-else-if="activeName === '2'"> <a-col :span="14">
<a-input placeholder="请输入手机号码" v-model="form.tel"></a-input> <a-checkbox></a-checkbox>&nbsp;&nbsp;
<a-input </a-col>
placeholder="请输入验证码" <a-col :span="10">
v-model="form.code" <span class="logintext" @click="loginStatus = 3">忘记密码</span
style="width: 60%" >&nbsp;&nbsp;&nbsp;&nbsp;<span
></a-input> class="logintext"
<a-button type="primary" @click="getCode"></a-button> @click="loginStatus = 2"
<a-row> >免费注册</span
<a-col :span="12" style="margin-left: 23px" >
><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col </a-col>
> </a-row>
</a-row> </div>
<a-button </a-tab-pane>
type="primary" <a-tab-pane key="2" tab="验证码登录">
@click="login" <div class="login-input">
style="width: 90%; margin: 30px" <a-input
> placeholder="请输入手机号码"
登录 v-model="form.tel"
</a-button> ></a-input>
<a-row style="margin-top: 20px; margin-left: 23px"> <a-input
<a-col :span="14"> placeholder="请输入验证码"
<a-checkbox></a-checkbox>&nbsp;&nbsp; v-model="form.code"
</a-col> style="width: 60%"
<a-col :span="10"> ></a-input>
<span class="logintext" @click="status = 3">忘记密码</span <a-button type="primary" @click="getCode"></a-button>
>&nbsp;&nbsp;&nbsp;&nbsp;<span <a-row>
class="logintext" <a-col :span="12" style="margin-left: 23px"
@click="status = 2" ><a-checkbox></a-checkbox>&nbsp;&nbsp;</a-col
>免费注册</span >
</a-row>
<a-button
type="primary"
@click="login"
style="width: 90%; margin: 30px"
> >
</a-col> 登录
</a-row> </a-button>
</div> <a-row style="margin-top: 20px; margin-left: 23px">
<a-col :span="14">
<a-checkbox></a-checkbox>&nbsp;&nbsp;
</a-col>
<a-col :span="10">
<span class="logintext" @click="loginStatus = 3">忘记密码</span
>&nbsp;&nbsp;&nbsp;&nbsp;<span
class="logintext"
@click="loginStatus = 2"
>免费注册</span
>
</a-col>
</a-row>
</div>
</a-tab-pane>
</a-tabs>
</a-col> </a-col>
<!-- 注册 --> <!-- 注册 -->
<a-col class="box-b" v-if="status === 2"> <a-col class="box-b" v-if="loginStatus === 2">
<div class="cardTitle">新建账号</div> <div class="cardTitle">新建账号</div>
<a-form-model <a-form-model
ref="ruleForm" ref="register"
:model="form" :model="registerForm"
:rules="rules" :rules="registerRules"
layout="vertical" layout="vertical"
> >
<a-form-model-item ref="tel" label="手机号码" prop="tel"> <a-form-model-item ref="tel" label="手机号码" prop="tel">
<a-input <a-input
v-model="form.tel" v-model="registerForm.tel"
style="width: 100%" style="width: 100%"
placeholder="请输入手机号" placeholder="请输入手机号"
@blur=" @blur="
@ -101,43 +101,44 @@
} }
" "
/> />
<a-row style="margin-top: 20px">
<a-col :span="16" style="margin-right: 10px"> </a-form-model-item>
<a-form-model-item prop="code">
<a-col :span="16" style="margin-right: 10px">
<a-input <a-input
style="width: 100%" style="width: 100%"
v-model="form.verificationCode" v-model="registerForm.code"
placeholder="请输入验证码" placeholder="请输入验证码"
/> />
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-button type="primary" @click="getCode" <a-button type="primary" @click="registerCode"
>获取验证码</a-button >获取验证码</a-button
> >
</a-col> </a-col>
</a-row>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="设置密码" prop="psw"> <a-form-model-item label="设置密码" prop="password">
<a-input placeholder="请输入密码" /> <a-input placeholder="请输入密码" v-model="registerForm.password"/>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="确认密码" prop="confirmPsw"> <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-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>
<a-form-model-item> <a-form-model-item>
<span>已有账号</span <span>已有账号</span
><span class="logintext" @click="status = 1">登录</span> ><span class="logintext" @click="loginStatus = 1">登录</span>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</a-col> </a-col>
<!-- 找回密码 --> <!-- 找回密码 -->
<a-col class="box-b" v-if="status === 3"> <a-col class="box-b" v-if="loginStatus === 3">
<div class="cardTitle">找回密码</div> <div class="cardTitle">找回密码</div>
<a-form-model <a-form-model
ref="ruleForm" ref="ruleForm"
:model="form" :model="registerForm"
:rules="rules" :rules="registerRules"
layout="vertical" layout="vertical"
> >
<a-form-model-item ref="tel" label="手机号码" prop="tel"> <a-form-model-item ref="tel" label="手机号码" prop="tel">
@ -177,7 +178,7 @@
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<span>已有账号</span <span>已有账号</span
><span class="logintext" @click="status = 1">登录</span> ><span class="logintext" @click="loginStatus = 1">登录</span>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</a-col> </a-col>
@ -187,45 +188,21 @@
</template> </template>
<script> <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 { export default {
name: "Login", name: "Login",
data() { data() {
return { return {
status: 1, loginStatus: 1,
activeName: "1", form,registerForm,registerRules
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",
},
],
},
}; };
}, },
created() { created() {
@ -242,59 +219,73 @@ export default {
}; };
}, },
login() { login() {
loginTelCode(this.form).then(res=>{ loginTelCode(this.form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.$message.success(res.msg); this.$message.success(res.msg);
// token // token
this.setToken(res.data); this.setToken(res.data);
userInfo().then(res =>{
console.log(res.data);
sessionStorage.setItem('info',JSON.stringify(res.data))
})
this.$router.push("/"); this.$router.push("/");
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}) });
}, },
loginPWD() { loginPWD() {
loginPWD(this.pswform).then(res=>{ loginPWD(this.form).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.$message.success(res.msg); this.$message.success(res.msg);
// token // token
this.setToken(res.data); this.setToken(res.data);
userInfo().then(res =>{
sessionStorage.setItem('info',JSON.stringify(res.data))
})
this.$router.push("/"); this.$router.push("/");
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}) });
}, },
// //
getCode() { getCode() {
console.log(1); sendTelCode({ tel: this.form.tel }).then((res) => {
sendTelCode({tel:this.form.tel}).then((res) => {
if (res) { if (res) {
// this.$message.success(""); // 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) { if (valid) {
alert("submit!"); if(this.registerForm.password !== this.registerForm.confirmPsw){
} else { this.$message.error('两次输入密码不一致')
console.log("error submit!!"); return
return false; }
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() { resetForm() {
this.$refs.ruleForm.resetFields(); this.$refs.ruleForm.resetFields();
}, },
tabsSwitch() {
console.log(this.activeName);
},
}, },
}; };
</script> </script>

Loading…
Cancel
Save