feat: 新功能添加以及BUG修改
This commit is contained in:
parent
ff62184921
commit
b1affc2d91
@ -18,4 +18,23 @@ export const getOneComputerAuthApi = data => get('xmgl/computerAuth/getOneComput
|
||||
export const addComputerAuthApi = data => post('xmgl/computerAuth/add', data); //查询服务器认证信息
|
||||
|
||||
|
||||
export const getUserByUidApi = data => post('xmgl/base/getUserByUid', data); //通过uid 做无码登录
|
||||
export const getUserByUidApi = data => post('xmgl/base/getUserByUid', data); //通过uid 做无码登录
|
||||
|
||||
// 获取图形验证码
|
||||
export const getImgCodeApi = data => get('xmgl/xzRegistry/validCode', data);
|
||||
// 修改密码-搭配图形验证码
|
||||
export const imgCodeUpdatePwApi = data => post('xmgl/systemUser/xz/updatePw', data);
|
||||
|
||||
// 安全日志
|
||||
export const getSafeLogListApi = data => post('xmgl/operationLog/list', data);
|
||||
export const exportSafeLogListApi = data => post('xmgl/operationLog/exportXls', data);
|
||||
|
||||
// 消息中心
|
||||
export const getInfoListApi = data => get('xmgl/xzNotice/page', data);
|
||||
export const markInfoReadApi = data => post('xmgl/xzNotice/markRead', data);
|
||||
export const deleteInfoApi = data => post('xmgl/xzNotice/delete', data);
|
||||
|
||||
// 工作台用户绑定的组织架构
|
||||
export const getGroupListApi = data => post('xmgl/company/getTenantOrgTreeList', data);
|
||||
|
||||
|
||||
|
||||
@ -5,6 +5,8 @@ import {get,post} from '../http'
|
||||
|
||||
// 供应商基本信息
|
||||
export const getSupplierInfoApi = data => post('xmgl/xzSupplier/getXzSupplierByUserId', data);
|
||||
// 供应商基本信息-记录
|
||||
export const getSupplierInfoRecordApi = data => post('xmgl/xzSupplierRecord/getXzSupplierByXzSupplierQualificationApplyId', data);
|
||||
|
||||
// 企业类型列表
|
||||
export const getCompanyTypeApi = data => get('xmgl/xzSupplierType/list', data);
|
||||
@ -14,6 +16,8 @@ export const infoReportSaveApi = data => post('xmgl/xzSupplier/saveSupplier', d
|
||||
|
||||
// 资质文件
|
||||
export const getQualificationFileApi = data => post('xmgl/xzSupplierQualification/list', data);
|
||||
// 资质文件-记录
|
||||
export const getQualificationFileRecordApi = data => get('xmgl/xzSupplierQualificationRecord/list', data);
|
||||
export const addQualificationFileApi = data => post('xmgl/xzSupplierQualification/add', data);
|
||||
export const editQualificationFileApi = data => post('xmgl/xzSupplierQualification/edit', data);
|
||||
export const deleteQualificationFileApi = data => post('xmgl/xzSupplierQualification/delete', data);
|
||||
@ -21,3 +25,5 @@ export const deleteQualificationFileApi = data => post('xmgl/xzSupplierQualific
|
||||
// 资质申请
|
||||
export const getQualificationApplyListApi = data => get('xmgl/xzSupplierQualificationApply/page', data);
|
||||
export const operateQualificationApplyApi = data => post('xmgl/xzSupplierQualificationApply/apply', data);
|
||||
export const auditQualificationApplyApi = data => post('xmgl/xzSupplierQualificationApply/edit', data);
|
||||
export const qualificationApplyInfoApi = data => get('xmgl/xzSupplierQualificationApply/queryById', data);
|
||||
|
||||
@ -242,11 +242,12 @@ export default {
|
||||
backtoIndex() {
|
||||
// window._paq.push(['trackEvent', '点击', '返回主菜单','返回主菜单' ])
|
||||
var url = window.location.href;
|
||||
if (url.indexOf("equipmentCenter.html") != -1) {
|
||||
this.$router.push("/equipmentCenterIndx");
|
||||
} else {
|
||||
this.$router.push("/projectIndex");
|
||||
}
|
||||
this.$router.push("/workSpace");
|
||||
// if (url.indexOf("equipmentCenter.html") != -1) {
|
||||
// this.$router.push("/equipmentCenterIndx");
|
||||
// } else {
|
||||
// this.$router.push("/projectIndex");
|
||||
// }
|
||||
},
|
||||
|
||||
handleSelect(key, keyPath) {
|
||||
|
||||
@ -184,11 +184,12 @@ export default {
|
||||
backtoIndex() {
|
||||
// window._paq.push(['trackEvent', '点击', '返回主菜单','返回主菜单' ])
|
||||
var url = window.location.href;
|
||||
if (url.indexOf("equipmentCenter.html") != -1) {
|
||||
this.$router.push("/equipmentCenterIndx");
|
||||
} else {
|
||||
this.$router.push("/projectIndex");
|
||||
}
|
||||
this.$router.push("/workSpace");
|
||||
// if (url.indexOf("equipmentCenter.html") != -1) {
|
||||
// this.$router.push("/equipmentCenterIndx");
|
||||
// } else {
|
||||
// this.$router.push("/projectIndex");
|
||||
// }
|
||||
},
|
||||
|
||||
handleSelect(key,keyPath) {
|
||||
|
||||
@ -49,7 +49,8 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
backtoIndex() {
|
||||
this.$router.push("/projectIndex");
|
||||
// this.$router.push("/projectIndex");
|
||||
this.$router.push("/workSpace");
|
||||
},
|
||||
|
||||
handleSelect(url) {
|
||||
|
||||
@ -8,72 +8,55 @@
|
||||
v-model="visible"
|
||||
>
|
||||
<div class="changeBox">
|
||||
<div class="title-content">
|
||||
<span>{{isUserList?'切换用户':'用户组织'}}</span>
|
||||
<i class="el-icon-arrow-left" style="cursor: pointer;" @click="isUserList = true;"></i>
|
||||
<i class="el-icon-arrow-right" style="cursor: pointer;" @click="isUserList = false;"></i>
|
||||
<div class="title-content">
|
||||
<span>{{ isUserList ? "切换用户" : "用户组织" }}</span>
|
||||
<i
|
||||
class="el-icon-arrow-left"
|
||||
style="cursor: pointer;"
|
||||
@click="isUserList = true"
|
||||
></i>
|
||||
<i
|
||||
class="el-icon-arrow-right"
|
||||
style="cursor: pointer;"
|
||||
@click="isUserList = false"
|
||||
></i>
|
||||
</div>
|
||||
<div class="content-list" v-if="isUserList">
|
||||
<div
|
||||
class="content-list-item"
|
||||
v-for="(item, index) in groupListData"
|
||||
:key="index"
|
||||
@click="selectGroup(item)"
|
||||
>
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>{{ item.companyName }}</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list" v-if="isUserList">
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
<div class="content-list-item">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>中国建筑第八工程局第三建设有限公司</span>
|
||||
<span>个人租户</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tree-group" v-else>
|
||||
<div class="select-list">
|
||||
<el-input
|
||||
placeholder="输入关键字进行查找"
|
||||
v-model="filterText"
|
||||
style="width: 98%;"
|
||||
suffix-icon="el-icon-search"
|
||||
size="medium"
|
||||
>
|
||||
</el-input>
|
||||
<el-tree
|
||||
:data="level1CompanyData"
|
||||
:props="selectTreeProps"
|
||||
node-key="id"
|
||||
ref="tree"
|
||||
:filter-node-method="filterNode"
|
||||
:highlight-current="true"
|
||||
:check-on-click-node="true"
|
||||
@node-click="treeClick"
|
||||
style="margin:10px 5px;"
|
||||
></el-tree>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tree-group" v-else>
|
||||
<div class="select-list">
|
||||
<el-input
|
||||
placeholder="输入关键字进行查找"
|
||||
v-model="filterText"
|
||||
style="width: 98%;"
|
||||
suffix-icon="el-icon-search"
|
||||
size="medium"
|
||||
>
|
||||
</el-input>
|
||||
<el-tree
|
||||
:data="selectedGroupData"
|
||||
:props="selectTreeProps"
|
||||
:default-expand-all="true"
|
||||
node-key="sn"
|
||||
ref="tree"
|
||||
:filter-node-method="filterNode"
|
||||
:highlight-current="true"
|
||||
:check-on-click-node="true"
|
||||
@node-click="treeClick"
|
||||
style="margin:10px 5px;"
|
||||
></el-tree>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 点击内容 -->
|
||||
<div slot="reference" class="click-content">
|
||||
@ -85,67 +68,93 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getComapnyStatisticsListApi } from "@/assets/js/api/company/project";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
isUserList: true,
|
||||
filterText: "",
|
||||
level1CompanyData: [],
|
||||
selectTreeProps: {
|
||||
children: "children",
|
||||
label: "label",
|
||||
children: "list",
|
||||
label: "name",
|
||||
},
|
||||
}
|
||||
groupListData: [],
|
||||
selectedGroupData: [],
|
||||
selectedProjectSn: ""
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.loadData();
|
||||
},
|
||||
mounted() {
|
||||
this.getGroupTreeData();
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
// 选中组织中的项目级
|
||||
selectProject(obj) {
|
||||
if (obj.list && obj.list.length > 0) {
|
||||
obj.list.map((item) => {
|
||||
this.selectProject(item);
|
||||
});
|
||||
} else {
|
||||
if(!this.selectedProjectSn){ // 加判断是为了在循环中只选中第一个
|
||||
this.selectedProjectSn = obj.sn;
|
||||
// 修改全局projectSn
|
||||
this.$store.commit("setProjectSn", obj.sn);
|
||||
}
|
||||
}
|
||||
},
|
||||
// 选中组织
|
||||
selectGroup(item) {
|
||||
this.selectedGroupData = [item];
|
||||
this.isUserList = false;
|
||||
this.$nextTick(() => {
|
||||
this.selectProject(item);
|
||||
});
|
||||
},
|
||||
// 获取组织树数据
|
||||
getGroupTreeData() {
|
||||
this.groupListData = this.$store.state.groupTreeList;
|
||||
this.isUserList = false;
|
||||
let findItem = this.groupListData.find(
|
||||
(item) => item.sn == this.$store.state.selectedGroupSn
|
||||
);
|
||||
this.selectedGroupData = [findItem];
|
||||
this.$nextTick(() => {
|
||||
this.selectProject(findItem);
|
||||
});
|
||||
},
|
||||
// 树形控件点击
|
||||
treeClick(data) {
|
||||
console.log(data);
|
||||
if(data.projectSn){
|
||||
this.selectedProjectSn = data.projectSn;
|
||||
// 修改全局projectSn
|
||||
this.$store.commit("setProjectSn", data.projectSn);
|
||||
// 收起popover
|
||||
this.visible = false;
|
||||
}
|
||||
},
|
||||
filterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.name.indexOf(value) !== -1;
|
||||
},
|
||||
loadData() {
|
||||
let sn = this.$store.state.userInfo.sn;
|
||||
let projectType = 1; // 展示项目列表
|
||||
if (this.$store.state.userInfo.addProjectType == 1) {
|
||||
projectType = 0; // 不展示项目列表
|
||||
}
|
||||
getComapnyStatisticsListApi({
|
||||
sn: sn,
|
||||
projectType: projectType,
|
||||
}).then((res) => {
|
||||
this.level1CompanyData = res.result.companyList
|
||||
? res.result.companyList
|
||||
: res.result.projectList;
|
||||
});
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.flexStyle(){
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.flexStyle() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.changeBox {
|
||||
padding: 0px 10px;
|
||||
.title-content{
|
||||
.title-content {
|
||||
.flexStyle();
|
||||
>span{
|
||||
> span {
|
||||
font-size: 16px;
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
font-weight: 400;
|
||||
@ -153,34 +162,34 @@ export default {
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
.content-list{
|
||||
.content-list {
|
||||
margin-top: 15px;
|
||||
&-item{
|
||||
&-item {
|
||||
.flexStyle();
|
||||
padding: 10px 15px;
|
||||
border: 1px solid #DADBDB;
|
||||
border: 1px solid #dadbdb;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
>span:nth-child(2){
|
||||
> span:nth-child(2) {
|
||||
margin: 2px 10px 0px 10px;
|
||||
}
|
||||
>span:nth-child(3){
|
||||
padding:3px 10px;
|
||||
color: #79ACFA;
|
||||
background-color: #E4F5FF;
|
||||
border: 1px solid #99C3FB;
|
||||
> span:nth-child(3) {
|
||||
padding: 3px 10px;
|
||||
color: #79acfa;
|
||||
background-color: #e4f5ff;
|
||||
border: 1px solid #99c3fb;
|
||||
border-radius: 5px;
|
||||
font-size: 10px;
|
||||
}
|
||||
/deep/.el-icon-arrow-right{
|
||||
/deep/.el-icon-arrow-right {
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
&-item:not(:last-child){
|
||||
&-item:not(:last-child) {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
.tree-group{
|
||||
.tree-group {
|
||||
margin-top: 15px;
|
||||
background-color: #fff;
|
||||
.select-list {
|
||||
@ -192,10 +201,10 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.click-content{
|
||||
.click-content {
|
||||
cursor: pointer;
|
||||
.flexStyle();
|
||||
>span{
|
||||
> span {
|
||||
margin: 0px 10px;
|
||||
}
|
||||
}
|
||||
@ -204,4 +213,4 @@ export default {
|
||||
.el-popover {
|
||||
box-sizing: content-box !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -20,6 +20,8 @@ export default new Vuex.Store({
|
||||
projectManageMenuList: val.projectManageMenuList,
|
||||
isShowBackIndex: val.isShowBackIndex,
|
||||
projectSn: val.projectSn,
|
||||
selectedGroupSn: val.selectedGroupSn,
|
||||
groupTreeList: val.groupTreeList,
|
||||
currentLanguage: val.currentLanguage,
|
||||
currentProDetail: val.currentProDetail,
|
||||
currentMoudle: val.currentMoudle,
|
||||
@ -48,6 +50,7 @@ export default new Vuex.Store({
|
||||
// FILEURL:' http://101.43.164.214:11111/image/',// 百色
|
||||
UPLOADURL:'http://192.168.34.221:9111/upload/image/',// 郭圣雄
|
||||
FILEURL:'http://192.168.34.221:9111/image/',//郭圣雄
|
||||
WORKFLOWURL: 'http://192.168.34.155:88/#/workspace/forms',//测试
|
||||
// UPLOADURL:'http://10.0.1.43:6023/upload/image',//测试
|
||||
// FILEURL:'http://10.0.1.43:6023/image/',//测试
|
||||
// BASEURL: baseUrl
|
||||
@ -124,6 +127,8 @@ export default new Vuex.Store({
|
||||
projectManageMenuList: [], // 项目管理页菜单列表
|
||||
isShowBackIndex: false,
|
||||
projectSn: null, //项目后台 里的 项目 sn
|
||||
selectedGroupSn: "",
|
||||
groupTreeList: [],
|
||||
currentLanguage: "zh",
|
||||
currentProDetail: null,
|
||||
currentMoudle: null,
|
||||
@ -207,6 +212,12 @@ export default new Vuex.Store({
|
||||
setProjectSn(state, data) {
|
||||
state.projectSn = data;
|
||||
},
|
||||
setSelectedGroupSn(state, data) {
|
||||
state.selectedGroupSn = data;
|
||||
},
|
||||
setGroupTreeList(state, data) {
|
||||
state.groupTreeList = data;
|
||||
},
|
||||
setLang(state, data) {
|
||||
state.currentLanguage = data;
|
||||
},
|
||||
|
||||
@ -855,7 +855,7 @@ export default {
|
||||
: [];
|
||||
var companyModule = [];
|
||||
var projectModule = [];
|
||||
if (moduleList.length == 0 && data.accountType != 1) {
|
||||
if (moduleList.length == 0 && (data.accountType != 1 && data.accountType != 10)) {
|
||||
this.$message.warning("当前账号还没分配权限");
|
||||
return false;
|
||||
}
|
||||
@ -934,6 +934,7 @@ export default {
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
case 10:
|
||||
case 11:
|
||||
// 中建四局
|
||||
this.$store.commit("setMenuList", projectModule);
|
||||
|
||||
@ -1,150 +1,143 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="fullHeight" v-if="!infoDetailShow">
|
||||
<div class="searchBtn">
|
||||
<div
|
||||
class="search-btn-item"
|
||||
:class="checkIndex == index ? 'item-active' : ''"
|
||||
v-for="(item, index) in searchBtnList"
|
||||
:key="index"
|
||||
@click="searchSelect(item, index)"
|
||||
>
|
||||
{{ item.name }}
|
||||
<div class="fullHeight" v-if="!infoDetailShow">
|
||||
<div class="searchBtn">
|
||||
<div
|
||||
class="search-btn-item"
|
||||
:class="checkIndex == index ? 'item-active' : ''"
|
||||
v-for="(item, index) in searchBtnList"
|
||||
:key="index"
|
||||
@click="searchSelect(item, index)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
style="width: 100%;display: flex;align-items: center;"
|
||||
>
|
||||
<el-form-item label="标题内容" prop="title">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.title"
|
||||
/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="应用" prop="app">
|
||||
<!-- suffix-icon="el-icon-search" -->
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.app"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.tag"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="接收时间" style="margin-right: auto;">
|
||||
<el-date-picker
|
||||
size="medium"
|
||||
v-model="timeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
<el-form-item style="margin-right: 0px;">
|
||||
<el-button type="primary" plain @click="searchList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="info-operate">
|
||||
<span>消息列表</span>
|
||||
<el-button type="primary" size="medium" @click="markReadFn">标为已读</el-button>
|
||||
<el-button type="danger" plain size="medium" @click="deleteInfoFn">删除</el-button>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" align="center" width="60" />
|
||||
<el-table-column label="标题内容" align="center" prop="title">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.isread == 1?'#BFBFBF':'#5181F7'}" style="cursor: pointer;" @click="infoDetailOpen">{{
|
||||
scope.row.title
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类别" align="center" prop="type">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.type | typeText(searchBtnList) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="应用"
|
||||
align="center"
|
||||
prop="app"
|
||||
/>
|
||||
<el-table-column label="标签" align="center" prop="tag" />
|
||||
<el-table-column label="操作时间" align="center" prop="operateTime" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@current-change="CurrentChange"
|
||||
:current-page="pageInfo.pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(pageInfo.total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
style="width: 100%;display: flex;align-items: center;"
|
||||
>
|
||||
<!-- 人员名称 -->
|
||||
<el-form-item label="" prop="deviceName">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
suffix-icon="el-icon-search"
|
||||
v-model="searchForm.personName"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 设备序号 -->
|
||||
<el-form-item label="应用标签" prop="deviceNumber">
|
||||
<el-select
|
||||
v-model="searchForm.departmentId"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in deviceList"
|
||||
:key="index"
|
||||
:label="item.deviceNumber"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="接收时间" style="margin-right: auto;">
|
||||
<el-date-picker
|
||||
size="medium"
|
||||
v-model="daterange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
@change="changeDate"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
<el-form-item style="margin-right: 0px;">
|
||||
<el-button type="primary" plain @click="searchList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="info-operate">
|
||||
<span>消息列表</span>
|
||||
<el-button type="primary" size="medium">标为已读</el-button>
|
||||
<el-button type="danger" plain size="medium">删除</el-button>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData">
|
||||
<el-table-column type="selection" align="center" width="55" />
|
||||
<el-table-column label="标题内容" align="center" prop="deviceName">
|
||||
<el-button type="text" @click="infoDetailOpen">标题内容</el-button>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="类别"
|
||||
align="center"
|
||||
prop="deviceNumber"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
label="应用"
|
||||
align="center"
|
||||
prop="currentLocation"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column label="标签" align="center" prop="speed" />
|
||||
<el-table-column label="操作时间" align="center" prop="workStatus" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@current-change="CurrentChange"
|
||||
:current-page="pageInfo.pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(pageInfo.total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-content" v-else>
|
||||
<div class="back-operate" @click="infoDetailShow = false;">
|
||||
<i class="el-icon-arrow-left"></i>
|
||||
<span>返回</span>
|
||||
</div>
|
||||
<div class="info-content-detail">
|
||||
<div class="detail-title">人员未在场预警</div>
|
||||
<div class="detail-sub-title">
|
||||
<span>应用:劳务管理系统</span>
|
||||
<span>标签:预警信息</span>
|
||||
<span>接收时间:2024/03/03 23:50:00</span>
|
||||
<div class="info-content" v-else>
|
||||
<div class="back-operate" @click="infoDetailShow = false">
|
||||
<i class="el-icon-arrow-left"></i>
|
||||
<span>返回</span>
|
||||
</div>
|
||||
<div class="info-content-detail">
|
||||
<div class="detail-title">人员未在场预警</div>
|
||||
<div class="detail-sub-title">
|
||||
<span>应用:劳务管理系统</span>
|
||||
<span>标签:预警信息</span>
|
||||
<span>接收时间:2024/03/03 23:50:00</span>
|
||||
</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { rtToolPage } from "@/assets/js/api/workTicketManage.js";
|
||||
import {} from "@/assets/js/api/devicePosition/payData";
|
||||
import { getInfoListApi, markInfoReadApi, deleteInfoApi } from "@/assets/js/api/loginSign.js";
|
||||
export default {
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList();
|
||||
// this.getDutyPerson()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
infoDetailShow: false,
|
||||
checkIndex: 0,
|
||||
searchBtnList: [
|
||||
{ name: "全部类别", value: "" },
|
||||
{ name: "通知公告", value: "" },
|
||||
{ name: "审批流程", value: "" },
|
||||
{ name: "风险预警", value: "" },
|
||||
{ name: "任务待办", value: "" },
|
||||
{ name: "其他", value: "" },
|
||||
{ name: "通知公告", value: 1 },
|
||||
{ name: "审批流程", value: 3 },
|
||||
{ name: "风险预警", value: 2 },
|
||||
{ name: "任务待办", value: 4 },
|
||||
{ name: "其他", value: 5 },
|
||||
],
|
||||
devSn: "",
|
||||
// 遮罩层
|
||||
@ -156,159 +149,138 @@ export default {
|
||||
total: 1, //总条数
|
||||
},
|
||||
searchForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectSn: "", // 项目SN
|
||||
personName: "",
|
||||
deviceNumber: "",
|
||||
startTime: "",
|
||||
endTime: "",
|
||||
title: "",
|
||||
app: "",
|
||||
tag: "",
|
||||
},
|
||||
personList: [
|
||||
{ id: 1, personName: "张三" },
|
||||
{ id: 2, personName: "李四" },
|
||||
{ id: 3, personName: "王二" },
|
||||
],
|
||||
deviceList: [
|
||||
{ id: 1, deviceNumber: "EMP21313212135132" },
|
||||
{ id: 2, deviceNumber: "EMP44613213543212" },
|
||||
{ id: 3, deviceNumber: "EMP21321546312556" },
|
||||
],
|
||||
tableData: [
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 50,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 95,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 18,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 45,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 81,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 11,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 67,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 90,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 16,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 80,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
],
|
||||
timeRange: [],
|
||||
tableData: [],
|
||||
multipleSelection: []
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
typeText(val, list) {
|
||||
let findItem = list.find((item) => val === item.value);
|
||||
return findItem ? findItem.name : "";
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
infoDetailOpen(){
|
||||
// 删除
|
||||
deleteInfoFn(){
|
||||
let selectedIds = [];
|
||||
if(this.multipleSelection.length == 0){
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请勾选表格项",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
this.multipleSelection.map(item => {
|
||||
selectedIds.push(item.id)
|
||||
})
|
||||
}
|
||||
this.$confirm("此操作将删除信息, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
deleteInfoApi({ accountId: this.$store.state.userInfo.userId, ids: selectedIds.join(',') }).then((res) => {
|
||||
if (res.success) {
|
||||
this.getList()
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: res.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: "info",
|
||||
message: "已取消操作",
|
||||
});
|
||||
});
|
||||
},
|
||||
// 标为已读
|
||||
markReadFn(){
|
||||
let selectedIds = [];
|
||||
if(this.multipleSelection.length == 0){
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请勾选表格项",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
this.multipleSelection.map(item => {
|
||||
selectedIds.push(item.id)
|
||||
})
|
||||
}
|
||||
this.$confirm("此操作将标记已读, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
markInfoReadApi({ accountId: this.$store.state.userInfo.userId, ids: selectedIds.join(',') }).then((res) => {
|
||||
if (res.success) {
|
||||
this.getList()
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: res.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: "info",
|
||||
message: "已取消操作",
|
||||
});
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
console.log(val,'测试测试')
|
||||
},
|
||||
infoDetailOpen() {
|
||||
this.infoDetailShow = true;
|
||||
},
|
||||
searchSelect(obj, index) {
|
||||
this.checkIndex = index;
|
||||
},
|
||||
exportFn() {
|
||||
window.location.href =
|
||||
this.$http.defaults.baseURL +
|
||||
"xmgl/standardCurrentData/exportExcelStandardCurrentData?devSn=" +
|
||||
this.formInline.devSn +
|
||||
"&projectSn=" +
|
||||
this.projectSn +
|
||||
"&startTime=" +
|
||||
this.formInline.startTime +
|
||||
"&endTime=" +
|
||||
this.formInline.endTime;
|
||||
this.pageInfo.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
//查询列表
|
||||
getList() {
|
||||
rtToolPage({
|
||||
let requestData = {
|
||||
// accountId: this.$store.state.userInfo.userId,
|
||||
pageNo: this.pageInfo.pageNo,
|
||||
pageSize: this.pageInfo.pageSize,
|
||||
projectSn: this.$store.state.projectSn,
|
||||
devSn: this.searchForm.devSn,
|
||||
toolName: this.searchForm.toolName,
|
||||
toolStatus: this.searchForm.toolStatus,
|
||||
}).then((result) => {
|
||||
type: this.searchBtnList[this.checkIndex].value,
|
||||
...this.searchForm
|
||||
}
|
||||
if(this.timeRange && this.timeRange.length > 0){
|
||||
requestData.operateTime_begin = this.timeRange[0]
|
||||
requestData.operateTime_end = this.timeRange[1]
|
||||
}
|
||||
getInfoListApi(requestData).then((result) => {
|
||||
if (result.success) {
|
||||
this.List = result.result.records;
|
||||
this.tableData = result.result.records;
|
||||
this.pageInfo.total = result.result.total;
|
||||
}
|
||||
});
|
||||
@ -326,7 +298,11 @@ export default {
|
||||
this.getList();
|
||||
},
|
||||
refresh() {
|
||||
this.searchForm = {};
|
||||
this.searchForm = {
|
||||
title: "",
|
||||
app: "",
|
||||
tag: "",
|
||||
};
|
||||
this.pageInfo.pageNo = 1; //页数
|
||||
this.pageInfo.pageSize = 10; //条数
|
||||
this.getList();
|
||||
@ -340,16 +316,7 @@ export default {
|
||||
handleCurrentChange(val) {
|
||||
this.pageNo2 = val;
|
||||
this.getPageList();
|
||||
},
|
||||
changeDate() {
|
||||
if (this.daterange) {
|
||||
this.searchForm.startTime = this.daterange[0];
|
||||
this.searchForm.endTime = this.daterange[1];
|
||||
} else {
|
||||
this.searchForm.startTime = "";
|
||||
this.searchForm.endTime = "";
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@ -396,32 +363,32 @@ export default {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
.info-content{
|
||||
.back-operate{
|
||||
.info-content {
|
||||
.back-operate {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #5282F6;
|
||||
color: #5282f6;
|
||||
height: 40px;
|
||||
border-bottom: 2px solid #C8C8C8;
|
||||
border-bottom: 2px solid #c8c8c8;
|
||||
padding-bottom: 5px;
|
||||
cursor: pointer;
|
||||
.el-icon-arrow-left{
|
||||
color: #5282F6;
|
||||
.el-icon-arrow-left {
|
||||
color: #5282f6;
|
||||
margin-left: 15px;
|
||||
}
|
||||
>span{
|
||||
> span {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.info-content-detail{
|
||||
.info-content-detail {
|
||||
margin-top: 80px;
|
||||
.detail-title{
|
||||
.detail-title {
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
color: #000000;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
}
|
||||
.detail-sub-title{
|
||||
.detail-sub-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -430,11 +397,11 @@ export default {
|
||||
font-size: 16px;
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
span:not(:last-child){
|
||||
span:not(:last-child) {
|
||||
margin-right: 25px;
|
||||
}
|
||||
}
|
||||
.detail-content{
|
||||
.detail-content {
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
|
||||
@ -1,149 +1,142 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="fullHeight" v-if="!infoDetailShow">
|
||||
<div class="searchBtn">
|
||||
<div
|
||||
class="search-btn-item"
|
||||
:class="checkIndex == index ? 'item-active' : ''"
|
||||
v-for="(item, index) in searchBtnList"
|
||||
:key="index"
|
||||
@click="searchSelect(item, index)"
|
||||
>
|
||||
{{ item.name }}
|
||||
<div class="fullHeight" v-if="!infoDetailShow">
|
||||
<div class="searchBtn">
|
||||
<div
|
||||
class="search-btn-item"
|
||||
:class="checkIndex == index ? 'item-active' : ''"
|
||||
v-for="(item, index) in searchBtnList"
|
||||
:key="index"
|
||||
@click="searchSelect(item, index)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
style="width: 100%;display: flex;align-items: center;"
|
||||
>
|
||||
<el-form-item label="标题内容" prop="title">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.title"
|
||||
/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="应用" prop="app">
|
||||
<!-- suffix-icon="el-icon-search" -->
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.app"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.tag"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="接收时间" style="margin-right: auto;">
|
||||
<el-date-picker
|
||||
size="medium"
|
||||
v-model="timeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
<el-form-item style="margin-right: 0px;">
|
||||
<el-button type="primary" plain @click="searchList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="info-operate">
|
||||
<span>消息列表</span>
|
||||
<el-button type="danger" plain size="medium" @click="deleteInfoFn">删除</el-button>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" align="center" width="60" />
|
||||
<el-table-column label="标题内容" align="center" prop="title">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.isread == 1?'#BFBFBF':'#5181F7'}" style="cursor: pointer;" @click="infoDetailOpen">{{
|
||||
scope.row.title
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类别" align="center" prop="type">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.type | typeText(searchBtnList) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="应用"
|
||||
align="center"
|
||||
prop="app"
|
||||
/>
|
||||
<el-table-column label="标签" align="center" prop="tag" />
|
||||
<el-table-column label="操作时间" align="center" prop="operateTime" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@current-change="CurrentChange"
|
||||
:current-page="pageInfo.pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(pageInfo.total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
style="width: 100%;display: flex;align-items: center;"
|
||||
>
|
||||
<!-- 人员名称 -->
|
||||
<el-form-item label="" prop="deviceName">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
suffix-icon="el-icon-search"
|
||||
v-model="searchForm.personName"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 设备序号 -->
|
||||
<el-form-item label="应用标签" prop="deviceNumber">
|
||||
<el-select
|
||||
v-model="searchForm.departmentId"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in deviceList"
|
||||
:key="index"
|
||||
:label="item.deviceNumber"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="接收时间" style="margin-right: auto;">
|
||||
<el-date-picker
|
||||
size="medium"
|
||||
v-model="daterange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
@change="changeDate"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
<el-form-item style="margin-right: 0px;">
|
||||
<el-button type="primary" plain @click="searchList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="info-operate">
|
||||
<span>消息列表</span>
|
||||
<el-button type="danger" plain size="medium">删除</el-button>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData">
|
||||
<el-table-column type="selection" align="center" width="55" />
|
||||
<el-table-column label="标题内容" align="center" prop="deviceName">
|
||||
<el-button type="text" @click="infoDetailOpen">标题内容</el-button>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="类别"
|
||||
align="center"
|
||||
prop="deviceNumber"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
label="应用"
|
||||
align="center"
|
||||
prop="currentLocation"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column label="标签" align="center" prop="speed" />
|
||||
<el-table-column label="操作时间" align="center" prop="workStatus" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@current-change="CurrentChange"
|
||||
:current-page="pageInfo.pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(pageInfo.total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-content" v-else>
|
||||
<div class="back-operate" @click="infoDetailShow = false;">
|
||||
<i class="el-icon-arrow-left"></i>
|
||||
<span>返回</span>
|
||||
</div>
|
||||
<div class="info-content-detail">
|
||||
<div class="detail-title">人员未在场预警</div>
|
||||
<div class="detail-sub-title">
|
||||
<span>应用:劳务管理系统</span>
|
||||
<span>标签:预警信息</span>
|
||||
<span>接收时间:2024/03/03 23:50:00</span>
|
||||
<div class="info-content" v-else>
|
||||
<div class="back-operate" @click="infoDetailShow = false">
|
||||
<i class="el-icon-arrow-left"></i>
|
||||
<span>返回</span>
|
||||
</div>
|
||||
<div class="info-content-detail">
|
||||
<div class="detail-title">人员未在场预警</div>
|
||||
<div class="detail-sub-title">
|
||||
<span>应用:劳务管理系统</span>
|
||||
<span>标签:预警信息</span>
|
||||
<span>接收时间:2024/03/03 23:50:00</span>
|
||||
</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { rtToolPage } from "@/assets/js/api/workTicketManage.js";
|
||||
import {} from "@/assets/js/api/devicePosition/payData";
|
||||
import { getInfoListApi, deleteInfoApi } from "@/assets/js/api/loginSign.js";
|
||||
export default {
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList();
|
||||
// this.getDutyPerson()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
infoDetailShow: false,
|
||||
checkIndex: 0,
|
||||
searchBtnList: [
|
||||
{ name: "全部类别", value: "" },
|
||||
{ name: "通知公告", value: "" },
|
||||
{ name: "审批流程", value: "" },
|
||||
{ name: "风险预警", value: "" },
|
||||
{ name: "任务待办", value: "" },
|
||||
{ name: "其他", value: "" },
|
||||
{ name: "通知公告", value: 1 },
|
||||
{ name: "审批流程", value: 3 },
|
||||
{ name: "风险预警", value: 2 },
|
||||
{ name: "任务待办", value: 4 },
|
||||
{ name: "其他", value: 5 },
|
||||
],
|
||||
devSn: "",
|
||||
// 遮罩层
|
||||
@ -155,159 +148,96 @@ export default {
|
||||
total: 1, //总条数
|
||||
},
|
||||
searchForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectSn: "", // 项目SN
|
||||
personName: "",
|
||||
deviceNumber: "",
|
||||
startTime: "",
|
||||
endTime: "",
|
||||
title: "",
|
||||
app: "",
|
||||
tag: "",
|
||||
},
|
||||
personList: [
|
||||
{ id: 1, personName: "张三" },
|
||||
{ id: 2, personName: "李四" },
|
||||
{ id: 3, personName: "王二" },
|
||||
],
|
||||
deviceList: [
|
||||
{ id: 1, deviceNumber: "EMP21313212135132" },
|
||||
{ id: 2, deviceNumber: "EMP44613213543212" },
|
||||
{ id: 3, deviceNumber: "EMP21321546312556" },
|
||||
],
|
||||
tableData: [
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 50,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 95,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 18,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 45,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 81,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 11,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 67,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 90,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 16,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 80,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
],
|
||||
timeRange: [],
|
||||
tableData: [],
|
||||
multipleSelection: []
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
typeText(val, list) {
|
||||
let findItem = list.find((item) => val === item.value);
|
||||
return findItem ? findItem.name : "";
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
infoDetailOpen(){
|
||||
// 删除
|
||||
deleteInfoFn(){
|
||||
let selectedIds = [];
|
||||
if(this.multipleSelection.length == 0){
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请勾选表格项",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
this.multipleSelection.map(item => {
|
||||
selectedIds.push(item.id)
|
||||
})
|
||||
}
|
||||
this.$confirm("此操作将删除信息, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
deleteInfoApi({ accountId: this.$store.state.userInfo.userId, ids: selectedIds.join(',') }).then((res) => {
|
||||
if (res.success) {
|
||||
this.getList()
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: res.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: "info",
|
||||
message: "已取消操作",
|
||||
});
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
console.log(val,'测试测试')
|
||||
},
|
||||
infoDetailOpen() {
|
||||
this.infoDetailShow = true;
|
||||
},
|
||||
searchSelect(obj, index) {
|
||||
this.checkIndex = index;
|
||||
},
|
||||
exportFn() {
|
||||
window.location.href =
|
||||
this.$http.defaults.baseURL +
|
||||
"xmgl/standardCurrentData/exportExcelStandardCurrentData?devSn=" +
|
||||
this.formInline.devSn +
|
||||
"&projectSn=" +
|
||||
this.projectSn +
|
||||
"&startTime=" +
|
||||
this.formInline.startTime +
|
||||
"&endTime=" +
|
||||
this.formInline.endTime;
|
||||
this.pageInfo.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
//查询列表
|
||||
getList() {
|
||||
rtToolPage({
|
||||
let requestData = {
|
||||
// accountId: this.$store.state.userInfo.userId,
|
||||
pageNo: this.pageInfo.pageNo,
|
||||
pageSize: this.pageInfo.pageSize,
|
||||
projectSn: this.$store.state.projectSn,
|
||||
devSn: this.searchForm.devSn,
|
||||
toolName: this.searchForm.toolName,
|
||||
toolStatus: this.searchForm.toolStatus,
|
||||
}).then((result) => {
|
||||
type: this.searchBtnList[this.checkIndex].value,
|
||||
...this.searchForm
|
||||
}
|
||||
if(this.timeRange && this.timeRange.length > 0){
|
||||
requestData.operateTime_begin = this.timeRange[0]
|
||||
requestData.operateTime_end = this.timeRange[1]
|
||||
}
|
||||
getInfoListApi(requestData).then((result) => {
|
||||
if (result.success) {
|
||||
this.List = result.result.records;
|
||||
this.tableData = result.result.records;
|
||||
this.pageInfo.total = result.result.total;
|
||||
}
|
||||
});
|
||||
@ -325,7 +255,11 @@ export default {
|
||||
this.getList();
|
||||
},
|
||||
refresh() {
|
||||
this.searchForm = {};
|
||||
this.searchForm = {
|
||||
title: "",
|
||||
app: "",
|
||||
tag: "",
|
||||
};
|
||||
this.pageInfo.pageNo = 1; //页数
|
||||
this.pageInfo.pageSize = 10; //条数
|
||||
this.getList();
|
||||
@ -339,16 +273,7 @@ export default {
|
||||
handleCurrentChange(val) {
|
||||
this.pageNo2 = val;
|
||||
this.getPageList();
|
||||
},
|
||||
changeDate() {
|
||||
if (this.daterange) {
|
||||
this.searchForm.startTime = this.daterange[0];
|
||||
this.searchForm.endTime = this.daterange[1];
|
||||
} else {
|
||||
this.searchForm.startTime = "";
|
||||
this.searchForm.endTime = "";
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@ -395,32 +320,32 @@ export default {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
.info-content{
|
||||
.back-operate{
|
||||
.info-content {
|
||||
.back-operate {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #5282F6;
|
||||
color: #5282f6;
|
||||
height: 40px;
|
||||
border-bottom: 2px solid #C8C8C8;
|
||||
border-bottom: 2px solid #c8c8c8;
|
||||
padding-bottom: 5px;
|
||||
cursor: pointer;
|
||||
.el-icon-arrow-left{
|
||||
color: #5282F6;
|
||||
.el-icon-arrow-left {
|
||||
color: #5282f6;
|
||||
margin-left: 15px;
|
||||
}
|
||||
>span{
|
||||
> span {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.info-content-detail{
|
||||
.info-content-detail {
|
||||
margin-top: 80px;
|
||||
.detail-title{
|
||||
.detail-title {
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
color: #000000;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
}
|
||||
.detail-sub-title{
|
||||
.detail-sub-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -429,11 +354,11 @@ export default {
|
||||
font-size: 16px;
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
span:not(:last-child){
|
||||
span:not(:last-child) {
|
||||
margin-right: 25px;
|
||||
}
|
||||
}
|
||||
.detail-content{
|
||||
.detail-content {
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
|
||||
@ -1,150 +1,143 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="fullHeight" v-if="!infoDetailShow">
|
||||
<div class="searchBtn">
|
||||
<div
|
||||
class="search-btn-item"
|
||||
:class="checkIndex == index ? 'item-active' : ''"
|
||||
v-for="(item, index) in searchBtnList"
|
||||
:key="index"
|
||||
@click="searchSelect(item, index)"
|
||||
>
|
||||
{{ item.name }}
|
||||
<div class="fullHeight" v-if="!infoDetailShow">
|
||||
<div class="searchBtn">
|
||||
<div
|
||||
class="search-btn-item"
|
||||
:class="checkIndex == index ? 'item-active' : ''"
|
||||
v-for="(item, index) in searchBtnList"
|
||||
:key="index"
|
||||
@click="searchSelect(item, index)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
style="width: 100%;display: flex;align-items: center;"
|
||||
>
|
||||
<el-form-item label="标题内容" prop="title">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.title"
|
||||
/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="应用" prop="app">
|
||||
<!-- suffix-icon="el-icon-search" -->
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.app"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-model="searchForm.tag"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="接收时间" style="margin-right: auto;">
|
||||
<el-date-picker
|
||||
size="medium"
|
||||
v-model="timeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
<el-form-item style="margin-right: 0px;">
|
||||
<el-button type="primary" plain @click="searchList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="info-operate">
|
||||
<span>消息列表</span>
|
||||
<el-button type="primary" size="medium" @click="markReadFn">标为已读</el-button>
|
||||
<el-button type="danger" plain size="medium" @click="deleteInfoFn">删除</el-button>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" align="center" width="60" />
|
||||
<el-table-column label="标题内容" align="center" prop="title">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.isread == 1?'#BFBFBF':'#5181F7'}" style="cursor: pointer;" @click="infoDetailOpen">{{
|
||||
scope.row.title
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类别" align="center" prop="type">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.type | typeText(searchBtnList) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="应用"
|
||||
align="center"
|
||||
prop="app"
|
||||
/>
|
||||
<el-table-column label="标签" align="center" prop="tag" />
|
||||
<el-table-column label="操作时间" align="center" prop="operateTime" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@current-change="CurrentChange"
|
||||
:current-page="pageInfo.pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(pageInfo.total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
style="width: 100%;display: flex;align-items: center;"
|
||||
>
|
||||
<!-- 人员名称 -->
|
||||
<el-form-item label="" prop="deviceName">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
suffix-icon="el-icon-search"
|
||||
v-model="searchForm.personName"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 设备序号 -->
|
||||
<el-form-item label="应用标签" prop="deviceNumber">
|
||||
<el-select
|
||||
v-model="searchForm.departmentId"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in deviceList"
|
||||
:key="index"
|
||||
:label="item.deviceNumber"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="接收时间" style="margin-right: auto;">
|
||||
<el-date-picker
|
||||
size="medium"
|
||||
v-model="daterange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
@change="changeDate"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
<el-form-item style="margin-right: 0px;">
|
||||
<el-button type="primary" plain @click="searchList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="info-operate">
|
||||
<span>消息列表</span>
|
||||
<el-button type="primary" size="medium">标为已读</el-button>
|
||||
<el-button type="danger" plain size="medium">删除</el-button>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData">
|
||||
<el-table-column type="selection" align="center" width="55" />
|
||||
<el-table-column label="标题内容" align="center" prop="deviceName">
|
||||
<el-button type="text" @click="infoDetailOpen">标题内容</el-button>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="类别"
|
||||
align="center"
|
||||
prop="deviceNumber"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column
|
||||
label="应用"
|
||||
align="center"
|
||||
prop="currentLocation"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column label="标签" align="center" prop="speed" />
|
||||
<el-table-column label="操作时间" align="center" prop="workStatus" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@current-change="CurrentChange"
|
||||
:current-page="pageInfo.pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(pageInfo.total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-content" v-else>
|
||||
<div class="back-operate" @click="infoDetailShow = false;">
|
||||
<i class="el-icon-arrow-left"></i>
|
||||
<span>返回</span>
|
||||
</div>
|
||||
<div class="info-content-detail">
|
||||
<div class="detail-title">人员未在场预警</div>
|
||||
<div class="detail-sub-title">
|
||||
<span>应用:劳务管理系统</span>
|
||||
<span>标签:预警信息</span>
|
||||
<span>接收时间:2024/03/03 23:50:00</span>
|
||||
<div class="info-content" v-else>
|
||||
<div class="back-operate" @click="infoDetailShow = false">
|
||||
<i class="el-icon-arrow-left"></i>
|
||||
<span>返回</span>
|
||||
</div>
|
||||
<div class="info-content-detail">
|
||||
<div class="detail-title">人员未在场预警</div>
|
||||
<div class="detail-sub-title">
|
||||
<span>应用:劳务管理系统</span>
|
||||
<span>标签:预警信息</span>
|
||||
<span>接收时间:2024/03/03 23:50:00</span>
|
||||
</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
<div class="detail-content">人员未在场预警</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { rtToolPage } from "@/assets/js/api/workTicketManage.js";
|
||||
import {} from "@/assets/js/api/devicePosition/payData";
|
||||
import { getInfoListApi, markInfoReadApi, deleteInfoApi } from "@/assets/js/api/loginSign.js";
|
||||
export default {
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList();
|
||||
// this.getDutyPerson()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
infoDetailShow: false,
|
||||
checkIndex: 0,
|
||||
searchBtnList: [
|
||||
{ name: "全部类别", value: "" },
|
||||
{ name: "通知公告", value: "" },
|
||||
{ name: "审批流程", value: "" },
|
||||
{ name: "风险预警", value: "" },
|
||||
{ name: "任务待办", value: "" },
|
||||
{ name: "其他", value: "" },
|
||||
{ name: "通知公告", value: 1 },
|
||||
{ name: "审批流程", value: 3 },
|
||||
{ name: "风险预警", value: 2 },
|
||||
{ name: "任务待办", value: 4 },
|
||||
{ name: "其他", value: 5 },
|
||||
],
|
||||
devSn: "",
|
||||
// 遮罩层
|
||||
@ -156,159 +149,138 @@ export default {
|
||||
total: 1, //总条数
|
||||
},
|
||||
searchForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectSn: "", // 项目SN
|
||||
personName: "",
|
||||
deviceNumber: "",
|
||||
startTime: "",
|
||||
endTime: "",
|
||||
title: "",
|
||||
app: "",
|
||||
tag: "",
|
||||
},
|
||||
personList: [
|
||||
{ id: 1, personName: "张三" },
|
||||
{ id: 2, personName: "李四" },
|
||||
{ id: 3, personName: "王二" },
|
||||
],
|
||||
deviceList: [
|
||||
{ id: 1, deviceNumber: "EMP21313212135132" },
|
||||
{ id: 2, deviceNumber: "EMP44613213543212" },
|
||||
{ id: 3, deviceNumber: "EMP21321546312556" },
|
||||
],
|
||||
tableData: [
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 50,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 95,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 18,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 45,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 81,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 11,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 67,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 90,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 0,
|
||||
deviceBattery: 16,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
{
|
||||
deviceName: "挖掘机",
|
||||
deviceNumber: "EMP21313212135132",
|
||||
currentLocation: "123,4561,895,5648",
|
||||
speed: "15km/h",
|
||||
workStatus: 1,
|
||||
deviceBattery: 80,
|
||||
deviceVoltage: 3.7,
|
||||
uploadTime: "2024-03-13 00:00:00",
|
||||
},
|
||||
],
|
||||
timeRange: [],
|
||||
tableData: [],
|
||||
multipleSelection: []
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
typeText(val, list) {
|
||||
let findItem = list.find((item) => val === item.value);
|
||||
return findItem ? findItem.name : "";
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
infoDetailOpen(){
|
||||
// 删除
|
||||
deleteInfoFn(){
|
||||
let selectedIds = [];
|
||||
if(this.multipleSelection.length == 0){
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请勾选表格项",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
this.multipleSelection.map(item => {
|
||||
selectedIds.push(item.id)
|
||||
})
|
||||
}
|
||||
this.$confirm("此操作将删除信息, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
deleteInfoApi({ accountId: this.$store.state.userInfo.userId, ids: selectedIds.join(',') }).then((res) => {
|
||||
if (res.success) {
|
||||
this.getList()
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: res.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: "info",
|
||||
message: "已取消操作",
|
||||
});
|
||||
});
|
||||
},
|
||||
// 标为已读
|
||||
markReadFn(){
|
||||
let selectedIds = [];
|
||||
if(this.multipleSelection.length == 0){
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请勾选表格项",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
this.multipleSelection.map(item => {
|
||||
selectedIds.push(item.id)
|
||||
})
|
||||
}
|
||||
this.$confirm("此操作将标记已读, 是否继续?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
markInfoReadApi({ accountId: this.$store.state.userInfo.userId, ids: selectedIds.join(',') }).then((res) => {
|
||||
if (res.success) {
|
||||
this.getList()
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: res.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: "info",
|
||||
message: "已取消操作",
|
||||
});
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val;
|
||||
console.log(val,'测试测试')
|
||||
},
|
||||
infoDetailOpen() {
|
||||
this.infoDetailShow = true;
|
||||
},
|
||||
searchSelect(obj, index) {
|
||||
this.checkIndex = index;
|
||||
},
|
||||
exportFn() {
|
||||
window.location.href =
|
||||
this.$http.defaults.baseURL +
|
||||
"xmgl/standardCurrentData/exportExcelStandardCurrentData?devSn=" +
|
||||
this.formInline.devSn +
|
||||
"&projectSn=" +
|
||||
this.projectSn +
|
||||
"&startTime=" +
|
||||
this.formInline.startTime +
|
||||
"&endTime=" +
|
||||
this.formInline.endTime;
|
||||
this.pageInfo.pageNo = 1;
|
||||
this.getList();
|
||||
},
|
||||
//查询列表
|
||||
getList() {
|
||||
rtToolPage({
|
||||
let requestData = {
|
||||
// accountId: this.$store.state.userInfo.userId,
|
||||
pageNo: this.pageInfo.pageNo,
|
||||
pageSize: this.pageInfo.pageSize,
|
||||
projectSn: this.$store.state.projectSn,
|
||||
devSn: this.searchForm.devSn,
|
||||
toolName: this.searchForm.toolName,
|
||||
toolStatus: this.searchForm.toolStatus,
|
||||
}).then((result) => {
|
||||
type: this.searchBtnList[this.checkIndex].value,
|
||||
...this.searchForm
|
||||
}
|
||||
if(this.timeRange && this.timeRange.length > 0){
|
||||
requestData.operateTime_begin = this.timeRange[0]
|
||||
requestData.operateTime_end = this.timeRange[1]
|
||||
}
|
||||
getInfoListApi(requestData).then((result) => {
|
||||
if (result.success) {
|
||||
this.List = result.result.records;
|
||||
this.tableData = result.result.records;
|
||||
this.pageInfo.total = result.result.total;
|
||||
}
|
||||
});
|
||||
@ -326,7 +298,11 @@ export default {
|
||||
this.getList();
|
||||
},
|
||||
refresh() {
|
||||
this.searchForm = {};
|
||||
this.searchForm = {
|
||||
title: "",
|
||||
app: "",
|
||||
tag: "",
|
||||
};
|
||||
this.pageInfo.pageNo = 1; //页数
|
||||
this.pageInfo.pageSize = 10; //条数
|
||||
this.getList();
|
||||
@ -340,16 +316,7 @@ export default {
|
||||
handleCurrentChange(val) {
|
||||
this.pageNo2 = val;
|
||||
this.getPageList();
|
||||
},
|
||||
changeDate() {
|
||||
if (this.daterange) {
|
||||
this.searchForm.startTime = this.daterange[0];
|
||||
this.searchForm.endTime = this.daterange[1];
|
||||
} else {
|
||||
this.searchForm.startTime = "";
|
||||
this.searchForm.endTime = "";
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@ -396,32 +363,32 @@ export default {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
.info-content{
|
||||
.back-operate{
|
||||
.info-content {
|
||||
.back-operate {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #5282F6;
|
||||
color: #5282f6;
|
||||
height: 40px;
|
||||
border-bottom: 2px solid #C8C8C8;
|
||||
border-bottom: 2px solid #c8c8c8;
|
||||
padding-bottom: 5px;
|
||||
cursor: pointer;
|
||||
.el-icon-arrow-left{
|
||||
color: #5282F6;
|
||||
.el-icon-arrow-left {
|
||||
color: #5282f6;
|
||||
margin-left: 15px;
|
||||
}
|
||||
>span{
|
||||
> span {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.info-content-detail{
|
||||
.info-content-detail {
|
||||
margin-top: 80px;
|
||||
.detail-title{
|
||||
.detail-title {
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
color: #000000;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
}
|
||||
.detail-sub-title{
|
||||
.detail-sub-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@ -430,11 +397,11 @@ export default {
|
||||
font-size: 16px;
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
span:not(:last-child){
|
||||
span:not(:last-child) {
|
||||
margin-right: 25px;
|
||||
}
|
||||
}
|
||||
.detail-content{
|
||||
.detail-content {
|
||||
font-family: PingFang SC, PingFang SC;
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
|
||||
@ -5,24 +5,21 @@
|
||||
<el-form :inline="true" class="demo-form-inline" size="medium">
|
||||
<el-form-item label="审批状态">
|
||||
<el-select
|
||||
v-model="tableParameter.enterpriseId"
|
||||
v-model="tableParameter.applyStatus"
|
||||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
:label="$t('message.laborMange.allTheCompany')"
|
||||
:value="''"
|
||||
></el-option>
|
||||
<el-option
|
||||
v-for="(item, index) in enterpriseListData"
|
||||
v-for="(item, index) in statusListData"
|
||||
:key="index"
|
||||
:label="item.enterpriseName"
|
||||
:value="item.id"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="资质申请时间">
|
||||
<el-date-picker
|
||||
v-model="tableParameter.timeRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
@ -31,11 +28,8 @@
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="身份证号">
|
||||
<el-input placeholder="请输入" v-model="tableParameter.idCard"></el-input>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" plain>{{
|
||||
<el-button type="primary" plain @click="searchData">{{
|
||||
$t("message.laborMange.inquire")
|
||||
}}</el-button>
|
||||
<el-button type="warning" plain>{{
|
||||
@ -45,49 +39,62 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<vue-scroll style="height: 86%">
|
||||
<el-table class="tables" :data="tableData" height="800">
|
||||
<el-table class="tables" :data="tableData" height="500">
|
||||
<el-table-column
|
||||
width="200"
|
||||
prop="jobName"
|
||||
prop="applyTime"
|
||||
align="center"
|
||||
label="资质申请时间"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="personName"
|
||||
label="供应商名称"
|
||||
prop="applyOrg"
|
||||
label="审批组织"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
label="审批人"
|
||||
prop="replyTime"
|
||||
label="审批回复时间"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column label="审批回复时间" align="center">
|
||||
<!-- <div slot slot-scope="scope">
|
||||
<img
|
||||
:preview="
|
||||
scope.row.imageUrl[0] ? scope.row.imageUrl[0].url : []
|
||||
"
|
||||
:src="scope.row.imageUrl[0] ? scope.row.imageUrl[0].url : []"
|
||||
alt=""
|
||||
width="50px"
|
||||
/>
|
||||
</div> -->
|
||||
<el-table-column label="审批状态" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
:style="{
|
||||
color:
|
||||
scope.row.applyStatus == 1
|
||||
? '#66A972'
|
||||
: scope.row.applyStatus == 2
|
||||
? '#5F73CD'
|
||||
: scope.row.applyStatus == 3
|
||||
? '#E14655'
|
||||
: scope.row.applyStatus == 4
|
||||
? '#B8B8BA'
|
||||
: '',
|
||||
}"
|
||||
>
|
||||
{{
|
||||
scope.row.applyStatus == 1
|
||||
? "待审批"
|
||||
: scope.row.applyStatus == 2
|
||||
? "已审批"
|
||||
: scope.row.applyStatus == 3
|
||||
? "已驳回"
|
||||
: scope.row.applyStatus == 4
|
||||
? "已撤销"
|
||||
: ""
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
label="审批状态"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('message.deviceManage.operation')"
|
||||
align="center"
|
||||
width="400"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="tableBtns">
|
||||
<div @click="showAuditReply(scope.row)" class="operationText">
|
||||
<div @click="showAudit(scope.row)" class="operationText">
|
||||
<img
|
||||
src="@/assets/images/icon-edit.png"
|
||||
src="@/assets/images/tableIcon/showReply.png"
|
||||
width="15px"
|
||||
height="15px"
|
||||
/>
|
||||
@ -134,6 +141,7 @@
|
||||
<span
|
||||
:class="activeTab == 2 ? 'activeStyle' : ''"
|
||||
@click="activeTab = 2"
|
||||
v-if="[2,3].includes(rowData.applyStatus)"
|
||||
>审批回复</span
|
||||
>
|
||||
</div>
|
||||
@ -142,58 +150,78 @@
|
||||
<div class="flex4">
|
||||
<div class="type_content" style="z-index: 2">
|
||||
<div class="flex3">
|
||||
<span class="width_35">{{
|
||||
$t("message.qualificationApply.companyName")
|
||||
<span class="width_35">企业名称</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.enterpriseName
|
||||
}}</span>
|
||||
<span class="width_65">坤之企业</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">企业类型</span>
|
||||
<span class="width_65 bg_color">企业分包</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.companyTypeName
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">开户行</span>
|
||||
<span class="width_65">123</span>
|
||||
<span class="width_65">{{ supplierDetail.bankname }}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">注册人申请电话</span>
|
||||
<span class="width_65 bg_color">123456</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.registerPersonPhoneTel
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">法人电话</span>
|
||||
<span class="width_65">123456</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.legalPersonTel
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">营业执照截止日期</span>
|
||||
<span class="width_65 bg_color">2024-03-05</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.businessLicenseEndDate
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">企业邮箱</span>
|
||||
<span class="width_65">123@qq.com</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.enterpriseEmail
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">劳资证书号</span>
|
||||
<span class="width_65 bg_color">123456</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.qualificationNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">单位性质</span>
|
||||
<span class="width_65" style="white-space: nowrap"
|
||||
>国有企业</span
|
||||
>
|
||||
<span class="width_65" style="white-space: nowrap">{{
|
||||
supplierDetail.enterpriseProperty == 1
|
||||
? "国有企业"
|
||||
: supplierDetail.enterpriseProperty == 2
|
||||
? "三资企业"
|
||||
: supplierDetail.enterpriseProperty == 3
|
||||
? "集体企业"
|
||||
: supplierDetail.enterpriseProperty == 4
|
||||
? "私营企业"
|
||||
: ""
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">项目负责人</span>
|
||||
<span class="width_65 bg_color">叶起中</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.projectDirectorName
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="type_content">
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">{{
|
||||
$t("message.qualificationApply.qualificationImg")
|
||||
}}</span>
|
||||
<span class="width_65">
|
||||
<!-- <img
|
||||
:src="projectDetail.layoutImage"
|
||||
<span class="width_35 border_l">资质图片</span>
|
||||
<span class="width_65"
|
||||
><img
|
||||
:src="supplierDetail.enterpriseQualificationUrl"
|
||||
style="
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
@ -202,46 +230,72 @@
|
||||
"
|
||||
@click="
|
||||
bigImageDialog = true;
|
||||
bigImageUrl = projectDetail.layoutImage;
|
||||
bigImageUrl = supplierDetail.enterpriseQualificationUrl;
|
||||
"
|
||||
/> -->
|
||||
</span>
|
||||
/></span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">法定代表人</span>
|
||||
<span class="width_65 bg_color">小坤坤</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.enterpriseLegalPerson
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">统一社会信用代码</span>
|
||||
<span class="width_65">111222333</span>
|
||||
<span class="width_65">{{ supplierDetail.socialCode }}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">注册资金(万元)</span>
|
||||
<span class="width_65 bg_color">123</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.registeredCapital
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">银行账号</span>
|
||||
<span class="width_65">123</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.bankcardnumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">营业执照注册号</span>
|
||||
<span class="width_65 bg_color">123</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.businessNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">企业地址</span>
|
||||
<span class="width_65">123 </span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.enterpriseAddress
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">安全生产许可证</span>
|
||||
<span class="width_65 bg_color">123</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.enterpriseSafeAllow
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">logo</span>
|
||||
<span class="width_65">123</span>
|
||||
<span class="width_65"
|
||||
><img
|
||||
:src="supplierDetail.logo"
|
||||
style="
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: 2px;
|
||||
cursor: pointer;
|
||||
"
|
||||
@click="
|
||||
bigImageDialog = true;
|
||||
bigImageUrl = supplierDetail.logo;
|
||||
"
|
||||
/></span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">项目负责人电话</span>
|
||||
<span class="width_65 bg_color">123456</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.projectDirectorPhone
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -250,41 +304,42 @@
|
||||
<div class="company-qualification" v-show="activeTab == 1">
|
||||
<el-table class="tables" :data="dialogTableData" height="300">
|
||||
<el-table-column
|
||||
width="200"
|
||||
prop="jobName"
|
||||
width="50"
|
||||
type="index"
|
||||
align="center"
|
||||
label="序号"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="personName"
|
||||
prop="fileName"
|
||||
label="资质文件名称"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
prop="fileNumber"
|
||||
label="资质文件编号"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column label="资质文件" width="80" align="center">
|
||||
<!-- <div slot slot-scope="scope">
|
||||
<img
|
||||
:preview="
|
||||
scope.row.imageUrl[0] ? scope.row.imageUrl[0].url : []
|
||||
"
|
||||
:src="scope.row.imageUrl[0] ? scope.row.imageUrl[0].url : []"
|
||||
alt=""
|
||||
width="50px"
|
||||
/>
|
||||
</div> -->
|
||||
<el-table-column label="资质文件" align="center">
|
||||
<div slot slot-scope="scope">
|
||||
<img
|
||||
:src="scope.row.fileUrl ? scope.row.fileUrl : []"
|
||||
alt=""
|
||||
width="50px"
|
||||
@click="
|
||||
bigImageDialog = true;
|
||||
bigImageUrl = scope.row.fileUrl;
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
prop="remarks"
|
||||
label="备注"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="dialog-footer relative-group" v-show="activeTab == 1">
|
||||
<div class="dialog-footer relative-group" v-show="activeTab == 1 && rowData.applyStatus == 1">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="auditReplyDialog = true"
|
||||
@ -296,19 +351,20 @@
|
||||
<div class="audit-content">
|
||||
<div class="audit-content-item">
|
||||
<span>审批人:</span>
|
||||
<span>李天泽</span>
|
||||
<span>{{replyData.applyUser}}</span>
|
||||
</div>
|
||||
<div class="audit-content-item">
|
||||
<span>审批回复时间:</span>
|
||||
<span>2024-03-29 18:00:00</span>
|
||||
<span>{{replyData.replyTime}}</span>
|
||||
</div>
|
||||
<div class="audit-content-item">
|
||||
<span>审批回复:</span>
|
||||
<el-input
|
||||
v-model="replyData.applyContent"
|
||||
disabled
|
||||
type="textarea"
|
||||
:rows="5"
|
||||
placeholder="请补充企业资质"
|
||||
placeholder="请补充"
|
||||
style="flex: 1;align-self: flex-start"
|
||||
></el-input>
|
||||
</div>
|
||||
@ -327,11 +383,12 @@
|
||||
<div class="reply-content">
|
||||
<div class="reply-content-item">
|
||||
<span>审批人:</span>
|
||||
<span>李天泽</span>
|
||||
<span>{{$store.state.userInfo.realName}}</span>
|
||||
</div>
|
||||
<div class="reply-content-item">
|
||||
<span>审批回复:</span>
|
||||
<el-input
|
||||
v-model="auditReplyVal"
|
||||
type="textarea"
|
||||
:rows="5"
|
||||
placeholder="请输入"
|
||||
@ -358,28 +415,50 @@
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 查看大图 -->
|
||||
<el-dialog
|
||||
:modal-append-to-body="false"
|
||||
title="查看大图"
|
||||
:visible.sync="bigImageDialog"
|
||||
>
|
||||
<img width="100%" :src="bigImageUrl" alt />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getQualificationApplyListApi,
|
||||
getSupplierInfoRecordApi,
|
||||
getQualificationFileRecordApi,
|
||||
auditQualificationApplyApi,
|
||||
qualificationApplyInfoApi
|
||||
} from "@/assets/js/api/supplier.js";
|
||||
import { getComapnyStatisticsListApi } from "@/assets/js/api/company/project";
|
||||
import moment from 'moment'
|
||||
export default {
|
||||
name: "temporary",
|
||||
data() {
|
||||
return {
|
||||
dialogTableData: [{ jobName: 111, personName: 111, phone: 123 }],
|
||||
bigImageDialog: false,
|
||||
bigImageUrl: "",
|
||||
auditReplyVal: "",
|
||||
dialogTableData: [],
|
||||
activeTab: 0,
|
||||
tableData: [{ jobName: 111, personName: 111, phone: 123 }],
|
||||
tableData: [],
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
workerName: "",
|
||||
projectSn: "",
|
||||
enterpriseListData: [],
|
||||
statusListData: [
|
||||
{ name: "待审批", value: 1 },
|
||||
{ name: "已审批", value: 2 },
|
||||
{ name: "已驳回", value: 3 },
|
||||
{ name: "已撤销", value: 4 },
|
||||
],
|
||||
tableParameter: {
|
||||
idCard: "",
|
||||
personType: "",
|
||||
workerName: "",
|
||||
enterpriseId: "",
|
||||
applyStatus: "",
|
||||
timeRange: [],
|
||||
},
|
||||
relativeGroupDialog: false,
|
||||
level1CompanyData: [],
|
||||
@ -389,10 +468,36 @@ export default {
|
||||
label: "name",
|
||||
},
|
||||
auditReplyDialog: false,
|
||||
supplierDetail: {
|
||||
enterpriseName: "",
|
||||
enterpriseQualificationUrl: "",
|
||||
companyTypeName: "",
|
||||
xzSupplierTypeId: "",
|
||||
enterpriseLegalPerson: "",
|
||||
bankname: "",
|
||||
socialCode: "",
|
||||
registerPersonPhoneTel: "",
|
||||
registeredCapital: "",
|
||||
legalPersonTel: "",
|
||||
bankcardnumber: "",
|
||||
businessLicenseEndDate: "",
|
||||
businessNumber: "",
|
||||
enterpriseEmail: "",
|
||||
enterpriseAddress: "",
|
||||
qualificationNumber: "",
|
||||
enterpriseSafeAllow: "",
|
||||
enterpriseProperty: "",
|
||||
logo: "",
|
||||
projectDirectorName: "",
|
||||
projectDirectorPhone: "",
|
||||
},
|
||||
rowData: {},
|
||||
replyData: {}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.projectSn = this.$store.state.projectSn;
|
||||
this.getTableList();
|
||||
this.loadData();
|
||||
},
|
||||
watch: {
|
||||
@ -401,8 +506,85 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 查看审批回复
|
||||
showAuditReply() {
|
||||
// 查看详情-审批回复内容
|
||||
loadqulificationReplyRecord() {
|
||||
let requestData = {
|
||||
id: this.rowData.id,
|
||||
};
|
||||
qualificationApplyInfoApi(requestData).then((res) => {
|
||||
if (res.result) {
|
||||
this.replyData = res.result;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查看详情-企业资质
|
||||
loadCompanyQulificationRecord() {
|
||||
let requestData = {
|
||||
xzSupplierQualificationApplyId: this.rowData.id,
|
||||
};
|
||||
getQualificationFileRecordApi(requestData).then((res) => {
|
||||
console.log(res, "资质文件表格");
|
||||
if (res.result) {
|
||||
this.dialogTableData = res.result;
|
||||
this.dialogTableData.map((item) => {
|
||||
if (!item.fileUrl.includes(this.$store.state.FILEURL)) {
|
||||
item.fileUrl = this.$store.state.FILEURL + item.fileUrl;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查看详情-基本信息
|
||||
loadBasicInfoRecord() {
|
||||
getSupplierInfoRecordApi({
|
||||
xzSupplierQualificationApplyId: this.rowData.id,
|
||||
}).then((res) => {
|
||||
console.log(res, "基本信息");
|
||||
if (res.result) {
|
||||
for (let i in this.supplierDetail) {
|
||||
this.supplierDetail[i] = res.result[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 表格搜索
|
||||
searchData() {
|
||||
this.page = 1; // 回归第一页
|
||||
this.getTableList();
|
||||
},
|
||||
// 获取表格数据
|
||||
getTableList() {
|
||||
let requestData = {
|
||||
userId: this.$store.state.userInfo.userId,
|
||||
pageNo: this.page,
|
||||
pageSize: this.pageSize,
|
||||
applyStatus: this.tableParameter.applyStatus,
|
||||
};
|
||||
if (
|
||||
this.tableParameter.timeRange &&
|
||||
this.tableParameter.timeRange.length > 0
|
||||
) {
|
||||
requestData.createTime_begin = this.tableParameter.timeRange[0];
|
||||
requestData.createTime_end = this.tableParameter.timeRange[1];
|
||||
}
|
||||
getQualificationApplyListApi(requestData).then((res) => {
|
||||
console.log(res, "资质申请表格");
|
||||
if (res.result && res.result.records) {
|
||||
this.tableData = res.result.records;
|
||||
this.total = res.result.total;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查看审批详情
|
||||
showAudit(item) {
|
||||
this.rowData = item;
|
||||
this.activeTab = 0; // tab回归默认
|
||||
this.auditReplyVal = ""; // 审核回复内容框回归默认
|
||||
this.loadBasicInfoRecord();
|
||||
this.loadCompanyQulificationRecord();
|
||||
if([2,3].includes(this.rowData.applyStatus)){
|
||||
this.loadqulificationReplyRecord();
|
||||
}
|
||||
this.relativeGroupDialog = true;
|
||||
},
|
||||
loadData() {
|
||||
@ -428,47 +610,47 @@ export default {
|
||||
},
|
||||
// 拒绝申请
|
||||
noPassFn() {
|
||||
// let item = this.selectRowObj;
|
||||
// this.$confirm(
|
||||
// `账号{${item.account}}拒绝申请后将会发送【注册失败提醒】到注册人邮箱!`,
|
||||
// this.$t("message.companyDiagram.Tips"),
|
||||
// {
|
||||
// confirmButtonText: this.$t(
|
||||
// "message.companyDiagram.confirmButtonText"
|
||||
// ), //确定
|
||||
// cancelButtonText: this.$t("message.companyDiagram.cancelButtonText"), //取消
|
||||
// type: "warning",
|
||||
// }
|
||||
// ).then(() => {
|
||||
// userAuditApi({ id: item.id, approvalProcess:3, xzRegistry: item }).then((res) => {
|
||||
// this.getUserAuditListApi();
|
||||
// });
|
||||
// });
|
||||
let item = this.rowData;
|
||||
this.$confirm(
|
||||
`确定要拒绝审核吗?`,
|
||||
this.$t("message.companyDiagram.Tips"),
|
||||
{
|
||||
confirmButtonText: this.$t(
|
||||
"message.companyDiagram.confirmButtonText"
|
||||
), //确定
|
||||
cancelButtonText: this.$t("message.companyDiagram.cancelButtonText"), //取消
|
||||
type: "warning",
|
||||
}
|
||||
).then(() => {
|
||||
auditQualificationApplyApi({ id: item.id, applyStatus:3, applyContent: this.auditReplyVal, applyUser: this.$store.state.userInfo.realName, replyTime: moment().format('YYYY-MM-DD HH:mm:ss') }).then((res) => {
|
||||
this.$message.error("已拒绝");
|
||||
this.relativeGroupDialog = false;
|
||||
this.auditReplyDialog = false;
|
||||
this.getTableList();
|
||||
});
|
||||
});
|
||||
},
|
||||
// 审批通过
|
||||
auditPass() {
|
||||
// let item = this.selectRowObj;
|
||||
// const checked = this.$refs.relativeTree.getCheckedNodes();
|
||||
// const halfChecked = this.$refs.relativeTree.getHalfCheckedNodes();
|
||||
// const checkedArr = this.transfrom(checked);
|
||||
// const halfCheckedArr = this.transfrom(halfChecked);
|
||||
// const concatArr = checkedArr.concat(halfCheckedArr);
|
||||
// console.log(concatArr)
|
||||
// this.$confirm(
|
||||
// `账号{${item.account}}审批通过后将会发送【注册成功提醒】到注册人邮箱!`,
|
||||
// this.$t("message.companyDiagram.Tips"),
|
||||
// {
|
||||
// confirmButtonText: this.$t(
|
||||
// "message.companyDiagram.confirmButtonText"
|
||||
// ), //确定
|
||||
// cancelButtonText: this.$t("message.companyDiagram.cancelButtonText"), //取消
|
||||
// type: "warning",
|
||||
// }
|
||||
// ).then(() => {
|
||||
// userAuditApi({ id: item.id, approvalProcess:2, xzRegistry: item }).then((res) => {
|
||||
// this.getUserAuditListApi();
|
||||
// });
|
||||
// });
|
||||
let item = this.rowData;
|
||||
this.$confirm(
|
||||
`确定要通过审核吗?`,
|
||||
this.$t("message.companyDiagram.Tips"),
|
||||
{
|
||||
confirmButtonText: this.$t(
|
||||
"message.companyDiagram.confirmButtonText"
|
||||
), //确定
|
||||
cancelButtonText: this.$t("message.companyDiagram.cancelButtonText"), //取消
|
||||
type: "warning",
|
||||
}
|
||||
).then(() => {
|
||||
auditQualificationApplyApi({ id: item.id, applyStatus:2, applyContent: this.auditReplyVal, applyUser: this.$store.state.userInfo.realName, replyTime: moment().format('YYYY-MM-DD HH:mm:ss') }).then((res) => {
|
||||
this.$message.success("已通过");
|
||||
this.relativeGroupDialog = false;
|
||||
this.auditReplyDialog = false;
|
||||
this.getTableList();
|
||||
});
|
||||
});
|
||||
},
|
||||
//切换数量
|
||||
handleSizeChange(value) {
|
||||
@ -602,7 +784,8 @@ export default {
|
||||
text-transform: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
span:nth-child(1),span:nth-child(2) {
|
||||
span:nth-child(1),
|
||||
span:nth-child(2) {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.activeStyle {
|
||||
@ -668,29 +851,29 @@ export default {
|
||||
.company-qualification {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.audit-reply{
|
||||
.audit-reply {
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
margin-top: 20px;
|
||||
.audit-content {
|
||||
width: 100%;
|
||||
line-height: 40px;
|
||||
&-item {
|
||||
display: flex;
|
||||
span {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #272d45;
|
||||
font-style: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
span:nth-child(1) {
|
||||
display: inline-block;
|
||||
width: 105px;
|
||||
text-align: right;
|
||||
}
|
||||
width: 100%;
|
||||
line-height: 40px;
|
||||
&-item {
|
||||
display: flex;
|
||||
span {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #272d45;
|
||||
font-style: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
span:nth-child(1) {
|
||||
display: inline-block;
|
||||
width: 105px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 审批回复弹框样式
|
||||
|
||||
@ -5,24 +5,21 @@
|
||||
<el-form :inline="true" class="demo-form-inline" size="medium">
|
||||
<el-form-item label="审批状态">
|
||||
<el-select
|
||||
v-model="tableParameter.enterpriseId"
|
||||
v-model="tableParameter.applyStatus"
|
||||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
:label="$t('message.laborMange.allTheCompany')"
|
||||
:value="''"
|
||||
></el-option>
|
||||
<el-option
|
||||
v-for="(item, index) in enterpriseListData"
|
||||
v-for="(item, index) in statusListData"
|
||||
:key="index"
|
||||
:label="item.enterpriseName"
|
||||
:value="item.id"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="资质申请时间">
|
||||
<el-date-picker
|
||||
v-model="tableParameter.timeRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
@ -31,9 +28,6 @@
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="身份证号">
|
||||
<el-input placeholder="请输入" v-model="tableParameter.idCard"></el-input>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" plain>{{
|
||||
$t("message.laborMange.inquire")
|
||||
@ -266,58 +260,78 @@
|
||||
<div class="flex4">
|
||||
<div class="type_content" style="z-index: 2">
|
||||
<div class="flex3">
|
||||
<span class="width_35">{{
|
||||
$t("message.qualificationApply.companyName")
|
||||
<span class="width_35">企业名称</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.enterpriseName
|
||||
}}</span>
|
||||
<span class="width_65">坤之企业</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">企业类型</span>
|
||||
<span class="width_65 bg_color">企业分包</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.companyTypeName
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">开户行</span>
|
||||
<span class="width_65">123</span>
|
||||
<span class="width_65">{{ supplierDetail.bankname }}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">注册人申请电话</span>
|
||||
<span class="width_65 bg_color">123456</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.registerPersonPhoneTel
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">法人电话</span>
|
||||
<span class="width_65">123456</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.legalPersonTel
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">营业执照截止日期</span>
|
||||
<span class="width_65 bg_color">2024-03-05</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.businessLicenseEndDate
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">企业邮箱</span>
|
||||
<span class="width_65">123@qq.com</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.enterpriseEmail
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">劳资证书号</span>
|
||||
<span class="width_65 bg_color">123456</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.qualificationNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35">单位性质</span>
|
||||
<span class="width_65" style="white-space: nowrap"
|
||||
>国有企业</span
|
||||
>
|
||||
<span class="width_65" style="white-space: nowrap">{{
|
||||
supplierDetail.enterpriseProperty == 1
|
||||
? "国有企业"
|
||||
: supplierDetail.enterpriseProperty == 2
|
||||
? "三资企业"
|
||||
: supplierDetail.enterpriseProperty == 3
|
||||
? "集体企业"
|
||||
: supplierDetail.enterpriseProperty == 4
|
||||
? "私营企业"
|
||||
: ""
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color">项目负责人</span>
|
||||
<span class="width_65 bg_color">叶起中</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.projectDirectorName
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="type_content">
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">{{
|
||||
$t("message.qualificationApply.qualificationImg")
|
||||
}}</span>
|
||||
<span class="width_65">
|
||||
<!-- <img
|
||||
:src="projectDetail.layoutImage"
|
||||
<span class="width_35 border_l">资质图片</span>
|
||||
<span class="width_65"
|
||||
><img
|
||||
:src="supplierDetail.enterpriseQualificationUrl"
|
||||
style="
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
@ -326,46 +340,72 @@
|
||||
"
|
||||
@click="
|
||||
bigImageDialog = true;
|
||||
bigImageUrl = projectDetail.layoutImage;
|
||||
bigImageUrl = supplierDetail.enterpriseQualificationUrl;
|
||||
"
|
||||
/> -->
|
||||
</span>
|
||||
/></span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">法定代表人</span>
|
||||
<span class="width_65 bg_color">小坤坤</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.enterpriseLegalPerson
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">统一社会信用代码</span>
|
||||
<span class="width_65">111222333</span>
|
||||
<span class="width_65">{{ supplierDetail.socialCode }}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">注册资金(万元)</span>
|
||||
<span class="width_65 bg_color">123</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.registeredCapital
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">银行账号</span>
|
||||
<span class="width_65">123</span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.bankcardnumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">营业执照注册号</span>
|
||||
<span class="width_65 bg_color">123</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.businessNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">企业地址</span>
|
||||
<span class="width_65">123 </span>
|
||||
<span class="width_65">{{
|
||||
supplierDetail.enterpriseAddress
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">安全生产许可证</span>
|
||||
<span class="width_65 bg_color">123</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.enterpriseSafeAllow
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 border_l">logo</span>
|
||||
<span class="width_65">123</span>
|
||||
<span class="width_65"
|
||||
><img
|
||||
:src="supplierDetail.logo"
|
||||
style="
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: 2px;
|
||||
cursor: pointer;
|
||||
"
|
||||
@click="
|
||||
bigImageDialog = true;
|
||||
bigImageUrl = supplierDetail.logo;
|
||||
"
|
||||
/></span>
|
||||
</div>
|
||||
<div class="flex3">
|
||||
<span class="width_35 bg_color border_l">项目负责人电话</span>
|
||||
<span class="width_65 bg_color">123456</span>
|
||||
<span class="width_65 bg_color">{{
|
||||
supplierDetail.projectDirectorPhone
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -374,65 +414,59 @@
|
||||
<div class="company-qualification" v-show="activeTab == 1">
|
||||
<el-table class="tables" :data="dialogTableData" height="300">
|
||||
<el-table-column
|
||||
width="200"
|
||||
prop="jobName"
|
||||
width="50"
|
||||
type="index"
|
||||
align="center"
|
||||
label="序号"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="personName"
|
||||
prop="fileName"
|
||||
label="资质文件名称"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
prop="fileNumber"
|
||||
label="资质文件编号"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column label="资质文件" width="80" align="center">
|
||||
<!-- <div slot slot-scope="scope">
|
||||
<img
|
||||
:preview="
|
||||
scope.row.imageUrl[0] ? scope.row.imageUrl[0].url : []
|
||||
"
|
||||
:src="scope.row.imageUrl[0] ? scope.row.imageUrl[0].url : []"
|
||||
alt=""
|
||||
width="50px"
|
||||
/>
|
||||
</div> -->
|
||||
<el-table-column label="资质文件" align="center">
|
||||
<div slot slot-scope="scope">
|
||||
<img
|
||||
:src="scope.row.fileUrl ? scope.row.fileUrl : []"
|
||||
alt=""
|
||||
width="50px"
|
||||
@click="
|
||||
bigImageDialog = true;
|
||||
bigImageUrl = scope.row.fileUrl;
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
prop="remarks"
|
||||
label="备注"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="dialog-footer relative-group" v-show="activeTab == 1">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="auditReplyDialog = true"
|
||||
size="medium"
|
||||
>审批
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="audit-reply" v-show="activeTab == 2">
|
||||
<div class="audit-content">
|
||||
<div class="audit-content-item">
|
||||
<span>审批人:</span>
|
||||
<span>李天泽</span>
|
||||
<span>{{replyData.applyUser}}</span>
|
||||
</div>
|
||||
<div class="audit-content-item">
|
||||
<span>审批回复时间:</span>
|
||||
<span>2024-03-29 18:00:00</span>
|
||||
<span>{{replyData.replyTime}}</span>
|
||||
</div>
|
||||
<div class="audit-content-item">
|
||||
<span>审批回复:</span>
|
||||
<el-input
|
||||
v-model="replyData.applyContent"
|
||||
disabled
|
||||
type="textarea"
|
||||
:rows="5"
|
||||
placeholder="请补充企业资质"
|
||||
placeholder="请补充"
|
||||
style="flex: 1;align-self: flex-start"
|
||||
></el-input>
|
||||
</div>
|
||||
@ -446,6 +480,9 @@
|
||||
import {
|
||||
getQualificationApplyListApi,
|
||||
operateQualificationApplyApi,
|
||||
getSupplierInfoRecordApi,
|
||||
getQualificationFileRecordApi,
|
||||
qualificationApplyInfoApi
|
||||
} from "@/assets/js/api/supplier.js";
|
||||
import { getComapnyStatisticsListApi } from "@/assets/js/api/company/project";
|
||||
export default {
|
||||
@ -459,14 +496,16 @@ export default {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
workerName: "",
|
||||
projectSn: "",
|
||||
enterpriseListData: [],
|
||||
statusListData: [
|
||||
{ name: "待审批", value: 1 },
|
||||
{ name: "已审批", value: 2 },
|
||||
{ name: "已驳回", value: 3 },
|
||||
{ name: "已撤销", value: 4 },
|
||||
],
|
||||
tableParameter: {
|
||||
idCard: "",
|
||||
personType: "",
|
||||
workerName: "",
|
||||
enterpriseId: "",
|
||||
applyStatus: "",
|
||||
timeRange: [],
|
||||
},
|
||||
relativeGroupDialog: false,
|
||||
level1CompanyData: [],
|
||||
@ -476,6 +515,31 @@ export default {
|
||||
label: "name",
|
||||
},
|
||||
auditReplyDialog: false,
|
||||
supplierDetail: {
|
||||
enterpriseName: "",
|
||||
enterpriseQualificationUrl: "",
|
||||
companyTypeName: "",
|
||||
xzSupplierTypeId: "",
|
||||
enterpriseLegalPerson: "",
|
||||
bankname: "",
|
||||
socialCode: "",
|
||||
registerPersonPhoneTel: "",
|
||||
registeredCapital: "",
|
||||
legalPersonTel: "",
|
||||
bankcardnumber: "",
|
||||
businessLicenseEndDate: "",
|
||||
businessNumber: "",
|
||||
enterpriseEmail: "",
|
||||
enterpriseAddress: "",
|
||||
qualificationNumber: "",
|
||||
enterpriseSafeAllow: "",
|
||||
enterpriseProperty: "",
|
||||
logo: "",
|
||||
projectDirectorName: "",
|
||||
projectDirectorPhone: "",
|
||||
},
|
||||
rowData: {},
|
||||
replyData: {}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -488,10 +552,51 @@ export default {
|
||||
},
|
||||
props: ["activeTabName"],
|
||||
methods: {
|
||||
// 查看详情-审批回复内容
|
||||
loadqulificationReplyRecord() {
|
||||
let requestData = {
|
||||
id: this.rowData.id,
|
||||
};
|
||||
qualificationApplyInfoApi(requestData).then((res) => {
|
||||
if (res.result) {
|
||||
this.replyData = res.result;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查看详情-企业资质
|
||||
loadCompanyQulificationRecord() {
|
||||
let requestData = {
|
||||
xzSupplierQualificationApplyId: this.rowData.id,
|
||||
};
|
||||
getQualificationFileRecordApi(requestData).then((res) => {
|
||||
console.log(res, "资质文件表格");
|
||||
if (res.result) {
|
||||
this.dialogTableData = res.result;
|
||||
this.dialogTableData.map((item) => {
|
||||
if (!item.fileUrl.includes(this.$store.state.FILEURL)) {
|
||||
item.fileUrl = this.$store.state.FILEURL + item.fileUrl;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查看详情-基本信息
|
||||
loadBasicInfoRecord() {
|
||||
getSupplierInfoRecordApi({
|
||||
xzSupplierQualificationApplyId: this.rowData.id,
|
||||
}).then((res) => {
|
||||
console.log(res, "基本信息");
|
||||
if (res.result) {
|
||||
for (let i in this.supplierDetail) {
|
||||
this.supplierDetail[i] = res.result[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 重新申请
|
||||
reApply(item){
|
||||
reApply(item) {
|
||||
this.$confirm(
|
||||
"确定重新申请【该资质】?",
|
||||
"确定重新申请【该资质】?",
|
||||
this.$t("message.personnelPosition.beaconManage.table.Tips"),
|
||||
{
|
||||
confirmButtonText: this.$t(
|
||||
@ -504,7 +609,10 @@ export default {
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
operateQualificationApplyApi({ xzSupplierQualificationApplyId: item.id, type: 3 }).then((result) => {
|
||||
operateQualificationApplyApi({
|
||||
xzSupplierQualificationApplyId: item.id,
|
||||
type: 3,
|
||||
}).then((result) => {
|
||||
if (result.success) {
|
||||
this.$message.success(result.message);
|
||||
this.getTableList();
|
||||
@ -514,9 +622,9 @@ export default {
|
||||
.catch(() => {});
|
||||
},
|
||||
// 撤销申请
|
||||
cancelApply(item){
|
||||
cancelApply(item) {
|
||||
this.$confirm(
|
||||
"确定撤销【该申请资质】?",
|
||||
"确定撤销【该申请资质】?",
|
||||
this.$t("message.personnelPosition.beaconManage.table.Tips"),
|
||||
{
|
||||
confirmButtonText: this.$t(
|
||||
@ -529,7 +637,10 @@ export default {
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
operateQualificationApplyApi({ xzSupplierQualificationApplyId: item.id, type: 2 }).then((result) => {
|
||||
operateQualificationApplyApi({
|
||||
xzSupplierQualificationApplyId: item.id,
|
||||
type: 2,
|
||||
}).then((result) => {
|
||||
if (result.success) {
|
||||
this.$message.success(result.message);
|
||||
this.getTableList();
|
||||
@ -539,7 +650,7 @@ export default {
|
||||
.catch(() => {});
|
||||
},
|
||||
// 打开申请弹框
|
||||
openApplyDialog(){
|
||||
openApplyDialog() {
|
||||
this.selectedTreeData = "";
|
||||
this.relativeGroupDialog = true;
|
||||
},
|
||||
@ -566,7 +677,15 @@ export default {
|
||||
userId: this.$store.state.userInfo.userId,
|
||||
pageNo: this.page,
|
||||
pageSize: this.pageSize,
|
||||
applyStatus: this.tableParameter.applyStatus,
|
||||
};
|
||||
if (
|
||||
this.tableParameter.timeRange &&
|
||||
this.tableParameter.timeRange.length > 0
|
||||
) {
|
||||
requestData.createTime_begin = this.tableParameter.timeRange[0];
|
||||
requestData.createTime_end = this.tableParameter.timeRange[1];
|
||||
}
|
||||
getQualificationApplyListApi(requestData).then((res) => {
|
||||
console.log(res, "资质申请表格");
|
||||
if (res.result && res.result.records) {
|
||||
@ -577,6 +696,10 @@ export default {
|
||||
},
|
||||
// 查看审批回复
|
||||
showAuditReply(item) {
|
||||
this.rowData = item;
|
||||
this.loadBasicInfoRecord();
|
||||
this.loadCompanyQulificationRecord();
|
||||
this.loadqulificationReplyRecord();
|
||||
this.auditReplyDialog = true;
|
||||
},
|
||||
filterNode(value, data) {
|
||||
@ -769,7 +892,8 @@ export default {
|
||||
text-transform: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
span:nth-child(1),span:nth-child(2) {
|
||||
span:nth-child(1),
|
||||
span:nth-child(2) {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.activeStyle {
|
||||
@ -835,29 +959,29 @@ export default {
|
||||
.company-qualification {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.audit-reply{
|
||||
.audit-reply {
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
margin-top: 20px;
|
||||
.audit-content {
|
||||
width: 100%;
|
||||
line-height: 40px;
|
||||
&-item {
|
||||
display: flex;
|
||||
span {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #272d45;
|
||||
font-style: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
span:nth-child(1) {
|
||||
display: inline-block;
|
||||
width: 105px;
|
||||
text-align: right;
|
||||
}
|
||||
width: 100%;
|
||||
line-height: 40px;
|
||||
&-item {
|
||||
display: flex;
|
||||
span {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #272d45;
|
||||
font-style: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
span:nth-child(1) {
|
||||
display: inline-block;
|
||||
width: 105px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,76 +1,162 @@
|
||||
<template>
|
||||
<div class="main-content">
|
||||
<div class="form-content">
|
||||
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
||||
<el-form
|
||||
:model="ruleForm"
|
||||
:rules="rules"
|
||||
ref="ruleForm"
|
||||
label-width="120px"
|
||||
class="demo-ruleForm"
|
||||
>
|
||||
<el-form-item label="当前账号:" class="defaultStyle">
|
||||
<span style="color: #5181F6">18772114025</span>
|
||||
<span style="color: #5181F6">{{
|
||||
$store.state.userInfo.account
|
||||
}}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="当前密码:" prop="password">
|
||||
<el-input v-model="ruleForm.password" placeholder="请输入内容"></el-input>
|
||||
<el-input
|
||||
v-model="ruleForm.password"
|
||||
placeholder="请输入内容"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码:" prop="newPassword">
|
||||
<el-input v-model="ruleForm.newPassword" placeholder="请输入内容"></el-input>
|
||||
<el-input
|
||||
v-model="ruleForm.newPassword"
|
||||
placeholder="请输入内容"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认新密码:" prop="confirmParssword">
|
||||
<el-input v-model="ruleForm.confirmParssword" placeholder="请输入内容"></el-input>
|
||||
<el-input
|
||||
v-model="ruleForm.confirmParssword"
|
||||
placeholder="请输入内容"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="图形验证码:" prop="auditCode">
|
||||
<el-input v-model="ruleForm.auditCode" placeholder="请输入图形验证码"></el-input>
|
||||
<div class="imgCodeBox">
|
||||
<el-input
|
||||
v-model="ruleForm.auditCode"
|
||||
placeholder="请输入图形验证码"
|
||||
></el-input>
|
||||
<img :src="codeImgData.img" @click="getImgCode" alt="" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" plain @click="resetForm('ruleForm')">清空</el-button>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')">确认</el-button>
|
||||
<el-button type="primary" plain @click="resetForm('ruleForm')"
|
||||
>清空</el-button
|
||||
>
|
||||
<el-button type="primary" @click="submitForm('ruleForm')"
|
||||
>确认</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getImgCodeApi, imgCodeUpdatePwApi } from "@/assets/js/api/loginSign";
|
||||
export default {
|
||||
mounted() {},
|
||||
created() {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
ruleForm: {
|
||||
password: '',
|
||||
newPassword: '',
|
||||
confirmParssword: '',
|
||||
auditCode: ''
|
||||
},
|
||||
rules: {
|
||||
password: [
|
||||
{ required: true, message: '请输入', trigger: 'blur' },
|
||||
]
|
||||
}
|
||||
}
|
||||
password: "",
|
||||
newPassword: "",
|
||||
confirmParssword: "",
|
||||
auditCode: "",
|
||||
},
|
||||
codeImgData: {
|
||||
img: "",
|
||||
graphValidateCodeUuid: "",
|
||||
},
|
||||
rules: {
|
||||
password: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
newPassword: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入正确的密码格式",
|
||||
trigger: "blur",
|
||||
pattern: /(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^0-9a-zA-Z]).{8,30}/,
|
||||
},
|
||||
],
|
||||
confirmParssword: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入正确的密码格式",
|
||||
trigger: "blur",
|
||||
pattern: /(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^0-9a-zA-Z]).{8,30}/,
|
||||
},
|
||||
],
|
||||
auditCode: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getImgCode();
|
||||
},
|
||||
methods: {
|
||||
submitForm(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
alert('submit!');
|
||||
} else {
|
||||
console.log('error submit!!');
|
||||
return false;
|
||||
getImgCode() {
|
||||
let requestData = {};
|
||||
getImgCodeApi(requestData).then((res) => {
|
||||
if (res.result) {
|
||||
// this.replyData = res.result;
|
||||
for (let i in this.codeImgData) {
|
||||
this.codeImgData[i] = res.result[i];
|
||||
}
|
||||
});
|
||||
},
|
||||
resetForm(formName) {
|
||||
this.$refs[formName].resetFields();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
submitForm(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.ruleForm.newPassword != this.ruleForm.confirmParssword) {
|
||||
this.$message.error("两次输入的密码不一致");
|
||||
return;
|
||||
}
|
||||
let requestData = {
|
||||
oldPassword: this.ruleForm.password,
|
||||
showPassword: this.ruleForm.confirmParssword,
|
||||
graphValidateCode: this.ruleForm.auditCode,
|
||||
graphValidateCodeUuid: this.codeImgData.graphValidateCodeUuid,
|
||||
userId: this.$store.state.userInfo.userId
|
||||
};
|
||||
imgCodeUpdatePwApi(requestData).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success("修改成功");
|
||||
this.resetForm();
|
||||
this.getImgCode();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log("error submit!!");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
resetForm(formName) {
|
||||
this.$refs[formName].resetFields();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.main-content{
|
||||
.form-content{
|
||||
.main-content {
|
||||
.form-content {
|
||||
width: 500px;
|
||||
margin-top: 25px;
|
||||
margin-left: 75px;
|
||||
.defaultStyle /deep/.el-form-item__label{
|
||||
color: #5181F6;
|
||||
.defaultStyle /deep/.el-form-item__label {
|
||||
color: #5181f6;
|
||||
}
|
||||
.imgCodeBox {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
img {
|
||||
width: 116px;
|
||||
margin-left: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -1,25 +1,39 @@
|
||||
<template>
|
||||
<div class="fullHeight">
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form :inline="true" ref="searchForm" :model="searchForm" size="medium">
|
||||
<el-form
|
||||
:inline="true"
|
||||
ref="searchForm"
|
||||
:model="searchForm"
|
||||
size="medium"
|
||||
>
|
||||
<!-- 人员名称 -->
|
||||
<el-form-item label="机械设备名称" prop="deviceName">
|
||||
<el-select v-model="searchForm.personName" placeholder="请选择" clearable :style="{ width: '100%' }" >
|
||||
<el-option v-for="(item, index) in personList" :key="index" :label="item.personName" :value="item.id" ></el-option>
|
||||
</el-select>
|
||||
<el-form-item label="操作员名称" prop="userName">
|
||||
<el-input
|
||||
v-model="searchForm.userName"
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<!-- 设备序号 -->
|
||||
<el-form-item label="设备序号" prop="deviceNumber">
|
||||
<el-select v-model="searchForm.departmentId" placeholder="请选择" clearable :style="{ width: '100%' }" >
|
||||
<el-option v-for="(item, index) in deviceList" :key="index" :label="item.deviceNumber" :value="item.id" ></el-option>
|
||||
</el-select>
|
||||
<el-form-item label="功能模块" prop="operModul">
|
||||
<el-input
|
||||
v-model="searchForm.operModul"
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<!-- 时间 -->
|
||||
<el-form-item label="时间">
|
||||
<el-date-picker size="medium" v-model="daterange" type="daterange"
|
||||
range-separator="至" value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'" :end-placeholder="'结束日期'"
|
||||
@change="changeDate">
|
||||
<el-form-item label="操作时间">
|
||||
<el-date-picker
|
||||
v-model="searchForm.timeRange"
|
||||
clearable
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd"
|
||||
:start-placeholder="'开始日期'"
|
||||
:end-placeholder="'结束日期'"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 条件查询按钮 -->
|
||||
@ -28,19 +42,24 @@
|
||||
<el-button type="warning" plain @click="refresh">刷新</el-button>
|
||||
<el-button type="primary" plain @click="exportFn">
|
||||
<!-- 导出 -->
|
||||
{{$t('message.projectInfo.export')}}
|
||||
{{ $t("message.projectInfo.export") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" v-loading="loading" :data="tableData">
|
||||
<el-table-column label="操作时间" align="center" prop="deviceName" />
|
||||
<el-table-column label="操作描述" align="center" prop="deviceNumber" width="180"/>
|
||||
<el-table-column label="功能模块" align="center" prop="currentLocation" width="180"/>
|
||||
<el-table-column label="操作IP" align="center" prop="speed" />
|
||||
<el-table-column label="请求URL" align="center" prop="workStatus" />
|
||||
<el-table-column label="操作员姓名" align="center" prop="uploadTime" width="180"/>
|
||||
<el-table-column label="序号" align="center" width="80" type="index" />
|
||||
<el-table-column
|
||||
label="操作时间"
|
||||
align="center"
|
||||
prop="operCreateTime"
|
||||
/>
|
||||
<el-table-column label="操作描述" align="center" prop="operDesc" />
|
||||
<el-table-column label="功能模块" align="center" prop="operModul" />
|
||||
<el-table-column label="操作IP" align="center" prop="operIp" />
|
||||
<el-table-column label="请求URL" align="center" prop="operUri" />
|
||||
<el-table-column label="操作员姓名" align="center" prop="realName" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@ -57,130 +76,138 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { rtToolPage } from '@/assets/js/api/workTicketManage.js'
|
||||
import { } from '@/assets/js/api/devicePosition/payData'
|
||||
import {
|
||||
getSafeLogListApi,
|
||||
exportSafeLogListApi,
|
||||
} from "@/assets/js/api/loginSign";
|
||||
export default {
|
||||
mounted() {},
|
||||
created() {
|
||||
this.getList()
|
||||
// this.getDutyPerson()
|
||||
this.getList();
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
devSn: '',
|
||||
devSn: "",
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
daterange: [],
|
||||
pageInfo: {
|
||||
pageNo: 1, //页数
|
||||
pageSize: 10, //条数
|
||||
total: 1 //总条数
|
||||
total: 1, //总条数
|
||||
},
|
||||
searchForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectSn: '', // 项目SN
|
||||
personName: '',
|
||||
deviceNumber: '',
|
||||
startTime: '',
|
||||
endTime: '',
|
||||
userName: "",
|
||||
operModul: "",
|
||||
timeRange: [],
|
||||
},
|
||||
personList: [
|
||||
{id: 1, personName: '张三'},
|
||||
{id: 2, personName: '李四'},
|
||||
{id: 3, personName: '王二'},
|
||||
],
|
||||
deviceList: [
|
||||
{id: 1, deviceNumber: 'EMP21313212135132'},
|
||||
{id: 2, deviceNumber: 'EMP44613213543212'},
|
||||
{id: 3, deviceNumber: 'EMP21321546312556'},
|
||||
],
|
||||
tableData: [
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 0, deviceBattery: 50, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 0, deviceBattery: 95, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 1, deviceBattery: 18, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 1, deviceBattery: 45, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 0, deviceBattery: 81, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 1, deviceBattery: 11, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 0, deviceBattery: 67, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 1, deviceBattery: 90, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 0, deviceBattery: 16, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
{deviceName: '挖掘机', deviceNumber: 'EMP21313212135132', currentLocation: '123,4561,895,5648', speed:'15km/h', workStatus: 1, deviceBattery: 80, deviceVoltage: 3.7, uploadTime: '2024-03-13 00:00:00'},
|
||||
],
|
||||
}
|
||||
tableData: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
exportFn(){
|
||||
window.location.href=this.$http.defaults.baseURL+'xmgl/standardCurrentData/exportExcelStandardCurrentData?devSn='+
|
||||
this.formInline.devSn+'&projectSn='+this.projectSn+'&startTime='+this.formInline.startTime+'&endTime='+this.formInline.endTime
|
||||
},
|
||||
//查询列表
|
||||
getList() {
|
||||
rtToolPage({
|
||||
exportFn() {
|
||||
let requestData = {
|
||||
sn:
|
||||
this.$store.state.userInfo.sn ||
|
||||
this.$store.state.userInfo.headquartersSn,
|
||||
pageNo: this.pageInfo.pageNo,
|
||||
pageSize: this.pageInfo.pageSize,
|
||||
projectSn: this.$store.state.projectSn,
|
||||
devSn: this.searchForm.devSn,
|
||||
toolName: this.searchForm.toolName,
|
||||
toolStatus: this.searchForm.toolStatus,
|
||||
}).then(result => {
|
||||
if (result.success) {
|
||||
this.List = result.result.records
|
||||
this.pageInfo.total = result.result.total
|
||||
}
|
||||
userName: this.searchForm.userName,
|
||||
operModul: this.searchForm.operModul,
|
||||
};
|
||||
fetch(this.$http.defaults.baseURL + "xmgl/operationLog/exportXls", {
|
||||
method: "post",
|
||||
headers: {
|
||||
Authorization: this.$store.state.userInfo.token,
|
||||
"Content-Type": "application/json", // 设置请求头的内容类型为JSON
|
||||
},
|
||||
body: JSON.stringify(requestData), // 将data对象转换为JSON字符串并作为请求体发送
|
||||
})
|
||||
.then((response) => {
|
||||
// 处理响应
|
||||
if (!response.ok) {
|
||||
throw new Error("下载失败");
|
||||
}
|
||||
return response.blob();
|
||||
})
|
||||
.then((blob) => {
|
||||
// 创建一个下载链接
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
// 创建一个<a>元素
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "安全日志.xlsx"; // 指定下载文件的文件名
|
||||
// 模拟点击下载链接
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
// 释放URL对象
|
||||
window.URL.revokeObjectURL(url);
|
||||
// 处理导出的文件
|
||||
// 这里可以使用blob对象来获取导出的文件内容或者将其保存到本地
|
||||
console.log("下载", link, url);
|
||||
})
|
||||
.catch((error) => {
|
||||
// 处理错误
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
//查询列表
|
||||
getList() {
|
||||
let requestData = {
|
||||
sn:
|
||||
this.$store.state.userInfo.sn ||
|
||||
this.$store.state.userInfo.headquartersSn,
|
||||
pageNo: this.pageInfo.pageNo,
|
||||
pageSize: this.pageInfo.pageSize,
|
||||
projectSn: this.$store.state.projectSn,
|
||||
userName: this.searchForm.userName,
|
||||
operModul: this.searchForm.operModul,
|
||||
};
|
||||
if (this.searchForm.timeRange && this.searchForm.timeRange.length > 0) {
|
||||
requestData.startTime = this.searchForm.timeRange[0];
|
||||
requestData.endTime = this.searchForm.timeRange[1];
|
||||
}
|
||||
getSafeLogListApi(requestData).then((result) => {
|
||||
if (result.success) {
|
||||
this.tableData = result.result.records;
|
||||
this.pageInfo.total = result.result.total;
|
||||
}
|
||||
});
|
||||
},
|
||||
SizeChange(val) {
|
||||
this.pageInfo.pageSize = val
|
||||
this.getList()
|
||||
this.pageInfo.pageSize = val;
|
||||
this.getList();
|
||||
},
|
||||
CurrentChange(val) {
|
||||
this.pageInfo.pageNo = val
|
||||
this.getList()
|
||||
this.pageInfo.pageNo = val;
|
||||
this.getList();
|
||||
},
|
||||
searchList() {
|
||||
this.pageInfo.pageNo = 1 //页数
|
||||
this.getList()
|
||||
this.pageInfo.pageNo = 1; //页数
|
||||
this.getList();
|
||||
},
|
||||
refresh() {
|
||||
this.searchForm = {}
|
||||
this.pageInfo.pageNo = 1 //页数
|
||||
this.pageInfo.pageSize = 10 //条数
|
||||
this.getList()
|
||||
this.searchForm = {};
|
||||
this.pageInfo.pageNo = 1; //页数
|
||||
this.pageInfo.pageSize = 10; //条数
|
||||
this.getList();
|
||||
},
|
||||
//选择条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize2 = val
|
||||
this.getPageList()
|
||||
this.pageSize2 = val;
|
||||
this.getPageList();
|
||||
},
|
||||
//选择分页
|
||||
handleCurrentChange(val) {
|
||||
this.pageNo2 = val
|
||||
this.getPageList()
|
||||
this.pageNo2 = val;
|
||||
this.getPageList();
|
||||
},
|
||||
changeDate() {
|
||||
if (this.daterange) {
|
||||
this.searchForm.startTime = this.daterange[0]
|
||||
this.searchForm.endTime = this.daterange[1]
|
||||
} else {
|
||||
this.searchForm.startTime = ''
|
||||
this.searchForm.endTime = ''
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.tables{
|
||||
.tables {
|
||||
min-height: 0;
|
||||
}
|
||||
.tables2 {
|
||||
min-height: auto;
|
||||
}
|
||||
.textStyle {
|
||||
width: 140px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,13 +1,38 @@
|
||||
<template>
|
||||
<!-- 项目首页 -->
|
||||
<div class="fullHeight">
|
||||
<vhead :titleName="projectName" :showR="true"></vhead>
|
||||
<div class="content-part"></div>
|
||||
<vhead :titleName="projectName" :showR="true" v-if="!selectGroupDialog"></vhead>
|
||||
<div class="content-part" v-if="!selectGroupDialog">
|
||||
<iframe
|
||||
id="myIframe"
|
||||
:src="`${$store.state.WORKFLOWURL}?token=${$store.state.userInfo.token}`"
|
||||
style="width: 100%; height: 100%; border: medium none"
|
||||
frameborder="1"
|
||||
></iframe>
|
||||
</div>
|
||||
<!-- 查看大图 -->
|
||||
<el-dialog
|
||||
title="选择组织"
|
||||
:modal-append-to-body="false"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:show-close="false"
|
||||
:visible.sync="selectGroupDialog"
|
||||
>
|
||||
<div class="content-list">
|
||||
<div class="content-list-item" v-for="(item,index) in groupListData" :key="index" @click="selectedGroupData(item)">
|
||||
<i class="el-icon-trophy-1"></i>
|
||||
<span>{{item.companyName}}</span>
|
||||
<i class="el-icon-arrow-right"></i>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import vhead from "@/components/header";
|
||||
import { getProjectDetail } from "@/assets/js/api/baseInfo.js";
|
||||
import { getGroupListApi } from "@/assets/js/api/loginSign.js";
|
||||
export default {
|
||||
name: "workSpace",
|
||||
components: { vhead },
|
||||
@ -15,15 +40,62 @@
|
||||
return {
|
||||
projectSn: "",
|
||||
projectName: "",
|
||||
selectGroupDialog: true,
|
||||
groupListData: [],
|
||||
selectedDataSn: ""
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.projectSn = this.$store.state.projectSn;
|
||||
},
|
||||
mounted() {
|
||||
this.getDataDateils();
|
||||
this.getGroupTreeData();
|
||||
},
|
||||
methods: {
|
||||
// 默认选中已选中组织的第一个项目
|
||||
selectedDefaultProject(obj){
|
||||
if (obj.list && obj.list.length > 0) {
|
||||
obj.list.map((item) => {
|
||||
this.selectedDefaultProject(item);
|
||||
});
|
||||
} else {
|
||||
this.projectSn = this.$store.state.projectSn || '';
|
||||
if(!this.projectSn){ // 加判断是为了在循环中只选中第一个
|
||||
this.projectSn = obj.sn;
|
||||
// 修改全局projectSn
|
||||
this.$store.commit("setProjectSn", obj.sn);
|
||||
this.getDataDateils();
|
||||
}
|
||||
}
|
||||
},
|
||||
// 点击选中组织
|
||||
selectedGroupData(item) {
|
||||
this.selectedDataSn = item.sn;
|
||||
this.$store.commit("setSelectedGroupSn", this.selectedDataSn); // 存储选中的组织Sn
|
||||
this.selectGroupDialog = false;
|
||||
this.selectedDefaultProject(item);
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
let iframe = document.getElementById("myIframe");
|
||||
iframe.contentWindow.postMessage(
|
||||
{
|
||||
type: "emitData",
|
||||
data: JSON.stringify(this.$store.state.userInfo)
|
||||
},
|
||||
"*"
|
||||
);
|
||||
}, 1000);
|
||||
})
|
||||
},
|
||||
getGroupTreeData(){
|
||||
let data = {
|
||||
userId: this.$store.state.userInfo.userId,
|
||||
};
|
||||
getGroupListApi(data).then((res) => {
|
||||
// console.log(res);
|
||||
if (res.code == 200) {
|
||||
this.groupListData = res.result;
|
||||
this.$store.commit("setGroupTreeList", res.result); // 存储组织树数据
|
||||
}
|
||||
});
|
||||
},
|
||||
//获取详情
|
||||
getDataDateils() {
|
||||
let data = {
|
||||
@ -42,11 +114,48 @@
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.flexStyle(){
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.content-part{
|
||||
width: 90%;
|
||||
width: 100%;
|
||||
height: calc(100% - 60px);
|
||||
border: 1px solid #ccc;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.content-list{
|
||||
&-item{
|
||||
.flexStyle();
|
||||
padding: 10px 15px;
|
||||
border: 1px solid #DADBDB;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
>span:nth-child(2){
|
||||
margin: 2px 10px 0px 10px;
|
||||
}
|
||||
>span:nth-child(3){
|
||||
padding:3px 10px;
|
||||
color: #79ACFA;
|
||||
background-color: #E4F5FF;
|
||||
border: 1px solid #99C3FB;
|
||||
border-radius: 5px;
|
||||
font-size: 10px;
|
||||
}
|
||||
/deep/.el-icon-arrow-right{
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
&-item:not(:last-child){
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
/deep/.el-dialog{
|
||||
width: 25%;
|
||||
.el-dialog__body{
|
||||
padding-top: 10px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user