Compare commits

...

6 Commits

Author SHA1 Message Date
huangyuxuan 5db27a2d3e [新增流程]
相关方培训资格证新增特人员种作业信息
2024-09-25 18:38:02 +08:00
LiuJiaNan 9c013342fd Merge remote-tracking branch 'origin/dev' into dev 2024-09-13 17:57:24 +08:00
water_xu 44a8f6971d 相关方 - 二维码合格证页面字段修改 2024-08-21 17:07:46 +08:00
water_xu 69c7b2ad3e Merge branch 'dev' of http://47.92.113.182:3000/guoyuepeng/qa-prevention-xgf-vue into dev 2024-08-15 16:42:13 +08:00
guoyuepeng 08a62ba446 1.解决系统漏洞.升级jQuery版本 2024-08-06 14:31:22 +08:00
LiuJiaNan 4b5cb7a91a 菜单引导页 2024-07-23 17:01:24 +08:00
27 changed files with 7505 additions and 33777 deletions

31553
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
"author": "",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 192.168.151.43",
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --open",
"start": "npm run dev",
"unit": "jest --config test/unit/jest.conf.js --coverage",
"e2e": "node test/e2e/runner.js",
@ -16,6 +16,7 @@
},
"dependencies": {
"@riophae/vue-treeselect": "^0.4.0",
"autofit.js": "^3.1.1",
"axios": "^0.21.1",
"default-passive-events": "^2.0.0",
"element-ui": "^2.15.1",

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -5,10 +5,28 @@
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
<div class="right-menu">
<!-- <div class="right-menu-item hover-effect" @click="setShowModel('system')">-->
<!-- <svg-icon icon-class="example" />-->
<!-- <span>系统管理</span>-->
<!-- </div>-->
<div class="right-menu-item hover-effect" @click="$router.push({path:'/guide'})">
<svg-icon icon-class="example" />
<span>首页</span>
</div>
<div class="right-menu-item hover-effect" @click="setShowModel('system')">
<svg-icon icon-class="example" />
<span>系统管理</span>
</div>
<el-dropdown class="right-menu-item" trigger="click">
<div style="cursor:pointer;">
<svg-icon icon-class="guide" />
<span>更多</span>
<i class="el-icon-arrow-down el-icon--right"/>
</div>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-for="(item,index) in menuList" :key="index" @click.native="item.click">
{{ item.text }}
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img :src="imgUrl" alt="" class="user-avatar">
@ -119,6 +137,7 @@ import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import { requestFN } from '@/utils/request'
import { upload } from '@/utils/upload'
import { menuList } from '@/views/newBI/menuList'
export default {
components: {
Breadcrumb,
@ -196,7 +215,7 @@ export default {
{ required: true, message: '请输入旧密码', trigger: 'blur' }
],
newpwd: [
{ required: true,message: '请输入新密码', trigger: 'blur' },
{ required: true, message: '请输入新密码', trigger: 'blur' },
{
pattern: /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!#@*&.])[a-zA-Z\d!#@*&.]*.{8,16}$/,
message: '请输入长度8-16位密码必须由大写字母小写字母数字特殊符号(!#@*&.)组成'
@ -237,7 +256,8 @@ export default {
hideUpload: false,
dialogImageUrl: '',
dialogVisible: false,
FFILE: {}
FFILE: {},
menuList
}
},
computed: {
@ -248,7 +268,7 @@ export default {
},
created() {
this.getInfo()
this.setShowModel('system')
// this.setShowModel('system')
},
methods: {
gotoBI() {

View File

@ -12,7 +12,7 @@
:collapse-transition="false"
mode="vertical"
>
<sidebar-item v-for="(route,index) in permission_routes" v-show="route.meta" :key="index" :item="route" :base-path="route.path" />
<sidebar-item v-for="(route,index) in permission_routes" v-show="route.meta && route.meta.showModel==showModel" :key="index" :item="route" :base-path="route.path" />
</el-menu>
</el-scrollbar>
</div>

View File

@ -45,6 +45,18 @@ export const constantRoutes = [
meta: { title: '首页', affix: true }
}
]
},
{
path: '/guide',
name: 'guide',
hidden: true,
component: () => import('@/views/newBI/index'),
children: [
{
path: '',
component: () => import('@/views/newBI/guide')
},
]
}
]
const createRouter = () => new Router({

View File

@ -189,7 +189,7 @@ export default {
}
).then((data) => {
sessionStorage.setItem('user', JSON.stringify(data))
this.$router.push({ path: '/index' })
this.$router.push({ path: '/guide' })
this.loading = false
})
.catch((e) => {

108
src/views/newBI/guide.vue Normal file
View File

@ -0,0 +1,108 @@
<template>
<div id="guide">
<div class="header">
<div class="title"/>
</div>
<div class="container">
<div class="menu">
<div
v-for="(item, index) in menuList"
:key="index"
class="item"
@click="item.click"
>
<div class="text">{{ item.text }}</div>
</div>
</div>
</div>
</div>
</template>
<script>
import autofit from 'autofit.js'
import { menuList } from './menuList'
export default {
data() {
return {
menuList
}
},
mounted() {
autofit.init({
dh: 1080,
dw: 1920,
el: '#guide',
resize: true
})
},
beforeDestroy() {
autofit.off()
}
}
</script>
<style scoped lang="scss">
#guide {
width: 100vw;
height: 100vh;
background-image: url("../../assets/images/party/bg.jpg");
background-repeat: no-repeat;
background-size: 100% 100%;
position: relative;
.header {
width: 100%;
height: 125px;
background-image: url("../../assets/images/party/titbg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: 0;
left: 0;
.title {
width: 358px;
height: 52px;
background-image: url("../../assets/images/party/title.png");
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: 20px;
left: 50%;
transform: translateX(-50%);
}
}
.container {
width: 100%;
height: 100%;
color: #fff;
position: relative;
.menu {
width: max-content;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: grid;
grid-template-columns: repeat(5, 273px);
gap: 90px 25px;
.item {
width: 273px;
height: 95px;
background-image: url("../../assets/images/party/img1.png");
background-repeat: no-repeat;
background-size: 100% 100%;
font-size: 20px;
font-weight: bold;
text-align: center;
line-height: 95px;
cursor: pointer;
}
}
}
}
</style>

12
src/views/newBI/index.vue Normal file
View File

@ -0,0 +1,12 @@
<script>
export default {
}
</script>
<template>
<router-view/>
</template>
<style scoped>
</style>

View File

@ -0,0 +1,76 @@
import store from '@/store/index'
import router from '@/router/index'
export const menuList = [
{
text: '相关方单位信息管理',
model: 'unitInformation',
click: () => {
store.dispatch('permission/setShowModel', 'unitInformation')
router.push({ path: '/corpinfo/corpinfo/insert' })
}
},
{
text: '相关方人员库管理',
model: 'personnelDatabase',
click: () => {
store.dispatch('permission/setShowModel', 'personnelDatabase')
router.push({ path: '/PersonManager/user' })
}
},
{
text: '相关方资质管理',
model: 'qualifications',
click: () => {
store.dispatch('permission/setShowModel', 'qualifications')
}
},
{
text: '相关方服务关系管理',
model: 'serviceRelationship',
click: () => {
store.dispatch('permission/setShowModel', 'serviceRelationship')
}
},
{
text: '相关方人员培训管理',
model: 'personnelTraining',
click: () => {
store.dispatch('permission/setShowModel', 'personnelTraining')
}
},
{
text: '相关方隐患排查管理',
model: 'hazardInvestigation',
click: () => {
store.dispatch('permission/setShowModel', 'hazardInvestigation')
}
},
{
text: '相关方现场工程管理',
model: 'onSiteEngineering',
click: () => {
store.dispatch('permission/setShowModel', 'onSiteEngineering')
}
},
{
text: '相关方安全',
model: 'security',
click: () => {
store.dispatch('permission/setShowModel', 'security')
}
},
{
text: '环保检查管理',
model: 'environmentalInspection',
click: () => {
store.dispatch('permission/setShowModel', 'environmentalInspection')
}
},
{
text: '相关方危险作业管理',
model: 'dangerousHomework',
click: () => {
store.dispatch('permission/setShowModel', 'dangerousHomework')
}
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -71,7 +71,7 @@
<a href="javascript:;" class="weui-btn bg-blue" style="font-size: 14px;line-height:2.6;" onclick="back()">返回列表</a>
</div>
-->
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -321,7 +321,7 @@
<div style="padding: 0 20px;">
<a href="javascript:;" class="weui-btn bg-blue" style="font-size: 14px;line-height:2.6;" onclick="back()">返回列表</a>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -82,7 +82,7 @@
<script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=OElqFYoKiAH8KFtph8ftLKF5NlNrbCUr"></script>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -119,7 +119,7 @@
</div>
</div>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -36,7 +36,7 @@
<van-image-preview v-model="show" :images="images" :start-position="startPosition">
</van-image-preview>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el: '#app',

View File

@ -113,7 +113,7 @@
<van-image-preview v-model="show" :images="images" :start-position="startPosition">
</van-image-preview>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el: '#app',

View File

@ -70,7 +70,7 @@
<div style="padding: 0 20px;">
<a href="javascript:;" class="weui-btn bg-blue" style="font-size: 14px;line-height:2.6;" onclick="back()">返回列表</a>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -85,7 +85,7 @@
</ul>
</div>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>

View File

@ -321,7 +321,7 @@
<div style="padding: 0 20px;">
<a href="javascript:;" class="weui-btn bg-blue" style="font-size: 14px;line-height:2.6;" onclick="back()">返回列表</a>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -82,7 +82,7 @@
<script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=OElqFYoKiAH8KFtph8ftLKF5NlNrbCUr"></script>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -60,7 +60,7 @@
<div style="padding: 0 20px;margin-top:20px">
<a href="javascript:;" class="weui-btn bg-blue" style="font-size: 14px;line-height:2.6;" onclick="back()">返回列表</a>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../../assets/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../bi/js/pre-loader.js"></script>
<script src="../../../bi/js/sweetalert.min.js"></script>
<script type="text/javascript">

View File

@ -160,7 +160,7 @@
<div class="text textone">所在单位</div>
</td>
<td colspan="3">
<div class="text">{{ message.BELONG_TO_CORP_NAME }}</div>
<div class="text">{{ message.DEPARTMENT_NAME }}</div>
</td>
<td rowspan="3">
<div class="qrcode"></div>
@ -345,6 +345,25 @@
</van-cell-group>
<van-image-preview v-model="show" :images="images" :start-position="startPosition">
</van-image-preview>
<van-divider content-position="left">特种作业信息</van-divider>
<van-cell-group v-for="(item,index) in specialUserList" :key="index">
<van-cell title="图片">
<van-image
v-if="item.FILEPATH"
width="50px"
height="50px"
:src="item.FILEPATH"
@click="fnImagePreview(item.FILEPATH,0)"
></van-image>
</van-cell>
<van-cell title="证书名称" :value="item.CERTIFICATE"></van-cell>
<van-cell title="人员类型" :value="item.typeName"></van-cell>
<van-cell title="证书作业类别" :value="item.CERTIFICATE"></van-cell>
<van-cell title="操作项目" :value="item.operationName"></van-cell>
<van-cell title="证书编号" :value="item.CARD_ID"></van-cell>
</van-cell-group>
</div>
</div>
<script type="text/javascript" src="../../assets/js/jquery-1.7.2.js"></script>
@ -367,7 +386,8 @@
socialPhotoFile: [],
gongshangbaoxianFile: [],
insuranceFileList: [],
trainRecordList: []
trainRecordList: [],
specialUserList: []
},
methods: {
//初始执行
@ -405,6 +425,7 @@
_this.getInfoOne()
_this.getInfoTwo()
_this.getInfo()
_this.getSpecialPersonInfo()
}
})
},
@ -504,6 +525,33 @@
}
})
},
getSpecialPersonInfo() {
var _this = this;
_this.loading = true;
$.ajax({
xhrFields: {
withCredentials: true
},
type: "POST",
url: config.httpurl + '/app/specialUser/getSpecialUserInfo',
dataType: 'json',
data: {
USER_ID: _this.USER_ID
},
success: function (data) {
vm.loading = false;
if ("success" == data.result) {
vm.specialUserList = data.specialUserList
for (var i =0; i<data.specialUserList.length;i++){
if (data.specialUserList[i].FILEPATH){
data.specialUserList[i].FILEPATH = config.fileUrl + data.specialUserList[i].FILEPATH
}
}
console.info(vm.specialUserList)
}
}
})
},
//根据url参数名称获取参数值
getUrlKey: function (name) {
return decodeURIComponent(