登陆页面ui更换,调整用户和机构表单字段

main
xuechunyuan 3 years ago
parent 8cd62f2d58
commit 0d28ef4a8a
  1. BIN
      public/img/bg/bg5.png
  2. BIN
      public/img/bg/login-title.png
  3. 4
      src/config/website.js
  4. 21
      src/page/login/index.vue
  5. 4
      src/page/login/userlogin.vue
  6. 94
      src/styles/login.scss
  7. 79
      src/views/blacklist/index.vue
  8. 10
      src/views/system/dept.vue
  9. 793
      src/views/system/user.vue

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@ -8,9 +8,9 @@ export default {
indexTitle: '车管所体检预约管理', indexTitle: '车管所体检预约管理',
clientId: 'saber', // 客户端id clientId: 'saber', // 客户端id
clientSecret: 'saber_secret', // 客户端密钥 clientSecret: 'saber_secret', // 客户端密钥
tenantMode: true, // 是否开启租户模式 tenantMode: false, // 是否开启租户模式
tenantId: "000000", // 管理组租户编号 tenantId: "000000", // 管理组租户编号
captchaMode: true, // 是否开启验证码模式 captchaMode: false, // 是否开启验证码模式
switchMode: false, // 是否开启部门切换模式 switchMode: false, // 是否开启部门切换模式
lockPage: '/lock', lockPage: '/lock',
tokenTime: 3000, tokenTime: 3000,

@ -4,7 +4,7 @@
@keyup.enter.native="handleLogin"> @keyup.enter.native="handleLogin">
<top-color v-show="false"></top-color> <top-color v-show="false"></top-color>
<div class="login-weaper animated bounceInDown"> <div class="login-weaper animated bounceInDown">
<div class="login-left"> <!-- <div class="login-left">
<div class="login-time"> <div class="login-time">
{{time}} {{time}}
</div> </div>
@ -30,23 +30,24 @@
<br> <br>
<span>----------------------------------------------</span> <span>----------------------------------------------</span>
</div> </div>
<!--<img class="img" src="/img/logo.png" alt="">--> <img class="img" src="/img/logo.png" alt="">
</div> </div> -->
<div class="login-border"> <div class="login-border">
<div class="login-main"> <div class="login-main">
<h4 class="login-title"> <div class="login-title">
{{ $t('login.title') }}{{website.title}} <img class="login-img" src="/img/bg/login-title.png"/>
<top-lang></top-lang> <div class="login-small-title">VEHICLE MANAGEMENT OFFICE PHYSICAL EXAMINATION<br/>
</h4> RESERVATION SYSTEM</div>
</div>
<userLogin v-if="activeName==='user'"></userLogin> <userLogin v-if="activeName==='user'"></userLogin>
<codeLogin v-else-if="activeName==='code'"></codeLogin> <!-- <codeLogin v-else-if="activeName==='code'"></codeLogin>
<thirdLogin v-else-if="activeName==='third'"></thirdLogin> <thirdLogin v-else-if="activeName==='third'"></thirdLogin>
<div class="login-menu"> <div class="login-menu">
<a href="#" @click.stop="activeName='user'">{{ $t('login.userLogin') }}</a> <a href="#" @click.stop="activeName='user'">{{ $t('login.userLogin') }}</a>
<!--<a href="#" @click.stop="activeName='code'">{{ $t('login.phoneLogin') }}</a>--> <a href="#" @click.stop="activeName='code'">{{ $t('login.phoneLogin') }}</a>
<a href="#" @click.stop="activeName='third'">{{ $t('login.thirdLogin') }}</a> <a href="#" @click.stop="activeName='third'">{{ $t('login.thirdLogin') }}</a>
<a :href="website.ssoUrl + website.redirectUri">{{ $t('login.ssoLogin') }}</a> <a :href="website.ssoUrl + website.redirectUri">{{ $t('login.ssoLogin') }}</a>
</div> </div> -->
</div> </div>
</div> </div>

@ -15,7 +15,7 @@
</el-input> </el-input>
</el-form-item> --> </el-form-item> -->
<el-form-item prop="username"> <el-form-item prop="username">
<el-input size="small" <el-input
@keyup.enter.native="handleLogin" @keyup.enter.native="handleLogin"
v-model="loginForm.username" v-model="loginForm.username"
auto-complete="off" auto-complete="off"
@ -24,7 +24,7 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input size="small" <el-input
@keyup.enter.native="handleLogin" @keyup.enter.native="handleLogin"
:type="passwordType" :type="passwordType"
v-model="loginForm.password" v-model="loginForm.password"

@ -5,14 +5,18 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
margin: 0 auto; margin: 0 auto;
background-image: url("/img/bg/bg.jpg"); background-image: url("/img/bg/bg5.png");
background-size: 100% 100%; background-size: 100% 100%;
} }
.login-weaper { .login-weaper {
margin: 0 auto; margin: 0 144px 0 auto;
width: 1000px; // width: 1000px;
box-shadow: -4px 5px 10px rgba(0, 0, 0, 0.4); width: 500px;
// box-shadow: -4px 5px 10px rgba(0, 0, 0, 0.4);
background: linear-gradient(140deg, #E4ECF7 0%, #F8FAFC 67%, #FFFFFF 100%);
box-shadow: 1px 3px 12px 1px rgba(34, 63, 88, 0.14);
border-radius: 8px;
.el-input-group__append { .el-input-group__append {
border: none; border: none;
@ -63,20 +67,20 @@
letter-spacing: 2px; letter-spacing: 2px;
} }
.login-border { // .login-border {
border-left: none; // border-left: none;
border-top-right-radius: 5px; // border-top-right-radius: 5px;
border-bottom-right-radius: 5px; // border-bottom-right-radius: 5px;
color: #fff; // color: #fff;
background-color: #fff; // background-color: #fff;
width: 50%; // width: 50%;
float: left; // float: left;
box-sizing: border-box; // box-sizing: border-box;
} // }
.login-main { .login-main {
margin: 0 auto; margin: 0 auto;
width: 65%; width: 396px;
box-sizing: border-box; box-sizing: border-box;
} }
@ -91,10 +95,26 @@
.login-title { .login-title {
color: #333; color: #333;
margin-bottom: 40px; margin-bottom: 40px;
margin-top: 60px;
font-weight: 500; font-weight: 500;
font-size: 22px; font-size: 22px;
text-align: center; text-align: center;
letter-spacing: 4px; // letter-spacing: 4px;
}
.login-img {
width: 396px;
height: 42px;
}
.login-small-title {
color: #999999;
font-size: 12px;
line-height: 16px;
font-family: Microsoft YaHei-Light, Microsoft YaHei;
font-weight: 300;
text-align: left;
margin-top: 14px;
} }
.login-menu { .login-menu {
@ -111,21 +131,26 @@
.login-submit { .login-submit {
width: 100%; width: 100%;
height: 45px; height: 60px;
border: 1px solid #409EFF; // border: 1px solid #409EFF;
background: none; background: #1677FF;
;
font-size: 18px; font-size: 18px;
letter-spacing: 2px; letter-spacing: 2px;
font-weight: 300; font-weight: 300;
color: #409EFF; // color: #409EFF;
color: #fff;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
cursor: pointer; cursor: pointer;
margin-top: 30px; margin-top: 50px;
font-family: "neo"; // font-family: "neo";
transition: 0.25s; transition: 0.25s;
border-radius: 8px;
} }
.login-form { .login-form {
margin: 10px 0; margin: 0 0 60px 0;
i { i {
color: #333; color: #333;
@ -136,24 +161,33 @@
} }
.el-form-item { .el-form-item {
margin-bottom: 12px; margin-bottom: 20px;
} }
.el-input { .el-input {
input { input {
padding-bottom: 10px; height:60px;
// padding-bottom: 10px;
text-indent: 5px; text-indent: 5px;
background: transparent; // background: transparent;
border: none; // border: none;
border-radius: 0; // border-radius: 0;
color: #333; color: #333;
border-bottom: 1px solid rgb(235, 237, 242); // border-bottom: 1px solid rgb(235, 237, 242);
border: 1px solid #D2D2D2;
border-radius: 8PX;
&:focus{
border-color: #1677FF;
}
} }
.el-input__prefix { .el-input__prefix {
top: 10px;
i { i {
color: #1677FF;
padding: 0 5px; padding: 0 5px;
font-size: 16px !important; font-size: 18px !important;
} }
} }
} }

@ -1,11 +1,11 @@
<template> <template>
<basic-container> <basic-container>
<avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel" <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" v-model="form"
v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :permission="permissionList" :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
@search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> @refresh-change="refreshChange" @on-load="onLoad">
<template slot-scope="{row}" slot="menu"> <template slot-scope="{row}" slot="menu">
<el-button type="text" icon="el-icon-circle-plus-outline" size="small" @click="handleDelete">取消黑名单 <el-button type="text" icon="el-icon-circle-plus-outline" size="small" @click="handleCancel">取消黑名单
</el-button> </el-button>
</template> </template>
<template slot-scope="{row}" slot="status"> <template slot-scope="{row}" slot="status">
@ -93,44 +93,25 @@ export default {
} }
}, },
methods: { methods: {
// //
publish(row, done, loading) { handleCancel(row) {
console.log(row, done, loading) this.$confirm("确认将此用户移除黑名单吗?", {
},
rowSave(row, done, loading) {
add(row).then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
});
done();
}, error => {
window.console.log(error);
loading();
});
},
rowUpdate(row, index, done, loading) {
update(row).then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
});
done();
}, error => {
window.console.log(error);
loading();
});
},
rowDel(row) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
}) })
.then(() => { .then(() => {
return remove(row.id); // update(row).then(() => {
// this.onLoad(this.page);
// this.$message({
// type: "success",
// message: "!"
// });
// done();
// }, error => {
// window.console.log(error);
// loading();
// });
}) })
.then(() => { .then(() => {
this.onLoad(this.page); this.onLoad(this.page);
@ -157,28 +138,6 @@ export default {
this.selectionList = []; this.selectionList = [];
this.$refs.crud.toggleSelection(); this.$refs.crud.toggleSelection();
}, },
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
return remove(this.ids);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
});
this.$refs.crud.toggleSelection();
});
},
beforeOpen(done, type) { beforeOpen(done, type) {
if (["edit", "view"].includes(type)) { if (["edit", "view"].includes(type)) {
getNotice(this.form.id).then(res => { getNotice(this.form.id).then(res => {

@ -32,7 +32,7 @@ import {
getDeptTree getDeptTree
} from "@/api/system/dept"; } from "@/api/system/dept";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import website from '@/config/website'; // import website from '@/config/website';
export default { export default {
data() { data() {
@ -74,7 +74,7 @@ export default {
}, },
{ {
label: "机构logo", label: "机构logo",
prop: "deptName", prop: "imgUrl",
html: true, html: true,
formatter: (val) => { formatter: (val) => {
return `${val.logo ? '<img src="' + val.logo + '"/>' : ''}` return `${val.logo ? '<img src="' + val.logo + '"/>' : ''}`
@ -146,11 +146,11 @@ export default {
}] }]
}, },
{ {
label: "备注", label: "地址",
prop: "remark", prop: "remark",
rules: [{ rules: [{
required: false, required: true,
message: "请输入备注", message: "请输入地址",
trigger: "blur" trigger: "blur"
}], }],
hide: true hide: true

@ -11,77 +11,32 @@
</el-col> </el-col>
<el-col :span="19"> <el-col :span="19">
<basic-container> <basic-container>
<avue-crud :option="option" <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
:search.sync="search" v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
:table-loading="loading" :before-open="beforeOpen" :page.sync="page" @search-change="searchChange" @search-reset="searchReset"
:data="data" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
ref="crud" @refresh-change="refreshChange" @on-load="onLoad">
v-model="form"
:permission="permissionList"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page.sync="page"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad">
<template slot-scope="scope" slot="menu"> <template slot-scope="scope" slot="menu">
<el-button <el-button type="text" icon="el-icon-circle-plus-outline" size="small"
type="text" @click.stop="handleUpdate(scope.row, scope.index)" v-if="userInfo.role_name.includes('admin')">封禁
icon="el-icon-circle-plus-outline"
size="small"
@click.stop="handleUpdate(scope.row,scope.index)"
v-if="userInfo.role_name.includes('admin')"
>封禁
</el-button> </el-button>
</template> </template>
<template slot-scope="{row}" <template slot-scope="{row}" slot="status">
slot="tenantName">
<el-tag>{{row.tenantName}}</el-tag>
</template>
<template slot-scope="{row}"
slot="roleName">
<el-tag>{{row.roleName}}</el-tag>
</template>
<template slot-scope="{row}"
slot="deptName">
<el-tag>{{row.deptName}}</el-tag>
</template>
<template slot-scope="{row}"
slot="status">
<el-tag>{{ row.status == 1 ? '启用' : '封禁' }}</el-tag> <el-tag>{{ row.status == 1 ? '启用' : '封禁' }}</el-tag>
</template> </template>
</avue-crud> </avue-crud>
<el-dialog title="用户角色配置" <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px">
append-to-body
:visible.sync="roleBox"
width="345px">
<el-tree :data="roleGrantList" <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
show-checkbox :default-checked-keys="roleTreeObj" :props="props">
check-strictly
default-expand-all
node-key="id"
ref="treeRole"
:default-checked-keys="roleTreeObj"
:props="props">
</el-tree> </el-tree>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="roleBox = false"> </el-button> <el-button @click="roleBox = false"> </el-button>
<el-button type="primary" <el-button type="primary" @click="submitRole"> </el-button>
@click="submitRole"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="用户数据导入" <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
append-to-body
:visible.sync="excelBox"
width="555px">
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"> <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
<template slot="excelTemplate"> <template slot="excelTemplate">
<el-button type="primary" @click="handleTemplate"> <el-button type="primary" @click="handleTemplate">
@ -90,48 +45,31 @@
</template> </template>
</avue-form> </avue-form>
</el-dialog> </el-dialog>
<el-dialog title="用户平台配置" <el-dialog title="用户平台配置" append-to-body :visible.sync="platformBox">
append-to-body <avue-crud :option="platformOption" :table-loading="platformLoading" :data="platformData" ref="platformCrud"
:visible.sync="platformBox"> v-model="platformForm" :before-open="platformBeforeOpen" :page.sync="platformPage"
<avue-crud :option="platformOption" :permission="platformPermissionList" @row-update="platformRowUpdate" @search-change="platformSearchChange"
:table-loading="platformLoading" @search-reset="platformSearchReset" @selection-change="platformSelectionChange"
:data="platformData" @current-change="platformCurrentChange" @size-change="platformSizeChange"
ref="platformCrud" @refresh-change="platformRefreshChange" @on-load="platformOnLoad">
v-model="platformForm" <template slot-scope="{row}" slot="tenantName">
:before-open="platformBeforeOpen"
:page.sync="platformPage"
:permission="platformPermissionList"
@row-update="platformRowUpdate"
@search-change="platformSearchChange"
@search-reset="platformSearchReset"
@selection-change="platformSelectionChange"
@current-change="platformCurrentChange"
@size-change="platformSizeChange"
@refresh-change="platformRefreshChange"
@on-load="platformOnLoad">
<template slot-scope="{row}"
slot="tenantName">
<el-tag>{{ row.tenantName }}</el-tag> <el-tag>{{ row.tenantName }}</el-tag>
</template> </template>
<template slot-scope="{row}" <template slot-scope="{row}" slot="userTypeName">
slot="userTypeName">
<el-tag>{{ row.userTypeName }}</el-tag> <el-tag>{{ row.userTypeName }}</el-tag>
</template> </template>
</avue-crud> </avue-crud>
</el-dialog> </el-dialog>
</basic-container>
</el-col>
<!-- 打印 --> <!-- 打印 -->
<van-button v-print="printObj">打印测试</van-button> <van-button v-print="printObj">打印测试</van-button>
<div id="pintHtml" style="height:1000px;"> <div id="pintHtml" class="prin_table"
<table border="1" cellspacing="0"> style="font-family: SimSun;font-size:12px;letter-spacing: 2px;line-height:16px;display: inline-block;overflow: hidden;">
<div style="line-height:40px;font-size:22pt;text-align:center;">机动车驾驶人身体条件证明</div>
<table border="1" cellspacing="3">
<tr> <tr>
<td colspan="34" style="font-size:22pt;text-align:center;">机动车驾驶人身体条件证明</td> <td rowspan="6" style="text-align:center;width:26px;"><br /><br /><br /><br /><br /><br /></td>
</tr> <td rowspan="4" style="text-align:center;width:26px;"><br /><br /><br /><br /></td>
<tr> <td style="width:60px;text-align:center;"> </td>
<td rowspan="6" style="text-align:center;"><br/><br/><br/><br/><br/><br/></td>
<td rowspan="4" style="text-align:center;"><br/><br/><br/><br/></td>
<td width="60pt" style="text-align:center;"> </td>
<td colspan="3"></td> <td colspan="3"></td>
<td style="text-align:center;">性别</td> <td style="text-align:center;">性别</td>
<td>{{ sex }}</td> <td>{{ sex }}</td>
@ -141,41 +79,44 @@
<td colspan="5"></td> <td colspan="5"></td>
</tr> </tr>
<tr> <tr>
<td width="60pt" style="text-align:center;">身份证<br/>明名称</td> <td style="text-align:center;">身份证<br />明名称</td>
<td colspan="4"></td> <td colspan="4"></td>
<td> </td> <td style="text-align:center;"> </td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td colspan="2" width="40pt"></td> <td colspan="2" style="width:36px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
<td width="20pt"></td> <td style="width:20px;"></td>
</tr> </tr>
<tr> <tr>
<td colspan="3" style="letter-spacing: 1px;">申请 / 已具有的<br/>准驾车型代号</td> <td colspan="3" style="width:100px;text-align:center;">
<div style="letter-spacing:1px;">申请 / 已具有的</div>
<div style="letter-spacing:4px;">准驾车型代号</div>
</td>
<td colspan="3"></td> <td colspan="3"></td>
<td colspan="4">档案编号</td> <td colspan="4" style="text-align:center;">档案编号</td>
<td colspan="9"></td> <td colspan="9"></td>
<td colspan="6" rowspan="4"> <td colspan="6" rowspan="4" style="text-align:center;">
<div>医疗机构章</div> <div style="padding-top:100px;">医疗机构章</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="60pt">邮寄<br/>地址</td> <td style="text-align:center;">邮寄<br />地址</td>
<td colspan="5"></td> <td colspan="5"></td>
<td colspan="4">联系电话</td> <td style="text-align:center;" colspan="4">联系电话</td>
<td colspan="9"></td> <td colspan="9"></td>
</tr> </tr>
<tr> <tr>
@ -183,51 +124,156 @@
<td colspan="19">本人如实申告 具有 不具有 下列疾病或者情况</td> <td colspan="19">本人如实申告 具有 不具有 下列疾病或者情况</td>
</tr> </tr>
<tr> <tr>
<td colspan="19"><br/>器质性心脏病 癫痫 美尼尔氏症 癔病 震颤麻痹 精神病 痴呆 <td colspan="19">器质性心脏病 <span style="margin-left:50px">&nbsp;&nbsp;</span>
<span style="margin-left:50px">美尼尔氏症</span>
<span style="margin-left:50px">&nbsp;&nbsp;</span>
<span style="margin-left:50px"></span>
<span style="margin-left:60px">震颤麻痹</span>
<span style="margin-left:60px">精神病</span>
<span style="margin-left:60px">痴呆</span>
<div>影响肢体活动的神经系统疾病等妨碍安全驾驶病</div> <div>影响肢体活动的神经系统疾病等妨碍安全驾驶病</div>
<div>三年内有吸食注射毒品行为或者接触强制隔离戒毒措施未满三年或者长期服用依赖性<br/>精神药品成瘾尚未戒除</div> <div>三年内有吸食注射毒品行为或者接触强制隔离戒毒措施未满三年或者长期服用依赖性精神药品成瘾尚未戒除</div>
<br/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td rowspan="10" colspan="2" style="text-align:center;"><br/><br/><br/><br/><br/><br/><br/></td> <td rowspan="10" colspan="2" style="text-align:center;"><br /><br /><br /><br /><br /><br /><br />
<td width="60pt" style="text-align:center;">身高cm</td> </td>
<td style="text-align:center;">身高cm</td>
<td colspan="2"></td> <td colspan="2"></td>
<td width="90pt">辨色力</td> <td style="text-align:center;">辨色力</td>
<td colspan="3"> <td colspan="3" style="text-align:center;">
红绿色盲<br/> <span style="letter-spacing:3px;">红绿色盲</span><br />
</td> </td>
<td colspan="4">医生备注</td> <td colspan="4" style="text-align:center;">医生<br />备注</td>
<td colspan="15"></td> <td colspan="15"></td>
</tr> </tr>
<tr> <tr>
<td rowspan="2" style="text-align:center;"><br /></td> <td rowspan="2" style="text-align:center;"><br /></td>
<td colspan="2">左眼</td> <td colspan="2" style="text-align:center;">左眼</td>
<td rowspan="2" width="90pt">是否矫正</td> <td rowspan="2" style="text-align:center;">是否矫正</td>
<td colspan="2"> <td colspan="2" style="text-align:center;">
</td> </td>
<td width="20pt"><br/><br/><br/><br/><br/></td> <td style="text-align:center;" rowspan="2"><br /><br /><br /><br /><br /></td>
<td colspan="5"></td> <td colspan="5"></td>
<td width="20pt"><br/><br/><br/></td> <td style="text-align:center;"><br /><br /><br /></td>
<td colspan="12"></td> <td colspan="12"></td>
</tr> </tr>
<tr> <tr>
<td colspan="2">右眼</td> <td colspan="2" style="text-align:center;">右眼</td>
<td colspan="2"> <td colspan="2" style="text-align:center;">
</td> </td>
<td width="20pt"><br/><br/><br/><br/><br/></td>
<td colspan="5"></td> <td colspan="5"></td>
<td width="20pt"><br/><br/><br/></td> <td style="text-align:center;"><br /><br /><br /></td>
<td colspan="12"></td> <td colspan="12"></td>
</tr> </tr>
<tr rowspan="2" colspan="2"> <tr>
<td style="text-align:center;"><br/></td> <td style="text-align:center;" rowspan="2"><br /></td>
<td colspan="5">
<div style="float:left;display:inline-block;">左耳</div>
<div style="float:left;display:inline-block;margin-left:50px;">不合格 合格<br />佩戴助听装置
</div>
</td>
<td rowspan="2" style="text-align:center;"><br /><br /><br /></td>
<td colspan="18"></td>
</tr>
<tr>
<td colspan="5" style="text-align:center;">
<div style="float:left;display:inline-block;">右耳</div>
<div style="float:left;display:inline-block;margin-left:50px;">不合格 合格<br />佩戴助听装置
</div>
</td>
<td colspan="18"></td>
</tr>
<tr>
<td style="text-align:center;">躯干和<br />颈部</td>
<td colspan="10" style="text-align:center;">
<span style="letter-spacing:3px;">运动功能障碍</span><br />
</td>
<td colspan="3" style="text-align:center;">医生<br />备注</td>
<td colspan="14"></td>
</tr>
<tr>
<td rowspan="2" style="text-align:center;">上肢</td>
<td colspan="2" style="text-align:center;">左上肢</td>
<td colspan="10">
<div>不合格<span style="margin-left:30px;">合格</span></div>
<div>手指末节残缺</div>
<div>左手三指健全双手手掌完整</div>
<div>符合申请C5条件</div>
</td>
<td rowspan="4" colspan="4" style="text-align:center;">
双下肢缺<br />失或者丧<br />失运动功<br />能障碍是<br />否能够自<br />主坐立
<div style="padding-top:30px;"> </div>
</td>
<td rowspan="4" style="text-align:center;"><br /><br /><br /></td>
<td rowspan="4" colspan="10"></td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">右上肢</td>
<td colspan="10">
<div>不合格<span style="margin-left:30px;">合格</span></div>
<div>手指末节残缺</div>
<div>右手拇指残缺</div>
<div>符合申请C5条件</div>
</td>
</tr>
<tr>
<td rowspan="2" style="text-align:center;">下肢</td>
<td colspan="2" style="text-align:center;">左下肢</td>
<td colspan="10">
<div>不合格<span style="margin-left:30px;">合格</span></div>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">右下肢</td>
<td colspan="10">
<div>不合格<span style="margin-left:30px;">合格</span></div>
<div>不合格但可自主坐立</div>
</td>
</tr>
<tr>
<td colspan="3" style="text-align:center;">申请方式</td>
<td colspan="29">
<span style="padding-left:50px;">本人申请</span>
<span style="padding-left:100px;">委托<span
style="display:inline-block;width:200px;border-bottom:1px solid #000;"></span>代理申请</span>
</td>
</tr>
<tr>
<td colspan="3" rowspan="2" style="text-align:center;">委托代理人信息</td>
<td style="text-align:center;">姓名</td>
<td colspan="6"></td>
<td colspan="4" style="text-align:center;">身份证明<br />名称</td>
<td colspan="5"></td>
<td colspan="2" style="text-align:center;">号码</td>
<td colspan="8"></td>
</tr>
<tr>
<td style="text-align:center;">联系地址</td>
<td colspan="15"></td>
<td colspan="2" style="text-align:center;">电话</td>
<td colspan="8"></td>
</tr>
<tr>
<td colspan="33" style="padding:8px 3px;">
备注机动车驾驶人身体条件证明自体检之日起6个月内有效
</td>
</tr>
<tr>
<td colspan="33" style="padding:10px 3px;font-size:14px;">
<div style="display:inline-block;width:30%;">申请人签字</div>
<div style="display:inline-block;width:30%;">医生签字</div>
<div style="display:inline-block;width:30%;">代理人签字</div>
</td>
</tr> </tr>
</table> </table>
</div> </div>
</basic-container>
</el-col>
</el-row> </el-row>
</template> </template>
@ -349,49 +395,11 @@
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{ {
label: "医院名称", label: "机构名称",
prop: "realName", prop: "deptName",
search: true, search: true,
display: false display: false
}, },
{
label: "登录账号",
prop: "account",
display: false
},
{
label: "账号状态",
prop: "status",
slot: true,
display: false
},
],
group: [
{
label: '基础信息',
prop: 'baseInfo',
icon: 'el-icon-user-solid',
column: [
{
label: "所属租户",
prop: "tenantId",
type: "tree",
dicUrl: "/api/blade-system/tenant/select",
props: {
label: "tenantName",
value: "tenantId"
},
hide: !website.tenantMode,
addDisplay: website.tenantMode,
editDisplay: website.tenantMode,
viewDisplay: website.tenantMode,
rules: [{
required: true,
message: "请输入所属租户",
trigger: "click"
}],
span: 24,
},
{ {
label: "登录账号", label: "登录账号",
prop: "account", prop: "account",
@ -402,21 +410,15 @@
}], }],
}, },
{ {
label: "用户平台", label: "账号状态",
type: "select", prop: "status",
dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
props: {
label: "dictValue",
value: "dictKey"
},
dataType: "number",
slot: true, slot: true,
prop: "userType", display: false
rules: [{ },
required: true, {
message: "请选择用户平台", label: "角色",
trigger: "blur" prop: "roleName",
}] display: false
}, },
{ {
label: '密码', label: '密码',
@ -434,95 +436,10 @@
viewDisplay: false, viewDisplay: false,
rules: [{ required: true, validator: validatePass2, trigger: 'blur' }] rules: [{ required: true, validator: validatePass2, trigger: 'blur' }]
}, },
]
},
{
label: '详细信息',
prop: 'detailInfo',
icon: 'el-icon-s-order',
column: [
{
label: "用户昵称",
prop: "name",
hide: true,
rules: [{
required: true,
message: "请输入用户昵称",
trigger: "blur"
}]
},
{
label: "用户姓名",
prop: "realName",
rules: [{
required: true,
message: "请输入用户姓名",
trigger: "blur"
}, {
min: 2,
max: 5,
message: '姓名长度在2到5个字符'
}]
},
{
label: "手机号码",
prop: "phone",
overHidden: true
},
{
label: "电子邮箱",
prop: "email",
hide: true,
overHidden: true
},
{
label: "用户性别",
prop: "sex",
type: "select",
dicData: [
{
label: "男",
value: 1
},
{
label: "女",
value: 2
},
{
label: "未知",
value: 3
}
],
hide: true
},
{
label: "用户生日",
type: "date",
prop: "birthday",
format: "yyyy-MM-dd hh:mm:ss",
valueFormat: "yyyy-MM-dd hh:mm:ss",
hide: true
},
{
label: "账号状态",
prop: "statusName",
hide: true,
display: false
}
]
},
{
label: '职责信息',
prop: 'dutyInfo',
icon: 'el-icon-s-custom',
column: [
{
label: "用户编号",
prop: "code",
},
{ {
label: "所属角色", label: "所属角色",
prop: "roleId", prop: "roleId",
hide:true,
multiple: true, multiple: true,
type: "tree", type: "tree",
dicData: [], dicData: [],
@ -541,6 +458,7 @@
label: "所属部门", label: "所属部门",
prop: "deptId", prop: "deptId",
type: "tree", type: "tree",
hide: true,
multiple: true, multiple: true,
dicData: [], dicData: [],
props: { props: {
@ -554,25 +472,214 @@
trigger: "click" trigger: "click"
}] }]
}, },
{ ],
label: "所属岗位", // group: [
prop: "postId", // {
type: "tree", // label: '',
multiple: true, // prop: 'baseInfo',
dicData: [], // icon: 'el-icon-user-solid',
props: { // column: [
label: "postName", // {
value: "id" // label: "",
}, // prop: "tenantId",
rules: [{ // type: "tree",
required: true, // dicUrl: "/api/blade-system/tenant/select",
message: "请选择所属岗位", // props: {
trigger: "click" // label: "tenantName",
}], // value: "tenantId"
}, // },
] // hide: !website.tenantMode,
}, // addDisplay: website.tenantMode,
] // editDisplay: website.tenantMode,
// viewDisplay: website.tenantMode,
// rules: [{
// required: true,
// message: "",
// trigger: "click"
// }],
// span: 24,
// },
// {
// label: "",
// prop: "account",
// rules: [{
// required: true,
// message: "",
// trigger: "blur"
// }],
// },
// {
// label: "",
// type: "select",
// dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
// props: {
// label: "dictValue",
// value: "dictKey"
// },
// dataType: "number",
// slot: true,
// prop: "userType",
// rules: [{
// required: true,
// message: "",
// trigger: "blur"
// }]
// },
// {
// label: '',
// prop: 'password',
// hide: true,
// editDisplay: false,
// viewDisplay: false,
// rules: [{ required: true, validator: validatePass, trigger: 'blur' }]
// },
// {
// label: '',
// prop: 'password2',
// hide: true,
// editDisplay: false,
// viewDisplay: false,
// rules: [{ required: true, validator: validatePass2, trigger: 'blur' }]
// },
// ]
// },
// {
// label: '',
// prop: 'detailInfo',
// icon: 'el-icon-s-order',
// column: [
// {
// label: "",
// prop: "name",
// hide: true,
// rules: [{
// required: true,
// message: "",
// trigger: "blur"
// }]
// },
// {
// label: "",
// prop: "realName",
// rules: [{
// required: true,
// message: "",
// trigger: "blur"
// }, {
// min: 2,
// max: 5,
// message: '25'
// }]
// },
// {
// label: "",
// prop: "phone",
// overHidden: true
// },
// {
// label: "",
// prop: "email",
// hide: true,
// overHidden: true
// },
// {
// label: "",
// prop: "sex",
// type: "select",
// dicData: [
// {
// label: "",
// value: 1
// },
// {
// label: "",
// value: 2
// },
// {
// label: "",
// value: 3
// }
// ],
// hide: true
// },
// {
// label: "",
// type: "date",
// prop: "birthday",
// format: "yyyy-MM-dd hh:mm:ss",
// valueFormat: "yyyy-MM-dd hh:mm:ss",
// hide: true
// },
// {
// label: "",
// prop: "statusName",
// hide: true,
// display: false
// }
// ]
// },
// {
// label: '',
// prop: 'dutyInfo',
// icon: 'el-icon-s-custom',
// column: [
// {
// label: "",
// prop: "code",
// },
// {
// label: "",
// prop: "roleId",
// multiple: true,
// type: "tree",
// dicData: [],
// props: {
// label: "title"
// },
// checkStrictly: true,
// slot: true,
// rules: [{
// required: true,
// message: "",
// trigger: "click"
// }]
// },
// {
// label: "",
// prop: "deptId",
// type: "tree",
// multiple: true,
// dicData: [],
// props: {
// label: "title"
// },
// checkStrictly: true,
// slot: true,
// rules: [{
// required: true,
// message: "",
// trigger: "click"
// }]
// },
// // {
// // label: "",
// // prop: "postId",
// // type: "tree",
// // multiple: true,
// // dicData: [],
// // props: {
// // label: "postName",
// // value: "id"
// // },
// // rules: [{
// // required: true,
// // message: "",
// // trigger: "click"
// // }],
// // },
// ]
// },
// ]
}, },
data: [], data: [],
platformQuery: {}, platformQuery: {},
@ -597,53 +704,53 @@
search: true, search: true,
display: false display: false
}, },
{ // {
label: "所属租户", // label: "",
prop: "tenantName", // prop: "tenantName",
slot: true, // slot: true,
display: false // display: false
}, // },
{ {
label: "用户姓名", label: "用户姓名",
prop: "realName", prop: "realName",
search: true, search: true,
display: false display: false
}, },
{ // {
label: "用户平台", // label: "",
prop: "userTypeName", // prop: "userTypeName",
slot: true, // slot: true,
display: false // display: false
}, // },
{ // {
label: "用户平台", // label: "",
type: "select", // type: "select",
dicUrl: "/api/blade-system/dict/dictionary?code=user_type", // dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
props: { // props: {
label: "dictValue", // label: "dictValue",
value: "dictKey" // value: "dictKey"
}, // },
dataType: "number", // dataType: "number",
search: true, // search: true,
hide: true, // hide: true,
display: false, // display: false,
prop: "userType", // prop: "userType",
rules: [{ // rules: [{
required: true, // required: true,
message: "请选择用户平台", // message: "",
trigger: "blur" // trigger: "blur"
}] // }]
}, // },
{ // {
label: "用户拓展", // label: "",
prop: "userExt", // prop: "userExt",
type: "textarea", // type: "textarea",
minRows: 8, // minRows: 8,
span: 24, // span: 24,
overHidden: true, // overHidden: true,
row: true, // row: true,
hide: true, // hide: true,
}, // },
], ],
}, },
excelForm: {}, excelForm: {},
@ -759,11 +866,11 @@
}, },
initData(tenantId) { initData(tenantId) {
getRoleTree(tenantId).then(res => { getRoleTree(tenantId).then(res => {
const column = this.findObject(this.option.group, "roleId"); const column = this.findObject(this.option.column, "roleId");
column.dicData = res.data.data; column.dicData = res.data.data;
}); });
getDeptTree(tenantId).then(res => { getDeptTree(tenantId).then(res => {
const column = this.findObject(this.option.group, "deptId"); const column = this.findObject(this.option.column, "deptId");
column.dicData = res.data.data; column.dicData = res.data.data;
}); });
getPostList(tenantId).then(res => { getPostList(tenantId).then(res => {
@ -785,7 +892,7 @@
rowSave(row, done, loading) { rowSave(row, done, loading) {
row.deptId = row.deptId.join(","); row.deptId = row.deptId.join(",");
row.roleId = row.roleId.join(","); row.roleId = row.roleId.join(",");
row.postId = row.postId.join(","); // row.postId = row.postId.join(",");
add(row).then(() => { add(row).then(() => {
this.initFlag = false; this.initFlag = false;
this.onLoad(this.page); this.onLoad(this.page);
@ -1070,4 +1177,8 @@
.box .el-scrollbar__wrap { .box .el-scrollbar__wrap {
overflow: scroll; overflow: scroll;
} }
.prin_table table tr td {
padding: 4px 0;
}
</style> </style>

Loading…
Cancel
Save