update code

dev-login
haha 2023-08-25 00:36:59 +08:00
parent ad04f2ccf6
commit 523cd2e904
7 changed files with 512 additions and 100 deletions

View File

@ -7,6 +7,13 @@ const getProjectInsuranceList=(deptId,projectId)=> {
})
}
const getProjectInsurance=id=>{
return request({
url: `bgscreen/insurance/getProjectInsurance?id=${id}`,
method: 'get'
})
}
export default{
getProjectInsuranceList
getProjectInsuranceList,
getProjectInsurance
}

View File

@ -139,92 +139,28 @@
<img src="images/title_icon.png"><span class="sp-lbl">实际完工时间:</span>
<div class="div-text">{{ prj.actualCompletionTime }}</div>
</el-col>
</el-row>
</el-row>
<el-row class="data-item" v-if="users11.length > 0" style="display:block;">
<el-col :span="12" class="data-row" style="display:flex;width:100%">
<img src="images/title_icon.png"><span class="sp-lbl">责任主体:</span>
<div class="div-text">{{ users11.length > 0 ? users11[0].deptName : '' }}</div>
</el-col>
<div style="width:80%;margin-left:10%" class="data-table">
<table>
<tr class="tr-header">
<th>姓名</th>
<th>岗位</th>
</tr>
<tr v-for="(it, idx) in users11" :key="idx" class="tr-data">
<td style="width:50%;">{{ it.nickName }}</td>
<td>{{ it.jobTypeName }}</td>
</tr>
</table>
</div>
</el-row>
<el-row class="data-item" v-if="users4.length > 0" style="display:block;">
<el-col :span="12" class="data-row" style="display:flex;width:100%">
<img src="images/title_icon.png"><span class="sp-lbl">监理单位:</span>
<div class="div-text">{{ users4.length > 0 ? users4[0].deptName : '' }}</div>
</el-col>
<div style="width:80%;margin-left:10%" class="data-table">
<table>
<tr class="tr-header">
<th>姓名</th>
<th>岗位</th>
</tr>
<tr v-for="(it, idx) in users4" :key="idx" class="tr-data">
<td style="width:50%;">{{ it.nickName }}</td>
<td>{{ it.jobTypeName }}</td>
</tr>
</table>
</div>
</el-row>
<el-row class="data-item" v-if="users2.length > 0" style="display:block;">
<el-col :span="12" class="data-row" style="display:flex;width:100%">
<img src="images/title_icon.png"><span class="sp-lbl">总包单位:</span>
<div class="div-text">{{ users2.length > 0 ? users2[0].deptName : '' }}</div>
</el-col>
<div style="width:80%;margin-left:10%" class="data-table">
<table>
<tr class="tr-header">
<th>姓名</th>
<th>岗位</th>
</tr>
<tr v-for="(it, idx) in users2" :key="idx" class="tr-data">
<td style="width:50%;">{{ it.nickName }}</td>
<td>{{ it.jobTypeName }}</td>
</tr>
</table>
</div>
</el-row>
<el-row class="data-item" v-if="users3.length > 0" style="display:block;">
<el-col :span="12" class="data-row" style="display:flex;width:100%">
<img src="images/title_icon.png"><span class="sp-lbl">分包单位:</span>
<div class="div-text">{{ users3.length > 0 ? users3[0].deptName : '' }}</div>
</el-col>
<div style="width:80%;margin-left:10%" class="data-table">
<el-row class="data-item" v-if="users3.length > 0" style="display:block;">
<div style="width:90%;margin-left:5%" class="data-table">
<table>
<tr class="tr-header">
<th>姓名</th>
<th>单位类型</th>
<th>单位</th>
<th>岗位</th>
<th>联系电话</th>
</tr>
<tr v-for="(it, idx) in users3" :key="idx" class="tr-data">
<td style="width:50%;">{{ it.nickName }}</td>
<td>{{ it.jobTypeName }}</td>
<td style="width:20%;">{{ it.nickName }}</td>
<td style="width:20%;">{{ it.dName }}</td>
<td >{{ it.deptName }}</td>
<td style="width:20%;">{{ it.jobTypeName }}</td>
<td style="width:20%;">{{ it.phonenumber }}</td>
</tr>
</table>
</div>
</el-row>
@ -255,10 +191,7 @@ export default {
projectWeight: [],
projectCategory: [],
projectLevel: [],
projectBuildType: [],
users11: [],//
users4: [],//
users2: [],//
projectBuildType: [],
users3: [],//
};
},
@ -288,7 +221,8 @@ export default {
if (this.users && this.users.length > 0) {
let tmps = this.users.filter(it => it.jobTypeName == t);
if (tmps.length > 0) {
return tmps[0].deptName;
let it=tmps[0];
return it.nickName+(it.phonenumber?`(${it.phonenumber})`:'');
}
};
return "";
@ -382,11 +316,22 @@ export default {
this.projectBuildType = d || [];
});
this.users11 = users.filter(d => d.deptType == 11);
this.users4 = users.filter(d => d.deptType == 4);
this.users2 = users.filter(d => d.deptType == 2);
this.users3 = users.filter(d => d.deptType == 3);
this.users3=[];
this.addUsers(2,users,"总包单位","项目经理");
this.addUsers(4,users,"监理单位","总监");
this.addUsers(1,users,"设计单位","项目负责人");
},
addUsers(n,users,dName,jobTypeName){
users.filter(d=>d.deptType==n).forEach(it=>{
if(it.jobTypeName==jobTypeName){
if(this.users3.filter(item=>item.deptType==n && item.jobTypeName==jobTypeName && item.deptName==it.deptName ).length==0){
it.dName=dName;
this.users3.push(it);
}
}
});
},
modifyLeftBtn() {
let n = this.index;
@ -480,7 +425,7 @@ export default {
}
.data-table {
padding: 48px 24px;
margin-top: 32px;
table {
th {

View File

@ -161,7 +161,7 @@
<span class="nav-unit">%</span>
</span>
</div>
<div class="acceptance-item" v-for="(it,idx) in acceptanceData" :key="idx">
<div class="acceptance-item" v-for="(it,idx) in acceptanceData" :key="idx" style="cursor: pointer;" @click="doShowChecking(it)">
<div class="row-1">
<div class="div-img"><img :src="getProfileImage(it.mainImage)"></div>
<div class="div-text" style="width: 65%;">

View File

@ -207,7 +207,7 @@
</module-one-1-1>
<module-one-1-1 label="保险采购明细">
<div class="quality-table special-table">
<el-table :data="insuranceDataList" class="my-table" style="width: 100%;background: transparent;" height="265"
<el-table :data="insuranceDataList" class="my-table" style="width: 100%;background: transparent;" height="265" @row-click="doInsuranceRowClick"
ref="fbsubordinateUnit">
<el-table-column prop="projectName" label="项目名称" align="left" min-width="180"> </el-table-column>
@ -263,6 +263,7 @@
<worktrainDlg ref="workTrainDlg"></worktrainDlg>
<projectSpecialDlg ref="projectSpecialDlg"></projectSpecialDlg>
<ProblemmodifyDetail ref="probDlg"></ProblemmodifyDetail>
<projectInsuranceDlg ref="insDlg"></projectInsuranceDlg>
</div>
</template>
@ -282,18 +283,21 @@ import '../components/people-number'
import worktrainDlg from './dlg/workTrainDlg.vue'
import projectSpecialDlg from './dlg/projectSpecialDlg.vue'
import ProblemmodifyDetail from './components/ProblemmodifyDetail.vue'
import projectInsuranceDlg from './safe/projectInsuranceDlg.vue'
export default {
components: {
worktrainDlg,
projectSpecialDlg,
ProblemmodifyDetail
ProblemmodifyDetail,
projectInsuranceDlg
},
data() {
return {
elKey: 0,
dept: null,
projectInfo:null,
projects:[],
safeNav: 0,
safeText: '汇总总数',
rowStyle: {
@ -348,6 +352,9 @@ export default {
this.getDeptWorksList();
this.getProjectInsuranceList();
});
this.$bus.$on("loadProjects", prjs => {
this.projects = prjs;
})
this.$bus.$on("deptChange", dept => {
this.dept = dept;
this.doDeptChane();
@ -360,6 +367,9 @@ export default {
},
methods: {
doInsuranceRowClick(row){
this.$refs.insDlg.showDialog(this.projects, this.projectInfo,row)
},
doProbleRowClick(a,b,c){
this.$refs.probDlg.showDialog(a,0,this.safeNav);
},

View File

@ -0,0 +1,207 @@
<template>
<MyDialog v-if="show" v-model="show" :width="fontSize==2?'1200px':'1000px'" height="600px" :class="'font-size-' + fontSize"
class="show-checking-dlg">
<template slot="title">
<div style="display: flex; align-items: center;justify-content: space-between;">
<div :key="elKey" class="header-title">
{{ prj.projectName }} - 保险详情
</div>
</div>
</template>
<div class="font-size-tools">
<i class="set-font-size font-size2" @click="fontSize = 2" :class="fontSize == 2 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize == 1 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-font-size font-size0" @click="fontSize = 0" :class="fontSize == 0 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
</div>
<div class="main-content scroll" style="max-height: 780px;overflow-y: auto;">
<div class="data-item" v-for="(it,idx) in list" :key="idx" style="position:relative;">
<table class="data-table">
<tr>
<td style="width:50%">部门名称:{{it.deptName }}</td>
<td>保险公司:{{it.companyName }}</td>
</tr>
<tr>
<td>保险类型:{{ it.insuranceTypeName }}</td>
<td>保险单号:{{it.insuranceNumber }}</td>
</tr>
<tr>
<td>保险状态:
<template v-if="it.insuranceState=='Y'">
<i class="el-icon-success" style="color:rgb(34, 193, 52)"></i> <span style="color:rgb(34, 193, 52)">已办理</span>
</template>
<template v-else>
<i class="el-icon-error" style="color:rgb(245, 34, 45)"></i> <span style="color:rgb(245, 34, 45)">未办理</span>
</template>
<span v-if="it.insuranceFile" @click="download(it)" style="cursor:pointer;margin-left:12px;color:rgb(1, 169, 255);">
<i class="el-icon-paperclip" style=""></i><span >下载</span>
</span>
</td>
<td>办理时间:{{it.createTime|formatDateTime}}</td>
</tr>
</table>
</div>
</div>
</MyDialog>
</template>
<script>
import MyDialog from '../components/MyDialog'
export default {
components: {
MyDialog
},
data() {
return {
elKey: 0,
fontSize: 0,
show: false,
row:null
};
},
mounted() {
},
methods: {
download(it){
window.open(it.insuranceFile)
},
showDialog(row) {
this.row=row;
},
},
};
</script>
<style lang="less">
.show-checking-dlg{
.popup-project-introduction-min {
transform: translateY(200px);
}
&.font-size-2 {
.header-title {
font-size: 28px;
}
.popup-project-introduction-details {
.main-content {
font-size: 28px;
line-height: 64px;
.head-title-tab {
.head-nav {
padding: 12px 36px;
}
}
}
}
}
&.font-size-1 {
.header-title {
font-size: 24px;
}
.popup-project-introduction-details {
.main-content {
font-size: 24px;
line-height: 28px;
.head-title-tab {
.head-nav {
padding: 12px 36px;
}
}
}
}
}
.popup-project-introduction-details {
padding: 0px !important;
position: relative;
.quality-table {
padding: 0px !important;
}
.font-size-tools {
position: absolute;
top: -40px;
right: 200px;
}
}
.main-content {
padding-top:20px;
.data-item {
border-bottom: solid 1px #fff;
padding: 12px 0px 12px 20px;
box-shadow: inset 7px 0px 11px 5px rgb(36 131 167 / 70%);
.data-table{
border-collapse:collapse;
td{
border-bottom:solid 1px rgba(255,255,255,0.2);
line-height:48px;
}
}
}
}
.head-title-tab {
padding-top: 12px;
display: block;
width: 100%;
}
}</style>

View File

@ -0,0 +1,236 @@
<template>
<MyDialog v-if="show" v-model="show" :width="fontSize==2?'1200px':'1000px'" height="600px" :class="'font-size-' + fontSize"
class="project-insurance-dlg">
<template slot="title">
<div style="display: flex; align-items: center;justify-content: space-between;">
<div :key="elKey" class="header-title">
{{ row.projectName }} - 保险详情
</div>
</div>
</template>
<div class="font-size-tools">
<i class="set-font-size font-size2" @click="fontSize = 2" :class="fontSize == 2 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize == 1 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-font-size font-size0" @click="fontSize = 0" :class="fontSize == 0 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
</div>
<div class="main-content scroll" style="max-height: 510px;overflow-y: auto;">
<div class="data-item" v-for="(it,idx) in list" :key="idx" style="position:relative;">
<table class="data-table">
<tr>
<td style="width:50%"><img src="images/title_icon.png"><span class="sp-label">单位名称:</span>{{it.deptName }}</td>
<td><img src="images/title_icon.png"><span class="sp-label">保险公司:</span>{{it.companyName }}</td>
</tr>
<tr>
<td><img src="images/title_icon.png"><span class="sp-label">保险类型:</span>{{ it.insuranceTypeName }}</td>
<td><img src="images/title_icon.png"><span class="sp-label">保险单号:</span>{{it.insuranceNumber }}</td>
</tr>
<tr>
<td><img src="images/title_icon.png"><span class="sp-label">保险状态:</span>
<template v-if="it.insuranceState=='Y'">
<i class="el-icon-success" style="color:rgb(34, 193, 52)"></i> <span style="color:rgb(34, 193, 52)">已办理</span>
</template>
<template v-else>
<i class="el-icon-error" style="color:rgb(245, 34, 45)"></i> <span style="color:rgb(245, 34, 45)">未办理</span>
</template>
<span v-if="it.insuranceFile" @click="download(it)" style="cursor:pointer;margin-left:12px;color:rgb(1, 169, 255);">
<i class="el-icon-paperclip" style=""></i><span >下载</span>
</span>
</td>
<td><img src="images/title_icon.png"><span class="sp-label">办理时间:</span>{{it.createTime|formatDateTime}}</td>
</tr>
</table>
</div>
</div>
</MyDialog>
</template>
<script>
import MyDialog from '../components/MyDialog'
export default {
components: {
MyDialog
},
data() {
return {
elKey: 0,
fontSize: 0,
show: false,
prj: null,
prjs: [],
row:null,
list:[]
};
},
mounted() {
},
methods: {
download(it){
window.open(it.insuranceFile)
},
showDialog(prjs, prj, row) {
this.row=row;
this.show = true
let id = prj.id;
if (id == 0) {
id = prjs[1].id;
this.prj = prjs[1];
} else {
this.prj = prj;
}
this.prjs = prjs.filter(d => d.id > 0);
this.$api.insurance.getProjectInsurance(row.id).then(d=>{
this.list=d.data||[];
});
},
},
};
</script>
<style lang="less">
.project-insurance-dlg{
.popup-project-introduction-min {
transform: translateY(200px);
}
&.font-size-2 {
.header-title {
font-size: 28px;
}
.popup-project-introduction-details {
.main-content {
font-size: 28px;
line-height: 64px;
.head-title-tab {
.head-nav {
padding: 12px 36px;
}
}
}
img {
width: 24px;
height: 24px;
top: 8px;
}
}
}
&.font-size-1 {
.header-title {
font-size: 24px;
}
.popup-project-introduction-details {
.main-content {
font-size: 24px;
line-height: 28px;
.head-title-tab {
.head-nav {
padding: 12px 36px;
}
}
}
}
}
.popup-project-introduction-details {
padding: 0px !important;
position: relative;
.quality-table {
padding: 0px !important;
}
.font-size-tools {
position: absolute;
top: -40px;
right: 200px;
}
}
.main-content {
padding-top:20px;
.data-item {
border-bottom: solid 1px #fff;
padding: 12px 0px 12px 20px;
box-shadow: inset 7px 0px 11px 5px rgb(36 131 167 / 70%);
.data-table{
border-collapse:collapse;
td{
border-bottom:solid 1px rgba(255,255,255,0.2);
line-height:48px;
img {
width: 16px;
height: 16px;
top: 12px;
}
.sp-label{
color:aquamarine;
}
}
}
}
}
.head-title-tab {
padding-top: 12px;
display: block;
width: 100%;
}
}</style>

View File

@ -1,26 +1,33 @@
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
publicPath:'./',
publicPath :'./' ,
productionSourceMap:false,
devServer: {
host: '0.0.0.0',
port: 3000,
open: true,
proxy: {
'/profile':{
target: `http://62.234.3.186/profile`,
// '/':{
// target: `http://127.0.0.1/`,
// changeOrigin: true,
// pathRewrite: {
// ['^/']:''
// }
// },
'/profile/upload':{
target: `http://62.234.3.186/profile/upload`,
changeOrigin: true,
pathRewrite: {
['^/profile']:''
'^/profile/upload':'/'
}
},
'/jhapi/profile':{
//target: `http://62.234.3.186/jhapi/profile`,
target: `http://127.0.0.1:8090/jhapi/profile`,
'/jhapi/profile/upload':{
target: `http://62.234.3.186/jhapi/profile/upload`,
//target: `http://127.0.0.1:8090/jhapi/profile`,
changeOrigin: true,
pathRewrite: {
['^/jhapi/profile']:''
'^/jhapi/profile/upload':'/'
}
},
[process.env.VUE_APP_BASE_API]: {