Compare commits
10 Commits
786c6816ec
...
ee9e5d1326
Author | SHA1 | Date |
---|---|---|
zhangxuelin | ee9e5d1326 | |
zhangxuelin | 7ed7b2efd2 | |
zhangxuelin | eaf2d82ead | |
zhangxuelin | 7da1d97939 | |
zhangxuelin | 151cdbb1a1 | |
zdg | ad2e6b92db | |
zhangxuelin | bbe4037a71 | |
zhangxuelin | c79e7966ee | |
zhangxuelin | aca464fddd | |
zhangxuelin | 25d026bd13 |
|
@ -36,6 +36,7 @@
|
|||
"electron-log": "^5.1.7",
|
||||
"electron-store": "8.0.0",
|
||||
"electron-updater": "^6.1.7",
|
||||
"element-china-area-data": "^6.1.0",
|
||||
"element-plus": "^2.7.6",
|
||||
"fabric": "^5.3.0",
|
||||
"im_electron_sdk": "^8.0.5904",
|
||||
|
|
|
@ -56,4 +56,68 @@ export function getCodeImg() {
|
|||
method: 'get',
|
||||
timeout: 20000
|
||||
})
|
||||
}
|
||||
|
||||
// 注册模块-生成人机验证
|
||||
export function captchaImg(data) {
|
||||
return request({
|
||||
url: '/captchaImg',
|
||||
headers: {
|
||||
isToken: false
|
||||
},
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
//注册模块-发送验证码
|
||||
export function sendCode(data) {
|
||||
return request({
|
||||
url: '/smarttalk/register/authSendCode',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
//注册模块-申请注册
|
||||
export function signIn(data) {
|
||||
return request({
|
||||
url: '/smarttalk/register/authSignIn',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
//注册模块-获取学校
|
||||
export function deptTree(data) {
|
||||
return request({
|
||||
url: '/smarttalk/register/authDeptTree',
|
||||
method: 'get',
|
||||
params:data
|
||||
})
|
||||
}
|
||||
// 查询部门详细
|
||||
export function getDept(query) {
|
||||
return request({
|
||||
url: '/system/dept/detail',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询classmain列表
|
||||
export function listClassmain(query) {
|
||||
return request({
|
||||
url: '/education/classmain/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 查询evaluation列表
|
||||
export function listEvaluation(query) {
|
||||
return request({
|
||||
url: '/smarttalk/register/authEvaluationList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
|
@ -104,6 +104,9 @@ const switchPageMode = () => {
|
|||
}
|
||||
}
|
||||
onMounted(async () => {
|
||||
window.addEventListener('focus', () => {
|
||||
console.log(11111111111111)
|
||||
})
|
||||
const isDev = process.env.NODE_ENV == 'development'
|
||||
// toolState.showBoardAll = false // 隐藏画板
|
||||
toolState.isPdfWin=true //设置打开pdf窗口
|
||||
|
|
|
@ -0,0 +1,462 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="dialogVisible"
|
||||
title="注册账号"
|
||||
:fullscreen="true"
|
||||
center
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<el-steps style="max-width: 100%;-webkit-app-region: no-drag;height:35px" :active="activeIndex" finish-status="success" simple>
|
||||
<el-step title="1.基本信息" @click="activeIndex=1" />
|
||||
<el-step title="2.在校信息" />
|
||||
</el-steps>
|
||||
<el-form
|
||||
style="width: 80%;margin: 0 auto;margin-top: 10px;-webkit-app-region: no-drag;"
|
||||
:model="ruleForm"
|
||||
:rules="rules"
|
||||
label-width="auto"
|
||||
status-icon
|
||||
ref="ruleFormRef"
|
||||
>
|
||||
<el-form-item label="姓名" prop="name" v-if="activeIndex==1">
|
||||
<el-input v-model="ruleForm.name" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idNumber" v-if="activeIndex==1">
|
||||
<el-input v-model="ruleForm.idNumber" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号" prop="phoneNumber" v-if="activeIndex==1">
|
||||
<el-input v-model="ruleForm.phoneNumber" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验证码" prop="Code" v-if="activeIndex==1">
|
||||
<el-input style="width:60%" v-model="ruleForm.Code" :disabled="true" />
|
||||
<el-button type="primary" style="margin-left:10px" @click="sendcaptchaImg">发送验证码</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="设置密码" prop="password" v-if="activeIndex==1">
|
||||
<el-input v-model="ruleForm.password" type="password" />
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="confirmPassword" v-if="activeIndex==1">
|
||||
<el-input v-model="ruleForm.confirmPassword" type="password" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属地区" prop="address" v-if="activeIndex==2">
|
||||
<el-cascader
|
||||
style="width:100%"
|
||||
v-model="ruleForm.address"
|
||||
:options="regionData"
|
||||
@change="handleChange"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="学校" prop="school" v-if="activeIndex==2">
|
||||
<el-cascader :options="optionsSchool" style="width:100%" v-model="ruleForm.school" @change="handleSchoolChange" />
|
||||
</el-form-item>
|
||||
<el-form-item label="班级" prop="class" v-if="activeIndex==2">
|
||||
<el-tree-select
|
||||
v-model="ruleForm.class"
|
||||
:data="gradeTree"
|
||||
multiple
|
||||
:render-after-expand="false"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="学科" prop="discipline" v-if="activeIndex==2">
|
||||
<div v-for="item in schoolSubject" style="display: flex;">
|
||||
<span style="width:50px">{{ item.name }}:</span>
|
||||
<el-checkbox-group style="width:100%" v-model="ruleForm.discipline" >
|
||||
<el-checkbox style="margin-right:10px" v-for="el in item.children" :key="el.id" :label="el.itemtitle" :value="el" />
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="activeIndex==1">
|
||||
<div class="centerDiv">
|
||||
<el-button type="primary" @click="nextStep(ruleFormRef)">下一步</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="activeIndex==2">
|
||||
<div class="centerDiv">
|
||||
<el-button type="primary" @click="submitForm(ruleFormRef)">立即注册</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- <template #footer>
|
||||
<div class="dialog-footer" >
|
||||
<el-button @click="dialogVisible = false">下一步</el-button>
|
||||
</div>
|
||||
</template> -->
|
||||
<el-dialog
|
||||
v-model="isImg"
|
||||
title="人机验证"
|
||||
width="500"
|
||||
>
|
||||
<span>根据图片回答相关问题</span>
|
||||
<div style="display: flex;align-items: center;;margin-top:30px">
|
||||
<img :src="isPeopleImg" style="width:200px;height:60px;cursor: pointer;" alt="" srcset="" @click="refreshImg">
|
||||
<el-input v-model="ruleForm.imgCode" style="width: 250px;height:40px;margin-left:20px" placeholder="请根据图片填入答案" />
|
||||
</div>
|
||||
<div style="display: flex;justify-content: center;margin-top:30px">
|
||||
<el-button type="primary" @click="sbmitImg">确定</el-button>
|
||||
</div>
|
||||
<!-- <template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="dialogVisible = false">
|
||||
Confirm
|
||||
</el-button>
|
||||
</div>
|
||||
</template> -->
|
||||
</el-dialog>
|
||||
</el-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, defineExpose, reactive ,onMounted} from 'vue'
|
||||
import {captchaImg,sendCode,deptTree,getDept,listClassmain,listEvaluation,signIn} from '@/api/login'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import {setToken, removeToken } from '@/utils/auth'
|
||||
import { regionData, codeToText } from 'element-china-area-data'
|
||||
const ruleFormRef = ref(null)
|
||||
const activeIndex=ref(1)
|
||||
const ruleForm = reactive({
|
||||
name: '',
|
||||
idNumber:'',
|
||||
phoneNumber: '',
|
||||
Code:'',
|
||||
password:'',
|
||||
confirmPassword:'',
|
||||
class:[],
|
||||
discipline:[],
|
||||
school:[],
|
||||
})
|
||||
const isImg=ref(false)
|
||||
const btnName=ref('发送验证码')
|
||||
const resImg = reactive({ imgData: {} });
|
||||
const optionsSchool=ref([])
|
||||
const gradeTree=ref([])
|
||||
const schoolSubject=ref([])
|
||||
const allSubjectList = ref([])
|
||||
const gradeDataList = [
|
||||
[
|
||||
{ label: '一年级', agekey: 1, checked: false, current: 1 },
|
||||
{ label: '二年级', agekey: 2, checked: false, current: 1 },
|
||||
{ label: '三年级', agekey: 3, checked: false, current: 1 },
|
||||
{ label: '四年级', agekey: 4, checked: false, current: 1 },
|
||||
{ label: '五年级', agekey: 5, checked: false, current: 1 },
|
||||
{ label: '六年级', agekey: 6, checked: false, current: 1 },
|
||||
],
|
||||
[
|
||||
{ label: '初一', agekey: 7, checked: false, current: 2 },
|
||||
{ label: '初二', agekey: 8, checked: false, current: 2 },
|
||||
{ label: '初三', agekey: 9, checked: false, current: 2 },
|
||||
],
|
||||
[
|
||||
{ label: '高一', agekey: 10, checked: false, current: 3 },
|
||||
{ label: '高二', agekey: 11, checked: false, current: 3 },
|
||||
{ label: '高三', agekey: 12, checked: false, current: 3 },
|
||||
],
|
||||
]
|
||||
// 人机验证图片
|
||||
const isPeopleImg=ref(null)
|
||||
const rules = reactive({
|
||||
name: [
|
||||
{ required: true, message: '请输入姓名', trigger: 'blur' },
|
||||
],
|
||||
Code: [
|
||||
{ required: true, message: '请输入验证码', trigger: 'blur' },
|
||||
],
|
||||
phoneNumber: [
|
||||
{ required: true, message: '手机号码是必填项', trigger: 'blur' },
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
],
|
||||
idNumber: [
|
||||
{ required: true, message: '身份证号码是必填项', trigger: 'blur' },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (!value) {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
// 正则表达式同时支持15位和18位身份证号码
|
||||
const pattern = /^(?:\d{15}|\d{17}[\dX])$/;
|
||||
const valid = pattern.test(value);
|
||||
if (!valid) {
|
||||
callback(new Error('身份证号码格式不正确'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
password: [
|
||||
{ required: true, message: '请输入密码', trigger: 'blur' },
|
||||
{ min: 6, message: '密码长度必须大于6位数', trigger: 'blur' },
|
||||
],
|
||||
confirmPassword: [
|
||||
{ required: true, message: '请再次输入密码', trigger: 'blur' },
|
||||
{ min: 6, message: '密码长度必须大于6位数', trigger: 'blur' },
|
||||
{ validator: (rule, value, callback) => {
|
||||
if (value !== ruleForm.password) {
|
||||
callback(new Error('两次输入的密码不一致!'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}, trigger: 'change' }
|
||||
],
|
||||
address:[ {
|
||||
required: true,
|
||||
message: '请选择地址',
|
||||
trigger: 'change',
|
||||
},],
|
||||
school:[{
|
||||
required: true,
|
||||
message: '请选择地址',
|
||||
trigger: 'change',
|
||||
},],
|
||||
class:[ {
|
||||
type:'array',
|
||||
required: true,
|
||||
message: '请选择班级',
|
||||
trigger: 'change',
|
||||
},],
|
||||
discipline:[ {
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: '请选择学科',
|
||||
trigger: 'change',
|
||||
},]
|
||||
})
|
||||
const dialogVisible = ref(false)
|
||||
// 打开弹窗
|
||||
const OpenModel = () =>{
|
||||
dialogVisible.value=true
|
||||
}
|
||||
// 关闭弹窗
|
||||
const handleClose = () => {
|
||||
if (ruleFormRef.value) ruleFormRef.value.resetFields()
|
||||
removeToken();
|
||||
activeIndex.value=1
|
||||
dialogVisible.value=false
|
||||
}
|
||||
|
||||
const nextStep = (formEl) => {
|
||||
if (!formEl) return
|
||||
formEl.validate((valid) => {
|
||||
if (valid) {
|
||||
activeIndex.value=2
|
||||
// 获取部门列表
|
||||
deptTree({phone:ruleForm.phoneNumber}).then(res=>{
|
||||
optionsSchool.value=res.data
|
||||
optionsSchool.value.forEach(item=>{
|
||||
item.value=item.id
|
||||
if(!item.children){
|
||||
item.disabled=true
|
||||
}
|
||||
if(item.children){
|
||||
item.children.forEach(child=>{
|
||||
child.value=child.id
|
||||
if(!child.children){
|
||||
child.disabled=true
|
||||
}
|
||||
if(child.children){
|
||||
child.children.forEach(grandson=>{
|
||||
grandson.value=grandson.id
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
getSubject()
|
||||
console.log(res)
|
||||
})
|
||||
console.log('submit!')
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
}
|
||||
})
|
||||
}
|
||||
// 获取所有学科
|
||||
const getSubject = async ()=>{
|
||||
const rows= await listEvaluation({ itemkey: "subject", pageSize: 500 })
|
||||
console.log(rows,'所有学科')
|
||||
allSubjectList.value = rows.data
|
||||
|
||||
}
|
||||
|
||||
const submitForm = async (formEl) => {
|
||||
if (!formEl) return
|
||||
await formEl.validate((valid, fields) => {
|
||||
if (valid) {
|
||||
var araname = codeToText[ruleForm.address[0]] + '-' + codeToText[ruleForm.address[1]] + '-' + codeToText[ruleForm.address[2]];
|
||||
var form={
|
||||
mobile:ruleForm.phoneNumber,
|
||||
code:ruleForm.Code,
|
||||
name:ruleForm.name,
|
||||
idCard:ruleForm.idNumber,
|
||||
password:ruleForm.password,
|
||||
confirmPassword:ruleForm.confirmPassword,
|
||||
schoolId:ruleForm.school[2],
|
||||
classIds:ruleForm.class.join(','),
|
||||
subjectIds:ruleForm.discipline.map(o=>o.id).join(','),
|
||||
subject:ruleForm.discipline.map(o=>o.itemtitle).join(','),
|
||||
areaIds:ruleForm.address.join(','),
|
||||
area:araname
|
||||
}
|
||||
signIn(form).then(res=>{
|
||||
if(res.code==200){
|
||||
ElMessage.success('您已注册成功,等待学校管理员审核')
|
||||
if (ruleFormRef.value) ruleFormRef.value.resetFields()
|
||||
var restValue={
|
||||
name: '',
|
||||
idNumber:'',
|
||||
phoneNumber: '',
|
||||
Code:'',
|
||||
password:'',
|
||||
confirmPassword:'',
|
||||
class:[],
|
||||
discipline:[],
|
||||
school:[],
|
||||
}
|
||||
Object.assign(ruleForm, restValue);
|
||||
activeIndex.value=1
|
||||
dialogVisible.value=false
|
||||
}else{
|
||||
ElMessage.error(res.msg)
|
||||
}
|
||||
})
|
||||
console.log('submit!')
|
||||
} else {
|
||||
console.log('error submit!', fields)
|
||||
}
|
||||
})
|
||||
}
|
||||
// 发送验证码
|
||||
const sendcaptchaImg=()=>{
|
||||
if(ruleForm.phoneNumber){
|
||||
const pattern = /^1[3-9]\d{9}$/;
|
||||
if( pattern.test(ruleForm.phoneNumber) ){
|
||||
captchaImg({mobile:ruleForm.phoneNumber}).then(res=>{
|
||||
ruleForm.imgCode=null
|
||||
isImg.value=true
|
||||
isPeopleImg.value='data:image/jpg;base64,'+res.img
|
||||
if(res.token){
|
||||
setToken(res.token)
|
||||
}
|
||||
resImg.imgData=res
|
||||
})
|
||||
}else{
|
||||
ElMessage.error('请输入正确的手机号码')
|
||||
}
|
||||
// captchaImg({mobile:ruleForm.phoneNumber}).then(res=>{
|
||||
// console.log('res->', res)
|
||||
// })
|
||||
}else{
|
||||
ElMessage.error('请输入手机号码')
|
||||
}
|
||||
}
|
||||
// 刷新
|
||||
const refreshImg=()=>{
|
||||
captchaImg({mobile:ruleForm.phoneNumber}).then(res=>{
|
||||
isPeopleImg.value='data:image/jpg;base64,'+res.img
|
||||
if(res.token){
|
||||
setToken(res.token)
|
||||
}
|
||||
resImg.imgData=res
|
||||
})
|
||||
}
|
||||
// 提交人机验证
|
||||
const sbmitImg=()=>{
|
||||
if(ruleForm.imgCode){
|
||||
sendCode({mobile:ruleForm.phoneNumber,code:ruleForm.imgCode,uuid:resImg.imgData.uuid}).then(res=>{
|
||||
if(res.code==200){
|
||||
ruleForm.Code=res.data
|
||||
isImg.value=false
|
||||
}
|
||||
|
||||
})
|
||||
}else{
|
||||
ElMessage.error('请根据图片输入验证码')
|
||||
}
|
||||
//
|
||||
}
|
||||
const handleChange = (value) => {
|
||||
console.log('选中的地址值:', value);
|
||||
};
|
||||
const handleSchoolChange= async ()=>{
|
||||
ruleForm.discipline=[];
|
||||
ruleForm.class=[];
|
||||
getDept({deptId:ruleForm.school[2]}).then(res =>{
|
||||
if(res.data.studying && res.data.studying.length){
|
||||
let studying = res.data.studying.split(',')
|
||||
let ary = []
|
||||
studying.forEach(item =>{
|
||||
let obj = {
|
||||
name: item,
|
||||
children: []
|
||||
}
|
||||
allSubjectList.value.forEach(el =>{
|
||||
if(item == el.edustage){
|
||||
obj.children.push(el)
|
||||
}
|
||||
})
|
||||
ary.push(obj)
|
||||
})
|
||||
schoolSubject.value = ary
|
||||
}
|
||||
else{
|
||||
schoolSubject.value = []
|
||||
}
|
||||
})
|
||||
listClassmain( {entpid: ruleForm.school[2], pageSize: 500, status: 'open'}).then(res=>{
|
||||
gradeTree.value = groupByCondition(res.rows, item => item.agekey);
|
||||
console.log(gradeTree.value,'班级')
|
||||
})
|
||||
|
||||
}
|
||||
//将所有班级筛选成二级的数组
|
||||
const groupByCondition = (arr, condition)=>{
|
||||
// 分组结果存储为对象
|
||||
const groups = arr.reduce((groups, item) => {
|
||||
const groupKey = condition(item);
|
||||
item.label = item.caption
|
||||
item.value = item.id
|
||||
groups[groupKey] = groups[groupKey] || [];
|
||||
groups[groupKey].push(item);
|
||||
return groups;
|
||||
}, {});
|
||||
// 构建新的数据结构
|
||||
const formattedGroups = Object.keys(groups).map(key => ({
|
||||
label: gradeName(key),
|
||||
value: key,
|
||||
children: groups[key]
|
||||
}));
|
||||
return formattedGroups;
|
||||
}
|
||||
//key对应学段年级
|
||||
const gradeName = (key) =>{
|
||||
//先把二级数组转化为一级数组,用于筛选
|
||||
const flatGradeDataList = gradeDataList.flat();
|
||||
const currentIndex = flatGradeDataList.findIndex(item => item.agekey === Number(key));
|
||||
if(currentIndex !== -1){
|
||||
return flatGradeDataList[currentIndex].label;
|
||||
}else{
|
||||
//社团的处理
|
||||
const defaultLabel = '社团';
|
||||
flatGradeDataList[currentIndex] = { ...flatGradeDataList[currentIndex], label: defaultLabel };
|
||||
return defaultLabel;
|
||||
}
|
||||
}
|
||||
onMounted(()=>{
|
||||
|
||||
})
|
||||
defineExpose({
|
||||
OpenModel,
|
||||
})
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.centerDiv{
|
||||
-webkit-app-region: no-drag;
|
||||
padding-bottom: 20px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
|
@ -21,12 +21,21 @@
|
|||
placeholder="请输入密码"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-checkbox v-model="loginForm.rememberMe" class="flex mb-5">记住密码</el-checkbox>
|
||||
<div class="flex mb-5">
|
||||
<el-checkbox v-model="loginForm.rememberMe" >记住密码</el-checkbox>
|
||||
<!-- <el-checkbox >阅读并同意《xxx》</el-checkbox> -->
|
||||
</div>
|
||||
|
||||
<el-form-item>
|
||||
<el-button :loading="btnLoading" class="btn" type="primary" @click="submitForm(formRef)"
|
||||
>登录</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<div class="flex mb-4" style="display: flex;justify-content: center;color: #ccc;cursor: pointer;">
|
||||
<a style="margin-right: 10px;" @click="RegisterModel">注册账号</a>
|
||||
<!-- | -->
|
||||
<!-- <a style="margin-left: 10px;">忘记密码</a> -->
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -48,6 +57,8 @@
|
|||
</el-dialog>
|
||||
<!--选择学科-->
|
||||
<SelectSubject v-model="isSubject" :login-data="loginForm" />
|
||||
<!--注册弹框-->
|
||||
<Register ref="RegModel"></Register>
|
||||
</template>
|
||||
<script setup>
|
||||
import { onMounted, reactive, ref } from 'vue'
|
||||
|
@ -57,6 +68,7 @@ import useUserStore from '@/store/modules/user'
|
|||
import leftBg2 from '@/assets/images/login/left-bg2.png'
|
||||
import WindowTools from '@/components/window-tools/index.vue'
|
||||
import SelectSubject from '@/components/select-subject/index.vue'
|
||||
import Register from './components/Register.vue'
|
||||
|
||||
const { session } = require('@electron/remote')
|
||||
const downloadProp = ref(0)
|
||||
|
@ -66,6 +78,7 @@ const formRef = ref()
|
|||
const userStore = useUserStore()
|
||||
const btnLoading = ref(false)
|
||||
const isSubject = ref(false)
|
||||
const RegModel = ref(false)
|
||||
//表单
|
||||
const loginForm = reactive({
|
||||
username: '',
|
||||
|
@ -84,7 +97,10 @@ ipcRenderer.on('update-app-progress', (e, prop) => {
|
|||
downloadProp.value = prop
|
||||
showDownLoading.value = prop !== 100
|
||||
})
|
||||
|
||||
// 打开弹窗
|
||||
const RegisterModel = () =>{
|
||||
RegModel.value.OpenModel()
|
||||
}
|
||||
//登录
|
||||
const submitForm = async (formEl) => {
|
||||
if (!formEl) return
|
||||
|
@ -162,7 +178,6 @@ onMounted(() => {
|
|||
align-items: center;
|
||||
justify-content: center;
|
||||
-webkit-app-region: drag;
|
||||
|
||||
.box-item {
|
||||
width: 444px;
|
||||
height: 520px;
|
||||
|
|
|
@ -232,6 +232,16 @@ export default {
|
|||
openFileWin(items) {
|
||||
if (items.fileFlag === 'apt') {
|
||||
console.log(items);
|
||||
const path="/teaching/aptindex?id="+items.fileId
|
||||
let configObj = outLink().getBaseData()
|
||||
let fullPath = configObj.fullPath + path
|
||||
fullPath = fullPath.replaceAll('//', '/')
|
||||
// 通知主进程
|
||||
ipcRenderer.send('openWindow', {
|
||||
key: path,
|
||||
fullPath: fullPath,
|
||||
cookieData: { ...configObj.data }
|
||||
})
|
||||
return
|
||||
}
|
||||
if (!items||!items.fileSuffix) return;
|
||||
|
|
Loading…
Reference in New Issue