Merge branch 'zy-1219-四色卡' into 1212-八项作业迁移

main
zhaoyu 2023-12-25 14:02:18 +08:00
commit c2191b9680
27 changed files with 4009 additions and 397 deletions

View File

@ -0,0 +1,324 @@
<template>
<div>
<el-dialog
:visible.sync="dialog_visible"
title="人员详情"
width="70%"
>
<div v-loading="listLoading">
<div>
<table class="table-ui" style="margin-bottom: 20px;">
<div class="level-title">
<h1>人员信息</h1>
</div>
<tr>
<th>照片</th>
<td>
<span v-if="imgUrl != ''">
<div class="img-flex">
<viewer>
<img :src="imgUrl" width="40" height="40" style="object-fit: cover;">
</viewer>
</div>
</span>
<span v-else/>
</td>
<th>姓名</th>
<td>{{ dataForm.NAME }}</td>
<th>性别</th>
<td>{{ dataForm.SEX === '0' ? '男' : '女' }}</td>
</tr>
<tr>
<th>出生年月</th>
<td>{{ dataForm.DATE_OF_BIRTH }}</td>
<th>年龄</th>
<td>{{ dataForm.AGE }}</td>
<th>手机号</th>
<td>{{ dataForm.PHONE }}</td>
</tr>
<tr>
<th>身份证</th>
<td>{{ dataForm.CARD_ID }}</td>
<th>身份证照片</th>
<!--if条件不可删除-->
<td v-if="userCardIDPhotoFile.length>0" colspan="3">
<span>
<div class="img-flex">
<viewer>
<img
v-for="item in userCardIDPhotoFile"
:src="config.fileUrl + item.FILEPATH"
:key="item.IMGFILES_ID"
width="40"
height="40"
style="object-fit: cover;">
</viewer>
</div>
</span>
</td>
</tr>
<tr>
<th>民族</th>
<td>{{ dataForm.minzuName? dataForm.minzuName:'暂无信息' }}</td>
<th>婚姻状况</th>
<td>{{ dataForm.MARITALSTATUS === '0' ? '未婚' : '已婚' }}</td>
<th>政治面貌</th>
<td>{{ dataForm.zzName }} {{
dataForm.zzName == '中共党员' ? '入党时间' + dataForm.POLITICAL_TIME : ''
}}
</td>
</tr>
<tr>
<th>户口所在地</th>
<td>{{ dataForm.HKLOCAL? dataForm.HKLOCAL:'暂无信息' }}</td>
<th>现住址</th>
<td>{{ dataForm.ADDRESS? dataForm.ADDRESS:'暂无信息' }}</td>
<th>联系电话</th>
<td>{{ dataForm.PHONE }}</td>
</tr>
<tr>
<th>文化程度</th>
<td>{{ dataForm.DEGREE_OF_EDUCATION_NAME }}</td>
<!-- <th>本企业从业开始日期</th>-->
<!-- <td>{{ dataForm.CORP_START_DATE }}</td>-->
<th>岗位名称(工种)</th>
<td colspan="3">{{ dataForm.POST_ID }}</td>
</tr>
<tr>
<th>是否缴纳社保</th>
<td :colspan="dataForm.IS_SOCIAL === '1' ? '':5">{{ formatLabel(dataForm.IS_SOCIAL) }}</td>
<th v-if="dataForm.IS_SOCIAL === '1'"></th>
<td v-if="dataForm.IS_SOCIAL === '1'">{{ dataForm.SOCIAL_NUMBER }}</td>
<th v-if="dataForm.IS_SOCIAL === '1'"></th>
<td v-if="dataForm.IS_SOCIAL === '1'&& socialPhotoFile.length>0" colspan="3">
<span>
<div class="img-flex">
<viewer>
<img
v-for="item in socialPhotoFile"
:src="config.fileUrl + item.FILEPATH"
:key="item.IMGFILES_ID"
width="40"
height="40"
style="object-fit: cover;">
</viewer>
</div>
</span>
</td>
</tr>
<tr>
<th>是否参加三级安全培训</th>
<td >{{ formatLabel(dataForm.IS_LEVEL_THREE) }}</td>
<th v-if="dataForm.IS_LEVEL_THREE == 1"></th>
<td v-if="dataForm.IS_LEVEL_THREE == 1 && photosOfLevel.length>0" colspan="3">
<span>
<div class="img-flex">
<viewer>
<img
v-for="item in photosOfLevel"
:src="config.fileUrl + item.FILEPATH"
:key="item.IMGFILES_ID"
width="40"
height="40"
style="object-fit: cover;">
</viewer>
</div>
</span>
</td>
</tr>
<tr>
<th>是否缴纳保险</th>
<td >{{ formatLabelBf(dataForm.IS_BF) }}</td>
<th>是否特殊工种</th>
<td >{{ formatLabel(dataForm.IS_SPECIAL_JOB) }}</td>
<th>是否流动人员</th>
<td >{{ formatLabel(dataForm.ISFLOW) }}</td>
</tr>
</table>
</div>
<div v-if="pdList.length > 0 ">
<table class="table-ui" style="margin-bottom: 20px;">
<div class="level-title">
<h1>证书信息</h1>
</div>
<tr>
<th>证书类型</th>
<th>证书名称</th>
<th>证书编号</th>
<th>发证机关</th>
<th>作业类别</th>
<th>操作项目</th>
<th>有效期开始</th>
<th>有效期结束</th>
<th>证书图片</th>
</tr>
<template v-if="pdList.length > 0 ">
<tr v-for="(item,index) in pdList" :key="index">
<td>{{ item.CER_TYPE_NAME }}</td>
<td>{{ item.CERTIFICATE }}</td>
<td>{{ item.SPECIAL_NUMBER }}</td>
<td>{{ item.ISSUING_AUTHORITY }}</td>
<td>{{ item.SPECIAL_TYPE_NAME?item.SPECIAL_TYPE_NAME:'无' }}</td>
<td>{{ item.OPERATION_TYPE_NAME?item.OPERATION_TYPE_NAME:'无' }}</td>
<td>{{ item.VALIDITY_TIME_START }}</td>
<td>{{ item.VALIDITY_TIME_END }}</td>
<td>
<viewer>
<img
:src="config.fileUrl + item.FILEPATH"
width="40"
height="40"
style="object-fit: cover;">
</viewer>
</td>
</tr>
</template>
</table>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialog_visible = false"> </el-button>
<el-button type="primary" @click="dialog_visible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
export default {
name: 'UserBaseInfoView',
props: {
base_info_url: {
type: String,
default: ''
}
},
data() {
return {
config: config,
imgUrl: '',
listLoading: false,
dialog_visible: false,
pdList: [], //
wenhuachengduList: [],
postList: [],
contractFileList: [], //
insuranceFileList: [], //
userPhotoFile: [], //
userCardIDPhotoFile: [], //
photosOfLevel: [], //
socialPhotoFile: [], //
gongshangbaoxianFile: [], //
dataForm: {
contractFileList: [], //
insuranceFileList: [], //
CARD_ID: '', //
DEPARTMENT_NAME: '', //
CORPINFO_ID: '', // id
HKLOCAL: '', //
AGE: '',
SEX: '',
ADDRESS: '',
PHONE: '',
IS_SOCIAL: '', //
SOCIAL_NUMBER: '', //
IS_LEVEL_THREE: '', //
IS_SPECIAL_JOB: '', //
ISFLOW: '', //
PHOTO: [],
IS_INJURIES_PAY: '',
CORP_START_DATE: '',
IS_BODY_ADAPT: '',
IS_SAFETY_TELL: '',
ISPAY: '',
IS_SIGN_LABOR: '',
DEPARTMENT_ID: '',
POST_ID: '',
PERSON_WORK_TYPE: '', //
USERNAME: '',
NAME: '',
BZ: '',
PERSON_TYPE: '',
PASSWORD: 'Aa@123456789',
DATE_OF_BIRTH: '', //
DEGREE_OF_EDUCATION: '', //
POST: '', //
TYPE_OF_WORK: '', //
ENTRY_DATE: '', //
WORK_DATE: '' //
},
USER_ID: '',
CORPINFO_ID: ''
}
},
methods: {
openWindow(user_id, corpinfo_id) {
console.log('openWindow')
console.log(this.base_info_url)
this.getList(user_id, corpinfo_id)
this.$nextTick(() => {
this.dialog_visible = !this.dialog_visible
})
},
formatLabelBf(value) {
if (value) {
var valList = value.split(',')
var label = []
for (let i = 0; i < valList.length; i++) {
if (valList[i] == 0) {
label.push('无')
break
}
if (valList[i] == 1) {
label.push('商业保险')
}
if (valList[i] == 2) {
label.push('工伤保险')
}
}
return label.join(',')
}
},
//
formatLabel(value) {
if (value == '1') {
return '是'
} else if (value == '0') {
return '否'
} else {
return ''
}
},
//
getList(user_id, corpinfo_id) {
this.listLoading = true
requestFN(
this.base_info_url,
{
USER_ID: user_id,
CORPINFO_ID: corpinfo_id
}
).then((data) => {
this.listLoading = false
this.dataForm = Object.assign(this.dataForm, data.pd)
this.userPhotoFile = data.userPhotoFile
if (this.userPhotoFile.length > 0) {
this.imgUrl = config.fileUrl + this.userPhotoFile[0].FILEPATH
}
this.photosOfLevel = data.photosOfLevel
this.pdList = data.pdList
this.userCardIDPhotoFile = data.userCardIDPhotoFile
this.socialPhotoFile = data.socialPhotoFile
// this.gongshangbaoxianFile = data.gongshangbaoxianFile
}).catch((e) => {
this.listLoading = false
})
}
}
}
</script>

View File

@ -1,41 +1,51 @@
<template>
<div class="app-container">
<el-form ref="searchForm" :model="searchForm">
<el-row :gutter="12">
<el-col :span="4">
<el-form-item label="作业编号" prop="keySource" label-width="80px">
<el-form ref="searchForm" :model="searchForm" label-width="80px">
<el-row>
<el-col span="6">
<el-form-item label="作业编号" prop="keySource">
<el-input v-model="searchForm.keyJobNumber" placeholder="请输入作业编号" class="filter-item" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="特级动火审批状态" prop="keyHiddenDescr" label-width="140px">
<el-col span="6">
<el-form-item label="特级动火审批状态" prop="keyHiddenDescr" label-width="130px">
<el-select v-model="searchForm.keyState" placeholder="请选择">
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id" />
<el-option v-for="item in statusSuperList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="4">-->
<!-- <el-form-item label="申请人" prop="keyApplyUserName">-->
<!-- <el-input v-model="searchForm.keyApplyUserName" placeholder="请输入申请人" class="filter-item" />-->
<!-- </el-form-item>-->
<!--&lt;!&ndash; </el-col>&ndash;&gt;-->
<!-- <el-col :span="4">-->
<!-- <el-form-item label="审批人" prop="keyApproveUserName">-->
<!-- <el-input v-model="searchForm.keyApproveUserName" placeholder="请输入审批人" class="filter-item" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="4">-->
<!-- <el-form-item label="审批时间" prop="keyFindUserName">-->
<!-- <el-date-picker-->
<!-- v-model="searchForm.keyApproveTime"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- style="width: 100%"-->
<!-- type="date"-->
<!-- placeholder="选择日期"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="4">
<el-col :span="6">
<el-form-item label="动火等级" prop="HOT_WORK_LEVEL_INDEX" >
<el-select v-model="searchForm.HOT_WORK_LEVEL_INDEX" placeholder="请选择" style="width: 80%">
<el-option v-for="item in hotworklevelList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动火内容" prop="keySource">
<el-input v-model="searchForm.JOB_CONTENT" placeholder="请输入动火内容" class="filter-item" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="动火部位" prop="keySource">
<el-input v-model="searchForm.HOT_WORK_POSITION" placeholder="请输入动火部位" class="filter-item" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动火区域管辖单位" prop="keySource" label-width="130px">
<SelectTree
ref="deptTree_Inspected"
:clearable="false"
:options="treeData"
:props="defaultProps"
v-model="searchForm.UNIT_LEADER_DEPARTMENT_ID"
placeholder="请选择动火区域管辖单位"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getList">
搜索
</el-button>
@ -54,6 +64,10 @@
{{ translate(row.JOB_TYPE_INDEX, jobTypeList) }}
</template>
</el-table-column>
<el-table-column prop="HOT_WORK_LEVEL_NAME" label="动火等级" />
<el-table-column prop="JOB_CONTENT" label="动火内容" />
<el-table-column prop="HOT_WORK_POSITION" label="动火部位" />
<el-table-column prop="UNIT_LEADER_DEPARTMENT_NAME" label="动火区域管辖单位" />
<el-table-column prop="WORK_LEVEL" label="申请单位" >
<template slot-scope="{row}">
{{ getUserName('deptName', row.HOT_WORK_APPLICATION_List) }}
@ -93,8 +107,10 @@
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import SelectTree from '@/components/SelectTree'
export default {
components: { Pagination },
components: { Pagination, SelectTree },
directives: { waves },
data() {
return {
@ -113,6 +129,7 @@ export default {
multipleSelectionAll: [], //
multipleSelection: [], //
treeData: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
@ -124,6 +141,24 @@ export default {
{ id: '0', name: '内部作业' },
{ id: '1', name: '相关方作业' }
],
statusSuperList: [
{ id: '0', name: '请选择' },
{ id: '1', name: '待提交' },
{ id: '2', name: '待审批' },
{ id: '3', name: '审批通过' },
{ id: '4', name: '已打回' }
],
hotworklevelList: [
{ id: '0', name: '特级' },
{ id: '1', name: '一级' },
{ id: '2', name: '二级' },
{ id: '3', name: '三级' }
],
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name'
},
statusList: [
{ id: '0', name: '申请人' },
{ id: '1', name: '动火单位待确认' },
@ -159,7 +194,11 @@ export default {
keyState: '',
keyApplyUserName: '',
keyApproveUserName: '',
keyApproveTime: ''
keyApproveTime: '',
HOT_WORK_LEVEL_INDEX: '',
JOB_CONTENT: '',
HOT_WORK_POSITION: '',
UNIT_LEADER_DEPARTMENT_ID: ''
},
loginUserID: ''
}
@ -167,6 +206,7 @@ export default {
created() {
this.getList()
this.getEditMyInfo()
this.getDictTreeData()
},
methods: {
getRowKey(row) {
@ -248,6 +288,18 @@ export default {
this.$parent.HOTWORKAPPLICATION_ID = id
this.$parent.HOTWORKAPPLICATION_TYPE = type
},
getDictTreeData() {
return new Promise((resolve) => {
requestFN(
'/department/listTreeCorpDept',
{}
).then((data) => {
this.treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
resolve('ok')
}).catch((e) => {
})
})
},
chongzhi() {
this.searchForm = {
stateConfirm: '',
@ -261,7 +313,10 @@ export default {
keyFindTime: [],
keyFindStateTime: '',
keyFindEndTime: '',
keyConfirmUser: ''
keyConfirmUser: '',
HOT_WORK_LEVEL_INDEX: '',
JOB_CONTENT: '',
HOT_WORK_POSITION: ''
}
this.$refs.searchForm.resetFields()
this.getList()

View File

@ -1,41 +1,51 @@
<template>
<div class="app-container">
<el-form ref="searchForm" :model="searchForm" label-width="80px">
<el-row :gutter="12">
<el-col :span="4">
<el-row>
<el-col :span="6">
<el-form-item label="作业编号" prop="keySource">
<el-input v-model="searchForm.keyJobNumber" placeholder="请输入作业编号" class="filter-item" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="6">
<el-form-item label="特级动火审批状态" prop="keyHiddenDescr" label-width="130px">
<el-select v-model="searchForm.keyState" placeholder="请选择">
<el-option v-for="item in statusSuperList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="4">-->
<!-- <el-form-item label="申请人" prop="keyApplyUserName">-->
<!-- <el-input v-model="searchForm.keyApplyUserName" placeholder="请输入申请人" class="filter-item" />-->
<!-- </el-form-item>-->
<!--&lt;!&ndash; </el-col>&ndash;&gt;-->
<!-- <el-col :span="4">-->
<!-- <el-form-item label="审批人" prop="keyApproveUserName">-->
<!-- <el-input v-model="searchForm.keyApproveUserName" placeholder="请输入审批人" class="filter-item" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="4">-->
<!-- <el-form-item label="审批时间" prop="keyFindUserName">-->
<!-- <el-date-picker-->
<!-- v-model="searchForm.keyApproveTime"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- style="width: 100%"-->
<!-- type="date"-->
<!-- placeholder="选择日期"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="4">
<el-col :span="6">
<el-form-item label="动火等级" prop="HOT_WORK_LEVEL_INDEX" >
<el-select v-model="searchForm.HOT_WORK_LEVEL_INDEX" placeholder="请选择" style="width: 80%">
<el-option v-for="item in hotworklevelList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动火内容" prop="keySource">
<el-input v-model="searchForm.JOB_CONTENT" placeholder="请输入动火内容" class="filter-item" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="动火部位" prop="keySource">
<el-input v-model="searchForm.HOT_WORK_POSITION" placeholder="请输入动火部位" class="filter-item" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动火区域管辖单位" prop="keySource" label-width="130px">
<SelectTree
ref="deptTree_Inspected"
:clearable="false"
:options="treeData"
:props="defaultProps"
v-model="searchForm.UNIT_LEADER_DEPARTMENT_ID"
placeholder="请选择动火区域管辖单位"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getList">
搜索
</el-button>
@ -54,6 +64,10 @@
{{ translate(row.JOB_TYPE_INDEX, jobTypeList) }}
</template>
</el-table-column>
<el-table-column prop="HOT_WORK_LEVEL_NAME" label="动火等级" />
<el-table-column prop="JOB_CONTENT" label="动火内容" />
<el-table-column prop="HOT_WORK_POSITION" label="动火部位" />
<el-table-column prop="UNIT_LEADER_DEPARTMENT_NAME" label="动火区域管辖单位" />
<el-table-column prop="WORK_LEVEL" label="申请单位" >
<template slot-scope="{row}">
{{ getUserName('deptName', row.HOT_WORK_APPLICATION_List) }}
@ -89,8 +103,10 @@
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import SelectTree from '@/components/SelectTree'
export default {
components: { Pagination },
components: { Pagination, SelectTree },
directives: { waves },
data() {
return {
@ -109,6 +125,7 @@ export default {
multipleSelectionAll: [], //
multipleSelection: [], //
treeData: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
@ -132,6 +149,17 @@ export default {
{ id: '3', name: '审批通过' },
{ id: '4', name: '已打回' }
],
hotworklevelList: [
{ id: '0', name: '特级' },
{ id: '1', name: '一级' },
{ id: '2', name: '二级' },
{ id: '3', name: '三级' }
],
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name'
},
STATUS: '0',
DEPTIDS: '',
searchForm: {
@ -139,12 +167,17 @@ export default {
keyState: '',
keyApplyUserName: '',
keyApproveUserName: '',
keyApproveTime: ''
keyApproveTime: '',
HOT_WORK_LEVEL_INDEX: '',
JOB_CONTENT: '',
HOT_WORK_POSITION: '',
UNIT_LEADER_DEPARTMENT_ID: ''
}
}
},
created() {
this.getList()
this.getDictTreeData()
},
methods: {
getRowKey(row) {
@ -209,6 +242,18 @@ export default {
this.$parent.HOTWORKAPPLICATION_ID = id
this.$parent.HOTWORKAPPLICATION_TYPE = type
},
getDictTreeData() {
return new Promise((resolve) => {
requestFN(
'/department/listTreeCorpDept',
{}
).then((data) => {
this.treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
resolve('ok')
}).catch((e) => {
})
})
},
chongzhi() {
this.searchForm = {
stateConfirm: '',
@ -222,8 +267,12 @@ export default {
keyFindTime: [],
keyFindStateTime: '',
keyFindEndTime: '',
keyConfirmUser: ''
keyConfirmUser: '',
HOT_WORK_LEVEL_INDEX: '',
JOB_CONTENT: '',
HOT_WORK_POSITION: ''
}
this.$refs.deptTree_Inspected.clearHandle()
this.$refs.searchForm.resetFields()
this.getList()
}

View File

@ -0,0 +1,381 @@
<template>
<div>
<div id="printTest" class="app-container print-work">
<el-page-header content="审批表详情" class="no-print" @back="goBack"/>
<table class="table-ui">
<thead>
<tr>
<td colspan="4" style="border: none">
<div class="level-title mt-20">
<h1>动火安全作业票</h1>
<div class="level-code">编号:{{ pd.CHECK_NO }}</div>
</div>
</td>
</tr>
</thead>
<tr>
<td class="bbg">作业申请单位</td>
<td>{{ pd.APPLY_DEPARTMENT_NAME }}</td>
<td class="bbg">作业申请时间</td>
<td>{{ pd.CREATTIME }}</td>
</tr>
<tr>
<td class="bbg">作业内容</td>
<td>{{ pd.WORK_CONTENT }}</td>
<td class="bbg">动火地点及动火部位</td>
<td>{{ pd.WORK_PLACE }}</td>
</tr>
<tr>
<td class="bbg">动火作业级别</td>
<td>{{ pd.WORK_LEVEL }}</td>
<td class="bbg">动火方式</td>
<td>{{ pd.WORK_FUNCTION }}</td>
</tr>
<tr>
<td class="bbg">动火人及证书编号</td>
<td colspan="3">{{ pd.WORK_USER }}</td>
</tr>
<tr>
<td class="bbg">作业单位</td>
<td>{{ pd.CONFIRM_DEPARTMENT_NAME }}</td>
<td class="bbg">作业负责人</td>
<td>{{ pd.CONFIRM_USER_NAME }}</td>
</tr>
<template v-for="(item,index) in gasList">
<tr :key="index">
<td class="bbg">气体取样分析时间</td>
<td>{{ item.ANALYZE_TIME }}</td>
<td class="bbg">代表性气体</td>
<td>{{ item.ANALYZE_PLACE }}</td>
</tr>
<tr :key="index">
<td class="bbg">分析结果/%</td>
<td>{{ item.ANALYZE_RESULT }}</td>
<td class="bbg">分析人</td>
<td>{{ item.ANALYZE_USER }}</td>
</tr>
</template>
<tr>
<td class="bbg">关联的其他特殊作业及安全作业票编号</td>
<td colspan="3">{{ pd.SPECIAL_WORK }}</td>
</tr>
<tr>
<td class="bbg">风险辨识结果</td>
<td colspan="3">{{ pd.RISK_IDENTIFICATION }}</td>
</tr>
<tr>
<td class="bbg">动火作业实施时间</td>
<td colspan="3">{{ pd.WORK_START_DATE }}{{ pd.WORK_END_DATE }}</td>
</tr>
<tr>
<td colspan="4">
<table class="table-ui">
<tr>
<td>序号</td>
<td>安全措施</td>
<td>是否涉及</td>
<td>确认人</td>
</tr>
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ index + 1 }}</td>
<td>
{{ item.PROTECTIVE_MEASURES }}
<!-- <template v-if="item.QUESTION1">-->
<!-- {{ item.QUESTION1 }}({{ item.ANSWER1 }})-->
<!-- </template>-->
<!-- <template v-if="item.QUESTION2">-->
<!-- {{ item.QUESTION2 }}({{ item.ANSWER2 }}) {{ item.QUESTION3 }}({{ item.ANSWER3 }})-->
<!-- </template>-->
</td>
<td>
<span v-if="item.STATUS=='1'"><input type="radio" disabled checked>&nbsp;&nbsp;&nbsp;</span>
<span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span>
</td>
<td>
{{ item.CONFIRM_NAME }}
</td>
</tr>
<tr v-if="pd.CONFIRM_USER_MEASURES || pd.LEADER_USER_MEASURES || pd.AUDIT_USER_MEASURES || pd.APPROVE_USER_MEASURES || pd.MONITOR_USER_MEASURES">
<td>{{ measuresList.length + 1 }}</td>
<td colspan="3">
<div v-if="pd.CONFIRM_USER_MEASURES" style="display: flex;justify-content: space-between;">
<span>其他安全措施{{ pd.CONFIRM_USER_MEASURES }}</span>
<span>编制人{{ pd.CONFIRM_USER_NAME }}</span>
</div>
<div v-if="pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.LEADER_USER_MEASURES }}</span>
<span>编制人{{ pd.LEADER_USER_NAME }}</span>
</div>
<div v-if="pd.AUDIT_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.AUDIT_USER_MEASURES }}</span>
<span>编制人{{ pd.AUDIT_USER_NAME }}</span>
</div>
<div v-if="pd.APPROVE_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.APPROVE_USER_MEASURES }}</span>
<span>编制人{{ pd.APPROVE_USER_NAME }}</span>
</div>
<div v-if="pd.MONITOR_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.MONITOR_USER_MEASURES }}</span>
<span>编制人{{ pd.MONITOR_USER_NAME }}</span>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="bbg">安全交底人</td>
<td colspan="10">
<div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr>
<td class="bbg">接受交底人</td>
<td colspan="10">
<div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr>
<td class="bbg">监护人</td>
<td colspan="3">
<div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.CONFIRM_USER_SIGNER_PATH">
<td colspan="6">
<div>作业负责人意见{{ pd.CONFIRM_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFIRM_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.CONFIRM_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.LEADER_USER_SIGNER_PATH">
<td colspan="6">
<div>所在单位意见{{ pd.LEADER_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.LEADER_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.AUDIT_USER_SIGNER_PATH">
<td colspan="6">
<div>安全管理部门意见{{ pd.AUDIT_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.AUDIT_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.AUDIT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.APPROVE_USER_SIGNER_PATH">
<td colspan="6">
<div>动火审批人意见{{ pd.APPROVE_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.APPROVE_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.APPROVE_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.MONITOR_USER_SIGNER_PATH">
<td colspan="6">
<div>动火前岗位当班班长验票情况{{ pd.MONITOR_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.MONITOR_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.MONITOR_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收{{ pd.ACCEPT_CONTENT }}</div>
<div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
</table>
</div>
<!-- <div class="ui-height" />-->
<div class="ui-foot">
<!-- <el-button v-print="'#printTest'" v-if="pd.APPLY_STATUS==8"> </el-button>-->
<el-button icon="el-icon-arrow-left" @click="goBack"> </el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import dateformat from '@/utils/dateformat'
export default {
data() {
return {
config: config,
HOTWORK_ID: this.$parent.HOTWORK_ID, // ID
pd: [], //
measuresList: [],
gasList: [],
imgList: [],
imgList1: [],
otherProtectiveMeasures: []
}
},
created() {
this.getData()
},
methods: {
validStr(str) {
if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true }
return false
},
formatTime(date, column) {
if (date) {
return dateformat(date, 'YYYY年MM月DD日HH时mm分')
} else {
return ''
}
},
formatDate(date, column) {
if (date) {
return dateformat(date, 'YYYY-MM-DD')
} else {
return ''
}
},
getRowKey(row) {
return row.HOTWORK_ID
},
getData() {
this.listLoading = true
requestFN(
'/hotwork/cfd/goEdit',
{
HOTWORK_ID: this.HOTWORK_ID
}
).then((data) => {
this.listLoading = false
this.pd = data.pd // map
this.imgList = data.imgList
this.imgList1 = data.imgList1
for (let i = 0; i < data.measuresList.length; i++) {
//
const PROTECTIVE_MEASURES = data.measuresList[i].PROTECTIVE_MEASURES.split('')
for (let j = 1; j <= 3; j++) {
//
if (this.findCharIndex(PROTECTIVE_MEASURES, '', j) !== -1) {
//
PROTECTIVE_MEASURES.splice(
this.findCharIndex(PROTECTIVE_MEASURES, '', j) + 1,
0,
data.measuresList[i]['ANSWER' + j]
)
}
}
//
data.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join('')
}
this.measuresList = data.measuresList // map
this.gasList = data.gasList // map
if (this.pd.WORK_LEVEL === '二级') {
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
} else if (this.pd.WORK_LEVEL === '一级') {
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.AUDIT_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3]
} else {
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.AUDIT_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
this.pd.APPROVE_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4]
}
}).catch((e) => {
this.listLoading = false
})
},
//
findCharIndex(str, char, num) {
let index = str.indexOf(char)
for (let i = 0; i < num - 1; i++) {
index = str.indexOf(char, index + 1)
}
return index
},
goBack() {
this.$parent.activeName = 'List'
}
}
}
</script>
<style lang="sass" scoped>
.print-approval-p10
padding: 20px 0
span
vertical-align: middle
.bbg
width: 300px
.print-approval-img
width: 200px
height: 97px
display: inline-block
img
width: 100%
height: 100%
</style>
<style scoped lang="scss">
.table-ui td{
line-height: unset;
}
.app-container{
margin-bottom: 50px;
}
.level-title {
display: flex;
justify-content: space-between;
}
.pdf-content[name=pdf-box]{
position: absolute;
left: -999999px;
.level-title {
h1{
font-size: 20px;
}
.level-code{
font-size: 20px;
}
}
td{
font-size: 20px;
}
.bbg {
width: 180px;
}
}
</style>

View File

@ -0,0 +1,401 @@
<template>
<div class="app-container">
<el-form label-width="50px">
<el-row>
<el-col :span="4">
<el-form-item label="编号">
<el-input v-model="KEYWORDS" placeholder="请输入编号"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="状态">
<el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column :reserve-selection="true" type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="CHECK_NO" label="编号" />
<el-table-column prop="WORK_LEVEL" label="作业级别" />
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
<el-table-column prop="ANALYZE_USER_NAME" label="分析人" />
<el-table-column prop="CONFIRM_USER_NAME" label="作业负责人" />
<el-table-column prop="LEADER_USER_NAME" label="所在单位负责人" />
<el-table-column prop="AUDIT_USER_NAME" label="安全管理部门负责人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.AUDIT_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="APPROVE_USER_NAME" label="动火审批人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.APPROVE_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="MONITOR_USER_NAME" label="动火前在岗班长" />
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
<el-table-column prop="STATUS" label="审核状态">
<template slot-scope="{row}">
<span v-if="row.APPLY_STATUS==0"></span>
<span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span>
<span v-else-if="row.APPLY_STATUS==2">所在单位待审核</span>
<span v-else-if="row.APPLY_STATUS==4">安全管理部门待审核</span>
<span v-else-if="row.APPLY_STATUS==5">动火审批人待审核</span>
<span v-else-if="row.APPLY_STATUS==6">班长待验票</span>
<span v-else-if="row.APPLY_STATUS==7">待验收</span>
<span v-else-if="row.APPLY_STATUS==8">验收归档</span>
<span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span>
<span v-else-if="row.APPLY_STATUS==-4">所在单位审核打回</span>
<span v-else-if="row.APPLY_STATUS==-5">安全管理部门审核打回</span>
<span v-else-if="row.APPLY_STATUS==-6">动火审批人审核打回</span>
<span v-else-if="row.APPLY_STATUS==-7">班长验票打回</span>
<span v-else-if="row.APPLY_STATUS==-8">验收打回</span>
<span v-else-if="row.APPLY_STATUS==-99">已作废班长未验票</span>
<span v-else-if="row.APPLY_STATUS==-98">已作废未进行气体检测</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="230">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-plus" @click="goChart(row)"></el-button>
<el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.HOTWORK_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<!-- <el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>-->
<!-- <el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>-->
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1550px">
<el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center>
<el-step title="动火作业提交">
<template slot="description">
<div>{{ getProcessMessage().title }}</div>
<div>{{ getProcessMessage().USER_NAME }}</div>
<div>{{ getProcessMessage().OPERATTIME }}</div>
</template>
</el-step>
<el-step title="作业负责人意见">
<template slot="description">
<div>{{ pd.CONFIRM_USER_NAME }}</div>
<div>{{ pd.CONFIRM_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="所在单位意见">
<template slot="description">
<div>{{ pd.LEADER_USER_NAME }}</div>
<div>{{ pd.LEADER_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="安全管理部门意见" >
<template slot="description">
<div v-if="getIsPase('AUDIT_USER_NAME')">{{ '' }}</div>
<div v-else>{{ pd.AUDIT_USER_NAME }}</div>
<div>{{ pd.AUDIT_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="动火审批人意见">
<template slot="description">
<div v-if="getIsPase('APPROVE_USER_NAME')">{{ '' }}</div>
<div>{{ pd.APPROVE_USER_NAME }}</div>
<div>{{ pd.APPROVE_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="班长验票">
<template slot="description">
<div>{{ pd.MONITOR_USER_NAME }}</div>
<div>{{ pd.MONITOR_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="完成验收">
<template slot="description">
<div>{{ pd.ACCEPT_USER_NAME }}</div>
<div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="验收归档">
<template slot="description">
<div>{{ pd.ACCEPT_USER_NAME }}</div>
<div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div>
</template>
</el-step>
</el-steps>
<div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between">
<div v-if="pd.GUARDIAN_USER_SIGNER_TIME">
<div style="color: #13ce66">
监护人{{ pd.GUARDIAN_USER_NAME }}已签字
</div>
</div>
<div v-if="!pd.GUARDIAN_USER_SIGNER_TIME">
<div style="color: red">
监护人{{ pd.GUARDIAN_USER_NAME }}未签字
</div>
</div>
<div v-if="pd.CONFESS_USER_SIGNER_TIME">
<div style="color: #13ce66">
安全交底人{{ pd.CONFESS_USER_NAME }}已签字
</div>
</div>
<div v-if="!pd.CONFESS_USER_SIGNER_TIME">
<div style="color: red">
安全交底人{{ pd.CONFESS_USER_NAME }}未签字
</div>
</div>
<div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME">
<div style="color: #13ce66">
接受交底人{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字
</div>
</div>
<div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME">
<div style="color: red">
接受交底人{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<!-- <el-button @click="dialogFormShow = false"> </el-button>-->
<el-button type="primary" @click="dialogFormShow = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
export default {
components: { Pagination },
directives: { waves },
data() {
return {
listLoading: true,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
total: 0,
KEYWORDS: '',
varList: [],
pd: [],
multipleSelectionAll: [], //
multipleSelection: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
replyVarList: [], // REPLY
replyListQuery: {
page: 1,
limit: 10
},
replyTotal: 0,
dialogFormHuifuShow: false,
statusList: [
{ ID: '', NAME: '请选择' },
{ ID: '0', NAME: '动火作业待提交' },
{ ID: '1', NAME: '作业负责人待审核' },
{ ID: '2', NAME: '所在单位待审核' },
{ ID: '4', NAME: '安全管理部门待审核' },
{ ID: '5', NAME: '动火审批人待审核' },
{ ID: '6', NAME: '班长待验票' },
{ ID: '7', NAME: '待验收' },
{ ID: '8', NAME: '验收归档' },
{ ID: '-2', NAME: '作业负责人审核打回' },
{ ID: '-4', NAME: '所在单位审核打回' },
{ ID: '-5', NAME: '安全管理部门审核打回' },
{ ID: '-6', NAME: '动火审批人审核打回' },
{ ID: '-7', NAME: '班长验票打回' },
{ ID: '-8', NAME: '验收打回' },
{ ID: '-99', NAME: '已作废(班长未验票)' },
{ ID: '-98', NAME: '已作废(未进行气体检测)' }
],
STATUS: '',
DEPTIDS: ''
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.HOTWORK_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
goKeyReset() {
this.KEYWORDS = ''
this.STATUS = ''
this.getQuery()
},
//
getList() {
this.listLoading = true
requestFN(
'/hotwork/cfd/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS,
DEPTIDS: this.DEPTIDS, tm: new Date().getTime()
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
//
hasButton() {
var keys = 'hotwork:add,hotwork:del,hotwork:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.hotworkfhadminadd //
this.del = data.hotworkfhadmindel //
this.edit = data.hotworkfhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
goChart(row) {
this.pd = row
this.dialogFormShow = true
},
getStatus() {
if (this.pd.APPLY_STATUS <= '0') {
return 0
}
if (this.pd.APPLY_STATUS == '1') {
return 1
}
if (this.pd.APPLY_STATUS == '2') {
return 2
}
if (this.pd.APPLY_STATUS == '4') {
return 3
}
if (this.pd.APPLY_STATUS == '5') {
return 4
}
if (this.pd.APPLY_STATUS == '6') {
return 5
}
if (this.pd.APPLY_STATUS == '7') {
return 6
}
if (this.pd.APPLY_STATUS == '8') {
return 8
}
},
getProcessStatus() {
if (this.pd.APPLY_STATUS < '0') {
return 'error'
} else {
return 'process'
}
},
getProcessMessage() {
let obj = {}
if (this.pd.APPLY_STATUS >= '0') {
obj = {
title: '',
USER_NAME: this.pd.APPLY_USER_NAME,
OPERATTIME: this.pd.CREATTIME
}
}
if (this.pd.APPLY_STATUS == '-2') {
obj = {
title: '作业负责人审核打回',
USER_NAME: this.pd.CONFIRM_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-4') {
obj = {
title: '所在单位审核打回',
USER_NAME: this.pd.LEADER_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-5') {
obj = {
title: '安全管理部门审核打回',
USER_NAME: this.pd.AUDIT_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-6') {
obj = {
title: '动火审批人审核打回',
USER_NAME: this.pd.APPROVE_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-7') {
obj = {
title: '班长验票打回',
USER_NAME: this.pd.MONITOR_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-8') {
obj = {
title: '验收打回',
AUSER_NAME: this.pd.ACCEPT_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-99') {
obj = {
title: '已作废(班长未验票)',
AUSER_NAME: '',
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-98') {
obj = {
title: '已作废(未进行气体检测)',
AUSER_NAME: '',
OPERATTIME: this.pd.OPERATTIME
}
}
return obj
},
getIsPase(col) {
if (!this.pd[col]) {
return '已跳过'
}
},
goDetail(id) {
this.$parent.activeName = 'Detail'
this.$parent.HOTWORK_ID = id
}
}
}
</script>

View File

@ -0,0 +1,33 @@
<template>
<div>
<List v-show="activeName=='List'" ref="list" />
<Detail v-if="activeName=='Detail'"/>
</div>
</template>
<script>
import List from './components/list'
import Detail from './components/detail'
export default {
components: {
List: List,
Detail: Detail
},
data() {
return {
activeName: 'List',
HOTWORK_ID: ''
}
},
watch: {
activeName(val) {
if (val == 'List') {
this.$refs.list.getQuery()
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,454 @@
<template>
<div>
<div id="printTest" class="app-container print-work">
<el-page-header content="审批表详情" class="no-print" @back="goBack"/>
<div v-for="pdf in 2" :key="pdf" :name="pdf === 2 ? 'pdf-box' : ''" class="pdf-content">
<table :class="['table-ui','table-ui' + pdf]">
<tr>
<td colspan="4" style="border: none">
<div class="level-title mt-20">
<h1>动火安全作业票</h1>
<div class="level-code">编号:{{ pd.CHECK_NO }}</div>
</div>
</td>
</tr>
<tr>
<td class="bbg">作业申请单位</td>
<td>{{ pd.APPLY_DEPARTMENT_NAME }}</td>
<td class="bbg">作业申请时间</td>
<td>{{ pd.CREATTIME }}</td>
</tr>
<tr>
<td class="bbg">作业内容</td>
<td>{{ pd.WORK_CONTENT }}</td>
<td class="bbg">动火地点及动火部位</td>
<td>{{ pd.WORK_PLACE }}</td>
</tr>
<tr>
<td class="bbg">动火作业级别</td>
<td>{{ pd.WORK_LEVEL }}</td>
<td class="bbg">动火方式</td>
<td>{{ pd.WORK_FUNCTION }}</td>
</tr>
<tr>
<td class="bbg">动火人及证书编号</td>
<td colspan="3">{{ pd.WORK_USER }}</td>
</tr>
<tr>
<td class="bbg">作业单位</td>
<td>{{ pd.CONFIRM_DEPARTMENT_NAME }}</td>
<td class="bbg">作业负责人</td>
<td>{{ pd.CONFIRM_USER_NAME }}</td>
</tr>
<template v-for="(item,index) in gasList">
<tr :key="index">
<td class="bbg">气体取样分析时间</td>
<td>{{ item.ANALYZE_TIME }}</td>
<td class="bbg">代表性气体</td>
<td>{{ item.ANALYZE_PLACE }}</td>
</tr>
<tr :key="index">
<td class="bbg">分析结果/%</td>
<td>{{ item.ANALYZE_RESULT }}</td>
<td class="bbg">分析人</td>
<td>{{ item.ANALYZE_USER }}</td>
</tr>
</template>
<tr>
<td class="bbg">关联的其他特殊作业及安全作业票编号</td>
<td colspan="3">{{ pd.SPECIAL_WORK }}</td>
</tr>
<tr>
<td class="bbg">风险辨识结果</td>
<td colspan="3">{{ pd.RISK_IDENTIFICATION }}</td>
</tr>
<tr>
<td class="bbg">动火作业实施时间</td>
<td colspan="3">{{ pd.WORK_START_DATE }}{{ pd.WORK_END_DATE }}</td>
</tr>
<tr>
<td colspan="4">
<table class="table-ui">
<tr>
<td>序号</td>
<td>安全措施</td>
<td style="width: 100px;">是否涉及</td>
<td style="width: 100px;">确认人</td>
</tr>
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ index + 1 }}</td>
<td>
{{ item.PROTECTIVE_MEASURES }}
<!-- <template v-if="item.QUESTION1">-->
<!-- {{ item.QUESTION1 }}({{ item.ANSWER1 }})-->
<!-- </template>-->
<!-- <template v-if="item.QUESTION2">-->
<!-- {{ item.QUESTION2 }}({{ item.ANSWER2 }}) {{ item.QUESTION3 }}({{ item.ANSWER3 }})-->
<!-- </template>-->
</td>
<td>
<span v-if="item.STATUS=='1'"><input type="radio" disabled checked>&nbsp;&nbsp;&nbsp;</span>
<span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span>
</td>
<td>
{{ item.CONFIRM_NAME }}
</td>
</tr>
<tr v-if="pd.CONFIRM_USER_MEASURES || pd.LEADER_USER_MEASURES || pd.AUDIT_USER_MEASURES || pd.APPROVE_USER_MEASURES || pd.MONITOR_USER_MEASURES">
<td>{{ measuresList.length + 1 }}</td>
<td colspan="3">
<div v-if="pd.CONFIRM_USER_MEASURES" style="display: flex;justify-content: space-between;">
<span>其他安全措施{{ pd.CONFIRM_USER_MEASURES }}</span>
<span>编制人{{ pd.CONFIRM_USER_NAME }}</span>
</div>
<div v-if="pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.LEADER_USER_MEASURES }}</span>
<span>编制人{{ pd.LEADER_USER_NAME }}</span>
</div>
<div v-if="pd.AUDIT_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.AUDIT_USER_MEASURES }}</span>
<span>编制人{{ pd.AUDIT_USER_NAME }}</span>
</div>
<div v-if="pd.APPROVE_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.APPROVE_USER_MEASURES }}</span>
<span>编制人{{ pd.APPROVE_USER_NAME }}</span>
</div>
<div v-if="pd.MONITOR_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.MONITOR_USER_MEASURES }}</span>
<span>编制人{{ pd.MONITOR_USER_NAME }}</span>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="bbg">安全交底人</td>
<td colspan="10">
<div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr>
<td class="bbg">接受交底人</td>
<td colspan="10">
<div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr>
<td class="bbg">监护人</td>
<td colspan="3">
<div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.CONFIRM_USER_SIGNER_PATH">
<td colspan="6">
<div>作业负责人意见{{ pd.CONFIRM_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFIRM_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.CONFIRM_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.LEADER_USER_SIGNER_PATH">
<td colspan="6">
<div>所在单位意见{{ pd.LEADER_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.LEADER_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.AUDIT_USER_SIGNER_PATH">
<td colspan="6">
<div>安全管理部门意见{{ pd.AUDIT_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.AUDIT_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.AUDIT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.APPROVE_USER_SIGNER_PATH">
<td colspan="6">
<div>动火审批人意见{{ pd.APPROVE_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.APPROVE_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.APPROVE_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.MONITOR_USER_SIGNER_PATH">
<td colspan="6">
<div>动火前岗位当班班长验票情况{{ pd.MONITOR_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.MONITOR_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.MONITOR_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收{{ pd.ACCEPT_CONTENT }}</div>
<div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
</table>
</div>
</div>
<!-- <div class="ui-height" />-->
<div class="ui-foot">
<!-- <el-button v-print="'#printTest'" icon="el-icon-printer" type="primary"> </el-button>-->
<el-button type="primary" icon="el-icon-printer" @click="handle2PDF">PDF</el-button>
<el-button icon="el-icon-arrow-left" @click="goBack"> </el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import dateformat from '@/utils/dateformat'
import JsPDF from 'jspdf'
import html2Canvas from 'html2canvas'
export default {
data() {
return {
config: config,
HOTWORK_ID: this.$parent.HOTWORK_ID, // ID
pd: [], //
measuresList: [],
gasList: [],
imgList: [],
imgList1: [],
otherProtectiveMeasures: []
}
},
created() {
this.getData()
},
methods: {
handle2PDF() {
const loading = this.$loading({
lock: true,
text: '正在生成,请稍候...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
const elements = document.querySelectorAll('div[name="pdf-box"]')
console.log(elements)
this.html2pdf(this.pd.CHECK_NO + '审批表详情', elements, loading)
},
html2pdf(filename, els, loading) {
const flagArr = []
for (let i = 0, len = els.length; i < len; i++) {
flagArr.push(0)
}
console.log(flagArr)
runself(0)
const pdf = new JsPDF('', 'pt', 'a4') // A4
function runself(index) {
const html = els[index]
html2Canvas(html, {
allowTaint: true,
taintTest: false,
logging: false,
useCORS: true,
scale: 2 //
}).then(canvas => {
// eslint-disable-next-line one-var
var ctx = canvas.getContext('2d'),
a4w = 532.28, a4h = 781.89, // A4210mm x 297mm10mm190x277 pt:592.28 * 841.89
renderedHeight = 0
const allTrs = html.querySelectorAll('tr')
while (renderedHeight < canvas.height) {
let imgHeight = Math.floor(a4h * canvas.width / a4w) // A4
for (let i = 0; i < allTrs.length; i++) {
const tr = allTrs[i]
const trHeight = tr.offsetHeight + tr.offsetTop
console.log('offsetHeight:' + tr.offsetHeight + 'offsetTop:' + tr.offsetTop + 'offsetParent:' + tr.offsetParent.offsetTop)
if (trHeight * 2 > (imgHeight + renderedHeight)) {
const btr = allTrs[i - 1]
const btrHeight = btr.offsetHeight + btr.offsetTop
console.log('i:' + (i - 1) + 'btrHeight:' + btrHeight)
imgHeight = btrHeight * 2 - renderedHeight
break
}
}
var page = document.createElement('canvas')
page.width = canvas.width
page.height = Math.min(imgHeight, canvas.height - renderedHeight)//
// getImageDatacanvas
page.getContext('2d').putImageData(ctx.getImageData(0, renderedHeight, canvas.width, Math.min(imgHeight, canvas.height - renderedHeight)), 0, 0)
pdf.addImage(page.toDataURL('image/jpeg', 1.0), 'JPEG', 30, 30, a4w, Math.min(a4h, a4w * page.height / page.width)) // 10mm
renderedHeight += imgHeight
if (renderedHeight < canvas.height) {
pdf.addPage()//
}
}
if (index < els.length - 1) {
pdf.addPage()
}
return 1
}).then(item => {
flagArr[index] = item
if (flagArr.every(f => f === 1)) {
pdf.save(filename)
}
index++
if (index < els.length) {
runself(index)
} else {
loading.close()
}
})
}
},
validStr(str) {
if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true }
return false
},
formatTime(date, column) {
if (date) {
return dateformat(date, 'YYYY年MM月DD日HH时mm分')
} else {
return ''
}
},
formatDate(date, column) {
if (date) {
return dateformat(date, 'YYYY-MM-DD')
} else {
return ''
}
},
getRowKey(row) {
return row.HOTWORK_ID
},
getData() {
this.listLoading = true
requestFN(
'/hotwork/cfd/goEdit',
{
HOTWORK_ID: this.HOTWORK_ID
}
).then((data) => {
this.listLoading = false
this.pd = data.pd // map
console.log(this.pd)
this.imgList = data.imgList
this.imgList1 = data.imgList1
for (let i = 0; i < data.measuresList.length; i++) {
//
const PROTECTIVE_MEASURES = data.measuresList[i].PROTECTIVE_MEASURES.split('')
for (let j = 1; j <= 3; j++) {
//
if (this.findCharIndex(PROTECTIVE_MEASURES, '', j) !== -1) {
//
PROTECTIVE_MEASURES.splice(
this.findCharIndex(PROTECTIVE_MEASURES, '', j) + 1,
0,
data.measuresList[i]['ANSWER' + j]
)
}
}
//
data.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join('')
}
this.measuresList = data.measuresList // map
this.gasList = data.gasList // map
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.AUDIT_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
this.pd.APPROVE_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4]
}).catch((e) => {
this.listLoading = false
})
},
//
findCharIndex(str, char, num) {
let index = str.indexOf(char)
for (let i = 0; i < num - 1; i++) {
index = str.indexOf(char, index + 1)
}
return index
},
goBack() {
this.$parent.activeName = 'List'
}
}
}
</script>
<style lang="sass" scoped>
.print-approval-p10
padding: 20px 0
span
vertical-align: middle
.bbg
width: 300px
.print-approval-img
width: 200px
height: 97px
display: inline-block
img
width: 100%
height: 100%
</style>
<style scoped lang="scss">
.table-ui td{
line-height: unset;
}
.app-container{
margin-bottom: 50px;
}
.level-title {
display: flex;
justify-content: space-between;
}
.pdf-content[name=pdf-box]{
position: absolute;
left: -999999px;
.level-title {
h1{
font-size: 20px;
}
.level-code{
font-size: 20px;
}
}
td{
font-size: 20px;
}
.bbg {
width: 180px;
}
}
</style>

View File

@ -0,0 +1,192 @@
<template>
<div class="app-container">
<el-form label-width="50px">
<el-row>
<el-col :span="4">
<el-form-item label="编号">
<el-input v-model="KEYWORDS" placeholder="请输入编号"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column :reserve-selection="true" type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="CHECK_NO" label="编号" />
<el-table-column prop="WORK_LEVEL" label="作业级别" />
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
<el-table-column prop="ANALYZE_USER_NAME" label="分析人" />
<el-table-column prop="CONFIRM_USER_NAME" label="作业单位负责人" />
<el-table-column prop="LEADER_USER_NAME" label="所在单位负责人" />
<el-table-column prop="AUDIT_USER_NAME" label="安全管理部门负责人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.AUDIT_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="APPROVE_USER_NAME" label="动火审批人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.APPROVE_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="MONITOR_USER_NAME" label="动火前在岗部门" />
<el-table-column prop="ACCEPT_USER_NAME" label="验收人" />
<el-table-column prop="STATUS" label="审核状态">
<template slot-scope="{row}">
<span v-if="row.APPLY_STATUS==0"></span>
<span v-else-if="row.APPLY_STATUS==1">作业负责人待确认</span>
<span v-else-if="row.APPLY_STATUS==2">所在单位待确认</span>
<span v-else-if="row.APPLY_STATUS==4">安全管理部门待审核</span>
<span v-else-if="row.APPLY_STATUS==5">待审批</span>
<span v-else-if="row.APPLY_STATUS==6">班长待验票</span>
<span v-else-if="row.APPLY_STATUS==7">待验收</span>
<span v-else-if="row.APPLY_STATUS==8">已归档</span>
<span v-else-if="row.APPLY_STATUS==-2">作业负责人确认打回</span>
<span v-else-if="row.APPLY_STATUS==-4">所在单位打回</span>
<span v-else-if="row.APPLY_STATUS==-5">安全管理部门打回</span>
<span v-else-if="row.APPLY_STATUS==-6">审批打回</span>
<span v-else-if="row.APPLY_STATUS==-7">班长验票打回</span>
<span v-else-if="row.APPLY_STATUS==-8">验收打回</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="130">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.HOTWORK_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<!-- <el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>-->
<!-- <el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>-->
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
export default {
components: { Pagination },
directives: { waves },
data() {
return {
listLoading: true,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
total: 0,
KEYWORDS: '',
varList: [],
pd: [],
multipleSelectionAll: [], //
multipleSelection: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
replyVarList: [], // REPLY
replyListQuery: {
page: 1,
limit: 10
},
replyTotal: 0,
dialogFormHuifuShow: false,
statusList: [
{ ID: '', NAME: '请选择' },
{ ID: '0', NAME: '待提交' },
{ ID: '1', NAME: '作业人待确认' },
{ ID: '2', NAME: '监护人待确认' },
{ ID: '3', NAME: '车间负责人待确认' },
{ ID: '4', NAME: '安全部门待审核' },
{ ID: '5', NAME: '待审批' },
{ ID: '6', NAME: '班长待验票' },
{ ID: '7', NAME: '待验收' },
{ ID: '8', NAME: '已归档' },
{ ID: '-2', NAME: '作业负责人确认打回' },
{ ID: '-3', NAME: '监护人确认打回' },
{ ID: '-4', NAME: '车间负责人打回' },
{ ID: '-5', NAME: '安全部门打回' },
{ ID: '-6', NAME: '审批打回' },
{ ID: '-7', NAME: '班长验票打回' },
{ ID: '-8', NAME: '验收打回' }
],
STATUS: '',
DEPTIDS: ''
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.HOTWORK_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
goKeyReset() {
this.KEYWORDS = ''
this.getQuery()
},
//
getList() {
this.listLoading = true
requestFN(
'/hotwork/cfd/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS, APPLY_STATUS: '8',
DEPTIDS: this.DEPTIDS, tm: new Date().getTime()
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
//
hasButton() {
var keys = 'hotwork:add,hotwork:del,hotwork:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.hotworkfhadminadd //
this.del = data.hotworkfhadmindel //
this.edit = data.hotworkfhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
goDetail(id) {
this.$parent.activeName = 'Detail'
this.$parent.HOTWORK_ID = id
}
}
}
</script>

View File

@ -0,0 +1,33 @@
<template>
<div>
<List v-show="activeName=='List'" ref="list" />
<Detail v-if="activeName=='Detail'"/>
</div>
</template>
<script>
import List from './components/list'
import Detail from './components/detail'
export default {
components: {
List: List,
Detail: Detail
},
data() {
return {
activeName: 'List',
HOTWORK_ID: ''
}
},
watch: {
activeName(val) {
if (val == 'List') {
this.$refs.list.getQuery()
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -99,7 +99,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="施工相关方:" prop="UNITS_ID">
<el-select v-model="form.UNITS_ID" placeholder="请选择施工相关方" style="width: 100%;" @change="getUnitUser">
<el-select v-model="form.UNITS_ID" filterable placeholder="请选择施工相关方" style="width: 100%;" @change="getUnitUser">
<el-option v-for="item in unitsList" :key="item.UNITS_ID" :label="item.UNITS_NAME" :value="item.UNITS_ID" />
</el-select>
</el-form-item>
@ -149,7 +149,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="状态:" prop="STATE">
<el-select v-model="form.STATE" style="width: 100%;">
<el-select v-model="form.STATE" disabled style="width: 100%;">
<el-option v-for="item in stateList" :key="item.ID" :label="item.NAME" :value="item.ID" />
</el-select>
</el-form-item>
@ -406,9 +406,11 @@ export default {
// { ID: '0', NAME: '' },
// { ID: '1', NAME: '' },
// { ID: '2', NAME: '' }
{ ID: '0', NAME: '未开工' },
{ ID: '1', NAME: '进行中' },
{ ID: '2', NAME: '已结束' }
{ ID: '2', NAME: '已结束' },
{ ID: '-1', NAME: '开工申请中' },
{ ID: '-2', NAME: '结束申请中' }
],
smsList: [
{ ID: '0', NAME: '是' },
@ -452,17 +454,17 @@ export default {
immediate: false
},
'form.ENDTIME': {
handler: function() {
// eslint-disable-next-line no-unused-vars
var time = formatDate(new Date(), 'YYYY-MM-DD')
if (this.form.ENDTIME > time) {
this.form.STATE = '1'
} else {
this.form.STATE = '2'
}
}
},
// 'form.ENDTIME': {
// handler: function() {
// // eslint-disable-next-line no-unused-vars
// var time = formatDate(new Date(), 'YYYY-MM-DD')
// if (this.form.ENDTIME > time) {
// this.form.STATE = '1'
// } else {
// this.form.STATE = '2'
// }
// }
// },
TRAINING_TIME: function(newData, oldData) {
if (!newData) {
@ -481,6 +483,8 @@ export default {
this.dialogType = 'edit'
this.form.OUTSOURCED_ID = this.$parent.OUTSOURCED_ID
this.getData()
} else {
this.form.STATE = '0'
}
this.getCorpInfo()
// this.getTreeList()

View File

@ -39,21 +39,14 @@
<tr>
<td class="tbg">计划工期</td>
<td colspan="3">{{ pd.STARTTIME }} {{ pd.ENDTIME }}</td>
<!--<td>{{ pd.STARTTIME }}</td>
<td class="tbg">计划工期结束时间</td>
<td>{{ pd.ENDTIME}}</td>-->
</tr>
<tr>
<!--<td class="tbg">合同起止时间</td>
<td>{{ pd.CONTRACT_STIME }} {{ pd.CONTRACT_ETIME }}</td>-->
<td class="tbg">施工相关方</td>
<td colspan="3">{{ pd.UNITS_NAME }}</td>
</tr>
<tr>
<td class="tbg">合同号</td>
<td>{{ pd.CONTRACT_NUM }}</td>
<td class="tbg">监理单位名称</td>
<td>{{ pd.MANAGE_CORPS_NAME }}</td>
<td colspan="3">{{ pd.CONTRACT_NUM }}</td>
</tr>
<tr>
<td class="tbg">施工相关方</td>
<td colspan="3">{{ pd.UNITS_NAME }}</td>
</tr>
<tr>
<td class="tbg">相关方单位工程负责人</td>
@ -61,21 +54,10 @@
<td class="tbg">相关方单位负责人手机</td>
<td>{{ pd.UNITS_PHONE }}</td>
</tr>
<!--<tr v-if="pd.UNITS_APTITUDE">
<td class="tbg">相关方单位资质</td>
&lt;!&ndash; <td colspan="2">{{ pd.UNITS_APTITUDE }}</td>&ndash;&gt;
<td colspan="3"><el-button type="primary" @click="downloadFile(pd.UNITS_APTITUDE)"></el-button></td>
<tr>
<td class="tbg">监理单位名称</td>
<td colspan="3">{{ pd.MANAGE_CORPS_NAME }}</td>
</tr>
<tr v-if="pd.MANAGE_APTITUDE">
<td class="tbg">监理单位资质</td>
&lt;!&ndash; <td colspan="2">{{ pd.MANAGE_APTITUDE }}</td>&ndash;&gt;
<td colspan="3"><el-button type="primary" @click="downloadFile(pd.MANAGE_APTITUDE)"></el-button></td>
</tr>
<tr v-if="pd.MEASURES">
<td class="tbg">安全技术措施</td>
&lt;!&ndash; <td colspan="2">{{ pd.MEASURES }}</td>&ndash;&gt;
<td colspan="3"><el-button type="primary" @click="downloadFile(pd.MEASURES)"></el-button></td>
</tr>-->
<tr>
<td class="tbg">监理单位工程负责人</td>
<td>{{ pd.MANAGE_PIC }}</td>
@ -93,8 +75,11 @@
<!-- <span v-if="pd.STATE == 0"></span>-->
<!-- <span v-if="pd.STATE == 1"></span>-->
<!-- <span v-if="pd.STATE == 2"></span>-->
<span v-if="pd.STATE == 0"></span>
<span v-if="pd.STATE == 1"></span>
<span v-if="pd.STATE == 2"></span>
<span v-if="pd.STATE == -1"></span>
<span v-if="pd.STATE == -2"></span>
</td>
</tr>
<!--<tr>
@ -137,6 +122,12 @@
&lt;!&ndash; <td colspan="2">{{ pd.SHEET }}</td>&ndash;&gt;
<td colspan="3"><el-button type="primary" @click="downloadFile(pd.SHEET)"></el-button></td>
</tr>-->
<tr>
<td class="tbg">重点工程定位</td>
<td v-if="pd.WORK_LATITUDE && pd.WORK_LONGITUDE" colspan="2">{{ pd.WORK_LONGITUDE }},{{ pd.WORK_LATITUDE }}</td>
<td v-else colspan="2">未定位</td>
<td><el-button type="success" @click="handleMap(pd)"></el-button></td>
</tr>
<tr v-for="(item,index) in file9" :key="index">
<td class="tbg">安全管理协议{{ index +1 }}</td>
<td colspan="2">{{ item.FILE_NAME }}</td>
@ -169,12 +160,26 @@
<div class="ui-foot">
<el-button icon="el-icon-arrow-left" @click="goBack"> </el-button>
</div>
<el-dialog :visible.sync="dialogFormMap" title="定位" width="1050px" class="dy-dialog">
<div id="map" />
<div slot="footer" class="dialog-footer">
<span>经度</span>
<el-input v-model="form.LONGITUDE" style="width: 200px" placeholder="请输入内容" disabled />
<span>纬度</span>
<el-input v-model="form.LATITUDE" style="width: 200px" placeholder="请输入内容" disabled />
<el-button @click="dialogFormMap = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import TiandiMap from '../../../../components/TianMap/TiandiMap'
export default {
components: { TiandiMap },
data() {
return {
pd: {
@ -232,6 +237,14 @@ export default {
value: 'id',
children: 'nodes',
label: 'name'
},
//
map: null,
marker: null,
dialogFormMap: false,
form: {
LONGITUDE: '',
LATITUDE: ''
}
}
},
@ -315,6 +328,78 @@ export default {
goBack() {
this.$parent.activeName = 'List'
this.$parent.OUTSOURCED_ID = ''
},
/**
* 初始化天地图对象
*/
initTDT() {
return new Promise((resolve, reject) => {
if (window.T) {
console.log('天地图初始化成功...')
resolve(window.T)
reject('error')
}
}).then(T => {
window.T = T
})
},
/**
* 初始化地图
* @param {*} lng 经度
* @param {*} lat 纬度
* @param {*} zoom 缩放比例(1~18)
*/
initMap(lng, lat, zoom) {
this.initTDT().then((T) => {
const imageURL = 'http://t0.tianditu.gov.cn/img_w/wmts?' + 'SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles' + '&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e8a16137fd226a62a23cc7ba5c9c78ce'
//
this.lay = new window.T.TileLayer(imageURL, { minZoom: 1, maxZoom: 18 })
//
this.map = new window.T.Map('map')
this.initCenter(lng, lat, zoom)
})
},
initCenter(lng, lat, zoom) {
//
if (!this.form.LONGITUDE && !this.form.LATITUDE) {
this.map.centerAndZoom(new window.T.LngLat(119.58, 39.94), zoom)
this.marker && this.map.removeOverLay(this.marker)
} else {
this.map.centerAndZoom(new window.T.LngLat(lng, lat), zoom)
this.marker && this.map.removeOverLay(this.marker)
this.form.LONGITUDE = lng
this.form.LATITUDE = lat
this.marker = new window.T.Marker(new window.T.LngLat(lng, lat))
//
this.map.addOverLay(this.marker)
}
//
this.map.setMapType(window.TMAP_HYBRID_MAP)
//
this.map.enableScrollWheelZoom()
//
this.map.enableInertia()
//
this.map.addEventListener('click', this.MapClick)
},
MapClick(event) {
this.marker && this.map.removeOverLay(this.marker)
this.form.LONGITUDE = event.lnglat.getLng()
this.form.LATITUDE = event.lnglat.getLat()
this.marker = new window.T.Marker(new window.T.LngLat(event.lnglat.getLng(), event.lnglat.getLat()))
//
this.map.addOverLay(this.marker)
},
handleMap(row) {
this.form.LATITUDE = ''
this.form.LONGITUDE = ''
this.dialogFormMap = true
this.form.LATITUDE = this.pd.WORK_LATITUDE
this.form.LONGITUDE = this.pd.WORK_LONGITUDE
this.$nextTick(() => {
if (!this.map) this.initMap(this.form.LONGITUDE, this.form.LATITUDE, 16)
else this.initCenter(this.form.LONGITUDE, this.form.LATITUDE, 16)
})
}
}
}
@ -324,5 +409,8 @@ export default {
.tbg{width:180px;
/*text-align: left;*/
}
#map{
width: 1000px;
height: 500px;
}
</style>

View File

@ -137,15 +137,19 @@
</el-table-column>
<el-table-column prop="STATE" label="状态" width="100" >
<template slot-scope="{row}">
<span v-if="row.STATE == 0"></span>
<span v-if="row.STATE == 1"></span>
<span v-if="row.STATE == 2"></span>
<span v-if="row.STATE == -1"></span>
<span v-if="row.STATE == -2"></span>
</template>
</el-table-column>
<el-table-column prop="OUTSOURCED_CREATOR_NAME" label="创建人" show-overflow-tooltip />
<el-table-column label="操作" align="center" width="400">
<template slot-scope="{row}">
<el-button type="success" icon="el-icon-view" size="mini" @click="goDetail(row.OUTSOURCED_ID)"></el-button>
<el-button v-if="loginUserId == row.CREATOR" type="success" icon="el-icon-view" size="mini" @click="handleJie(row.OUTSOURCED_ID)"></el-button>
<el-button v-if="row.CREATOR==userInfoUserId && row.STATE==-1" type="success" icon="el-icon-view" size="mini" @click="handleState(row.OUTSOURCED_ID)"></el-button>
<el-button v-if="row.CREATOR==userInfoUserId && row.STATE==-2" type="success" icon="el-icon-view" size="mini" @click="handleJie(row.OUTSOURCED_ID)"></el-button>
<el-button v-show="edit" v-if="loginUserId == row.CREATOR" type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.OUTSOURCED_ID)"></el-button>
<el-button v-show="del" v-if="loginUserId == row.CREATOR" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.OUTSOURCED_ID)"></el-button>
</template>
@ -183,6 +187,7 @@ export default {
directives: { waves },
data() {
return {
userInfoUserId: JSON.parse(sessionStorage.getItem('user')).USER_ID,
qrcodeStr: '',
listLoading: true,
add: false,
@ -233,8 +238,11 @@ export default {
dialogType: 'add',
loginUserId: JSON.parse(sessionStorage.getItem('user')).USER_ID,
stateList: [
{ ID: '0', NAME: '未开工' },
{ ID: '1', NAME: '进行中' },
{ ID: '2', NAME: '已结束' }
{ ID: '2', NAME: '已结束' },
{ ID: '-1', NAME: '开工申请中' },
{ ID: '-2', NAME: '结束申请中' }
]
}
},
@ -326,27 +334,50 @@ export default {
this.$parent.OUTSOURCED_ID = ID
},
handleState(id) {
this.$confirm('确定要开工吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/outsourced/updateState',
{
OUTSOURCED_ID: id,
OPERATOR: this.userInfoUserId, //
STATE: '1'
}
).then((data) => {
this.$message({
message: '已开工',
type: 'success'
})
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
handleJie(id) {
this.$confirm('确定要结束吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then((data) => {
}).then(() => {
this.listLoading = true
requestFN(
'/outsourced/jie',
'/outsourced/updateState',
{
OUTSOURCED_ID: id
OUTSOURCED_ID: id,
OPERATOR: this.userInfoUserId, //
STATE: '2'
}
).then((data) => {
if (data.code == '500') {
this.listLoading = false
this.$message({
message: data.msg,
type: 'error'
})
return
}
this.$message({
message: '已结束',
type: 'success'

View File

@ -13,7 +13,7 @@
</tr>
<tr>
<td class="tbg">被处罚单位</td>
<td>{{ pd.OUTSOURCED_NAME }}</td>
<td>{{ pd.UNITS_NAME }}</td>
</tr>
<tr>
<td class="tbg">被处罚人</td>

View File

@ -0,0 +1,350 @@
<template>
<div class="app-container">
<el-form label-width="60px">
<el-row>
<el-col :span="4">
<el-form-item label="文件名">
<el-input v-model="KEYWORDS" placeholder="请输入关键字"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="10px">
<el-button v-waves type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table
v-loading="listLoading"
ref="multipleTable"
:data="varList"
:row-key="getRowKey"
:header-cell-style="{
'font-weight': 'bold',
'color': '#000'
}"
tooltip-effect="dark"
border
fit
highlight-current-row
>
<el-table-column
:reserve-selection="true"
type="selection"
width="55"
align="center"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="NAME" label="文件名" />
<el-table-column prop="imgPatn" label="图片" >
<template slot-scope="{row}">
<el-tooltip placement="top">
<template slot="content">
<viewer>
<img :src="config.fileUrl + row.FILEPATH" width="100" height="100">
</viewer>
</template>
<el-tag>预览</el-tag>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="500">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="downloadFile(row.RISKWARNING_ID)"></el-button>
<el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="handleDelete(row.RISKWARNING_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog :visible.sync="dialogForm" title="上传文件" width="600px">
<el-form ref="form" :model="form" :rules="rules" label-width="110px" style="width: 500px;">
<el-form-item label="文件名" prop="NAME">
<el-input v-model="form.NAME" placeholder="这里输入名称..." />
</el-form-item>
<el-form-item label="附件">
<el-upload
ref="upload"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-change="handleChangeIMG"
:before-upload="beforeFileUpload"
:auto-upload="false"
:limit="1"
:class="{hide:hideUpload}"
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img :src="dialogImageUrl" width="100%" alt="">
</el-dialog>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogForm = false"> </el-button>
<el-button type="primary" @click="upload"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import { upload } from '@/utils/upload'
export default {
components: { Pagination },
directives: { waves },
data() {
return {
config: config,
listLoading: true,
dialogForm: false,
dialogImageUrl: '',
dialogVisible: false,
add: true,
del: true,
edit: true,
listQuery: {
page: 1,
limit: 20
},
total: 0,
KEYWORDS: '',
dates: [],
varList: [],
hideUpload: false,
form: {
NAME: '', //
FFILE: []
},
rules: {
NAME: [{ required: true, message: '名称不能为空', trigger: 'blur' }]
}
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.RISKWARNING_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
getList() {
this.listLoading = true
requestFN(
'/riskwarning/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS,
TYPE: '4'
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
//
handleAdd() {
this.hideUpload = false
this.resetForm()
if (this.$refs.upload) {
this.$refs.upload.clearFiles()
}
this.dialogForm = true
},
beforeFileUpload(file) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
return false
} else {
this.form.FFILE = file
}
},
handlePictureCardPreview(file, fileList) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleChangeIMG(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
}
this.hideUpload = fileList.length >= 1
},
handleRemove(file, fileList) {
this.hideUpload = fileList.length >= 1
},
//
upload() {
this.$refs.form.validate(valid => {
if (this.$refs.upload.uploadFiles.length < 1) {
this.$message({
message: '请上传图片',
type: 'error'
})
return false
}
this.$refs.upload.submit()
const loading = this.$loading({
lock: true,
text: '上传中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
const formData = new FormData()
Object.keys(this.form).map(key => {
formData.append(key, this.form[key])
})
formData.append('TYPE', '4')
upload(
'/riskwarning/add',
formData
).then((data) => {
this.dialogForm = false
this.getList()
loading.close()
}).catch((e) => {
loading.close()
})
})
},
downloadFile(RISKWARNING_ID) {
this.$confirm('确定要下载此文件吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = false
// '/mfolder/download?RISKWARNING_ID=' + RISKWARNING_ID,
window.location.href = config.httpurl + 'riskwarning/goDownload?RISKWARNING_ID=' + RISKWARNING_ID
}).catch(() => {
this.listLoading = false
})
this.listLoading = false
},
handleDelete(id) {
this.$confirm('确定要删除吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/riskwarning/delete',
{
RISKWARNING_ID: id
}
).then(() => {
this.$message({
message: '删除成功',
type: 'success'
})
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
batchDel() {
const _selectData = this.$refs.multipleTable.selection
if (_selectData == null || _selectData.length == 0) {
this.$message({
message: '请选中要删除的项...',
type: 'error'
})
return false
}
const ids = _selectData.map((item, index) => {
return item.RISKWARNING_ID
}).join(',')
this.$confirm('确定要删除选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/riskwarning/deleteAll',
{
DATA_IDS: ids
}
).then(() => {
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.$refs.multipleTable.clearSelection()
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
//
hasButton: function() {
var keys = 'riskwarning:add,riskwarning:del,riskwarning:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.riskwarningfhadminadd //
this.del = data.riskwarningfhadmindel //
this.edit = data.riskwarningfhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
goKeyReset() {
this.KEYWORDS = ''
this.getList()
},
resetForm() {
this.form = {
NAME: '', //
FFILE: []
}
}
}
}
</script>
<style>
.hide .el-upload--picture-card {
display: none;
}
</style>

View File

@ -0,0 +1,350 @@
<template>
<div class="app-container">
<el-form label-width="60px">
<el-row>
<el-col :span="4">
<el-form-item label="文件名">
<el-input v-model="KEYWORDS" placeholder="请输入关键字"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="10px">
<el-button v-waves type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table
v-loading="listLoading"
ref="multipleTable"
:data="varList"
:row-key="getRowKey"
:header-cell-style="{
'font-weight': 'bold',
'color': '#000'
}"
tooltip-effect="dark"
border
fit
highlight-current-row
>
<el-table-column
:reserve-selection="true"
type="selection"
width="55"
align="center"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="NAME" label="文件名" />
<el-table-column prop="imgPatn" label="图片" >
<template slot-scope="{row}">
<el-tooltip placement="top">
<template slot="content">
<viewer>
<img :src="config.fileUrl + row.FILEPATH" width="100" height="100">
</viewer>
</template>
<el-tag>预览</el-tag>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="500">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="downloadFile(row.RISKWARNING_ID)"></el-button>
<el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="handleDelete(row.RISKWARNING_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog :visible.sync="dialogForm" title="上传文件" width="600px">
<el-form ref="form" :model="form" :rules="rules" label-width="110px" style="width: 500px;">
<el-form-item label="文件名" prop="NAME">
<el-input v-model="form.NAME" placeholder="这里输入名称..." />
</el-form-item>
<el-form-item label="附件">
<el-upload
ref="upload"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-change="handleChangeIMG"
:before-upload="beforeFileUpload"
:auto-upload="false"
:limit="1"
:class="{hide:hideUpload}"
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img :src="dialogImageUrl" width="100%" alt="">
</el-dialog>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogForm = false"> </el-button>
<el-button type="primary" @click="upload"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import { upload } from '@/utils/upload'
export default {
components: { Pagination },
directives: { waves },
data() {
return {
config: config,
listLoading: true,
dialogForm: false,
dialogImageUrl: '',
dialogVisible: false,
add: true,
del: true,
edit: true,
listQuery: {
page: 1,
limit: 20
},
total: 0,
KEYWORDS: '',
dates: [],
varList: [],
hideUpload: false,
form: {
NAME: '', //
FFILE: []
},
rules: {
NAME: [{ required: true, message: '名称不能为空', trigger: 'blur' }]
}
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.RISKWARNING_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
getList() {
this.listLoading = true
requestFN(
'/riskwarning/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS,
TYPE: '3'
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
//
handleAdd() {
this.hideUpload = false
this.resetForm()
if (this.$refs.upload) {
this.$refs.upload.clearFiles()
}
this.dialogForm = true
},
beforeFileUpload(file) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
return false
} else {
this.form.FFILE = file
}
},
handlePictureCardPreview(file, fileList) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleChangeIMG(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
}
this.hideUpload = fileList.length >= 1
},
handleRemove(file, fileList) {
this.hideUpload = fileList.length >= 1
},
//
upload() {
this.$refs.form.validate(valid => {
if (this.$refs.upload.uploadFiles.length < 1) {
this.$message({
message: '请上传图片',
type: 'error'
})
return false
}
this.$refs.upload.submit()
const loading = this.$loading({
lock: true,
text: '上传中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
const formData = new FormData()
Object.keys(this.form).map(key => {
formData.append(key, this.form[key])
})
formData.append('TYPE', '3')
upload(
'/riskwarning/add',
formData
).then((data) => {
this.dialogForm = false
this.getList()
loading.close()
}).catch((e) => {
loading.close()
})
})
},
downloadFile(RISKWARNING_ID) {
this.$confirm('确定要下载此文件吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = false
// '/mfolder/download?RISKWARNING_ID=' + RISKWARNING_ID,
window.location.href = config.httpurl + 'riskwarning/goDownload?RISKWARNING_ID=' + RISKWARNING_ID
}).catch(() => {
this.listLoading = false
})
this.listLoading = false
},
handleDelete(id) {
this.$confirm('确定要删除吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/riskwarning/delete',
{
RISKWARNING_ID: id
}
).then(() => {
this.$message({
message: '删除成功',
type: 'success'
})
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
batchDel() {
const _selectData = this.$refs.multipleTable.selection
if (_selectData == null || _selectData.length == 0) {
this.$message({
message: '请选中要删除的项...',
type: 'error'
})
return false
}
const ids = _selectData.map((item, index) => {
return item.RISKWARNING_ID
}).join(',')
this.$confirm('确定要删除选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/riskwarning/deleteAll',
{
DATA_IDS: ids
}
).then(() => {
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.$refs.multipleTable.clearSelection()
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
//
hasButton: function() {
var keys = 'riskwarning:add,riskwarning:del,riskwarning:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.riskwarningfhadminadd //
this.del = data.riskwarningfhadmindel //
this.edit = data.riskwarningfhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
goKeyReset() {
this.KEYWORDS = ''
this.getList()
},
resetForm() {
this.form = {
NAME: '', //
FFILE: []
}
}
}
}
</script>
<style>
.hide .el-upload--picture-card {
display: none;
}
</style>

View File

@ -25,7 +25,7 @@
<el-table-column label="操作" align="center" width="200">
<template slot-scope="{row}">
<el-button icon="el-icon-view" size="mini" @click="goView(row.PROMISEPEOPLE_ID)"></el-button>
<el-button v-show="row.ISSIGN == 0" type="danger" icon="el-icon-delete" size="mini" @click="removeUnsignedPeopleDetail(row.PROMISEPEOPLE_ID)"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="removeUnsignedPeopleDetail(row.PROMISEPEOPLE_ID)"></el-button>
</template>
</el-table-column>
</el-table>

View File

@ -0,0 +1,373 @@
<template>
<div>
<div class="app-container print-work">
<el-page-header content="相关方人员关联分公司" class="no-print" @back="goBack"/>
<el-container>
<el-main>
<el-form label-width="100px">
<el-row>
<el-col :span="4">
<el-form-item label="关键字搜索">
<el-input v-model="searchForm.KEYWORDS" style="width: 150px" placeholder="请输入关键字"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="20px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column :reserve-selection="true" type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="RELEVANT_UNIT_NAME" label="相关方名称" />
<el-table-column prop="NAME" label="姓名" />
<el-table-column prop="PHONE" label="电话" />
<el-table-column prop="IS_SPECIAL_JOB" label="是否特殊工种">
<template slot-scope="scope">
<span v-if="scope.row.IS_SPECIAL_JOB=='0'"></span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column prop="ISFLOW" label="是否流动人员" >
<template slot-scope="scope">
<span v-if="scope.row.ISFLOW=='0'"></span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-document" size="mini" @click="toUserDetail(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</el-main>
</el-container>
<div/>
<UserBaseInfoView ref="userbaseinfoview" :base_info_url="baseInfourl"/>
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import UserBaseInfoView from '@/components/UserBaseInfo/UserBaseInfoView'
export default {
components: { Pagination, UserBaseInfoView },
directives: { waves },
data() {
return {
baseInfourl: '/corpFgs/getCorpUserDetail',
dayTime: [],
dialogFormEdit: false,
dialogFormEditState: false,
listLoading: true,
userListLoading: true,
treeLoading: false,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
form: {
FGS_ID: '',
CORPINFO_ID: ''
},
total: 0,
KEYWORDS: '',
ISFLOW: '',
DEPART_STATE: '',
varList: [],
multipleSelectionAll: [], //
multipleSelection: [], //
dialogType: 'saveUser',
disabledLCSelect: false,
displayLCSelect: 'display: block',
disabledLCInput: true,
displayLCInput: 'display: none',
LearnerCategoryList: [],
searchForm: {
FGS_ID: '',
CORPINFO_ID: '',
KEYWORDS: ''
},
config: config,
dialogVisible: false,
roleList: [],
postList: [],
dialogFormDaoru: false,
daoruFrom: {
FFILE: '',
FFILEName: ''
},
PARENTID: '0',
fgsList: [],
userList: [],
selectedRows: [], //
USER_ID: '',
LOGIN_USER: JSON.parse(sessionStorage.getItem('user')).USER_ID
}
},
watch: {
},
created() {
this.form.FGS_ID = this.$parent.FGS_ID
this.searchForm.FGS_ID = this.$parent.FGS_ID
this.form.CORPINFO_ID = this.$parent.CORPINFO_ID
this.searchForm.CORPINFO_ID = this.$parent.CORPINFO_ID
this.getList()
this.hasButton()
},
methods: {
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
goKeyReset() {
this.searchForm.KEYWORDS = ''
this.getList()
},
goBack() {
this.$parent.activeName = 'List'
},
getList() {
this.listLoading = true
requestFN(
'/corpFgs/corpUserFgsList?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
...this.searchForm
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.fgsList = data.fgsList
console.log(this.varList)
this.total = data.page.totalResult
}).catch((e) => {
this.listLoading = false
})
},
getRowKey(row) {
return row.CORP_USER_FGS_ID
},
//
hasButton() {
var keys = 'user:add,user:del,user:edit'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.userfhadminadd
this.del = data.userfhadmindel
this.edit = data.userfhadminedit
}).catch((e) => {
this.listLoading = false
})
},
handleAdd() {
this.dialogFormEdit = true
this.getUserList()
this.$refs.userListTable.clearSelection()
},
//
toUserDetail(ROW) {
this.$refs.userbaseinfoview.openWindow(ROW.USER_ID, ROW.CORPINFO_ID)
}
}
}
</script>
<style lang="scss" scoped>
.el-dialog__body{
padding: 0;
background: red;
}
.mark_up{
margin-bottom:20px;
margin-left: 110px;
}
.icons-container {
margin: 0;
overflow: hidden;
.grid {
position: relative;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
.icon-item {
margin-bottom: 10px;
height: 70px;
text-align: center;
width: 100px;
float: left;
font-size: 24px;
color: #24292e;
cursor: pointer;
span {
display: block;
font-size: 14px;
margin-top: 10px;
}
}
.disabled {
pointer-events: none;
}
}
.filter-btn-group{
position: relative;
}
.filter-flot{
position: absolute;
right: 0;
top: 0;
}
.uploader{
width: 570px;
display: flex;
align-items: center;
}
.el-form-item__content{
line-height: 1;
}
.uo-flex{
display: flex
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
border: 1px dashed #d9d9d9;
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<style lang="sass" scoped>
.el-row
margin-bottom: 16px
&:last-child
margin-bottom: 0
.form-group
display: flex
align-items: center
margin-right: 20px
.form-label
padding: 9px 15px
font-size: 14px
width: 240px
font-weight: 400
line-height: 20px
text-align: right
margin-bottom: 0
.star
color: red
padding-right: 4px
.input-block
flex: 1
min-height: 36px
position: relative
.disContent
padding: 0 20px
display: flex
align-items: center
flex-wrap: wrap
.img-div
position: relative
margin: auto 10px 10px 10px
width: 20px
height: 20px
border-radius: 4px
&>img
width: 2%
height: 3%
.disContent-hide
position: absolute
width: 100%
height: 100%
border-radius: 4px
background-color: rgba(48, 48, 48, 0.59)
display: none
top: 0
left: 0
.Delete
position: absolute
bottom: 14px
right: 10px
font-size: 16px
color: white
cursor: pointer
.editCss
.Delete
font-size: 16px
right: 90px
.yuLan
position: absolute
bottom: 23px
right: 50px
font-size: 16px
color: white
cursor: pointer
.yuLanImg
position: absolute
bottom: 0
right: 0
width: 100%
height: 100%
opacity: 0
.img-div:hover .disContent-hide
display: block
.pitchCss
border: 1px solid #202e78
transition: all linear 0.1s
width: 116px
height: 116px
</style>

View File

@ -0,0 +1,339 @@
<template>
<div class="icons-container">
<el-container>
<el-main>
<el-form label-width="100px">
<el-row>
<el-col :span="4">
<el-form-item label="相关方">
<el-select v-model="searchForm.CORPINFO_ID" filterable clearable placeholder="请选择相关方">
<el-option v-for="item in fgsList" :key="item.CORPINFO_ID" :label="item.RELEVANT_UNIT_NAME" :value="item.CORPINFO_ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="20px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column :reserve-selection="true" type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="RELEVANT_UNIT_NAME" label="相关方名称" />
<el-table-column prop="SOCIAL_CODE" label="统一社会信用代码" />
<el-table-column prop="CONTACT_PERSON" label="主要负责人" />
<el-table-column prop="NUM" label="已关联人数" />
<el-table-column label="操作">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</el-main>
</el-container>
<div/>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
export default {
components: { Pagination },
directives: { waves },
data() {
return {
dayTime: [],
dialogFormEdit: false,
dialogFormEditState: false,
listLoading: true,
treeLoading: false,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
total: 0,
KEYWORDS: '',
ISFLOW: '',
DEPART_STATE: '',
varList: [],
multipleSelectionAll: [], //
multipleSelection: [], //
dialogType: 'saveUser',
disabledLCSelect: false,
displayLCSelect: 'display: block',
disabledLCInput: true,
displayLCInput: 'display: none',
LearnerCategoryList: [],
searchForm: {
CORPINFO_ID: ''
},
config: config,
dialogVisible: false,
roleList: [],
postList: [],
dialogFormDaoru: false,
daoruFrom: {
FFILE: '',
FFILEName: ''
},
PARENTID: '0',
fgsList: [],
datePage: 0,
USER_ID: '',
LOGIN_USER: JSON.parse(sessionStorage.getItem('user')).USER_ID
}
},
watch: {
},
created() {
this.getList()
this.hasButton()
},
methods: {
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
goKeyReset() {
this.searchForm.FGS_ID = ''
this.getList()
},
getList() {
this.listLoading = true
requestFN(
'/corpFgs/corpFgsList?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
...this.searchForm,
FGS_ID: JSON.parse(sessionStorage.getItem('user')).CORPINFO_ID
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.fgsList = data.fgsList
console.log(this.varList)
this.total = data.page.totalResult
}).catch((e) => {
this.listLoading = false
})
},
getRowKey(row) {
return row.CORP_FGS_ID
},
//
hasButton() {
var keys = 'user:add,user:del,user:edit'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.userfhadminadd
this.del = data.userfhadmindel
this.edit = data.userfhadminedit
}).catch((e) => {
this.listLoading = false
})
},
//
handleEdit(row) {
this.$parent.FGS_ID = row.FGS_ID
this.$parent.CORPINFO_ID = row.CORPINFO_ID
this.$parent.activeName = 'Edit'
}
}
}
</script>
<style lang="scss" scoped>
.el-dialog__body{
padding: 0;
background: red;
}
.mark_up{
margin-bottom:20px;
margin-left: 110px;
}
.icons-container {
margin: 0;
overflow: hidden;
.grid {
position: relative;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
.icon-item {
margin-bottom: 10px;
height: 70px;
text-align: center;
width: 100px;
float: left;
font-size: 24px;
color: #24292e;
cursor: pointer;
span {
display: block;
font-size: 14px;
margin-top: 10px;
}
}
.disabled {
pointer-events: none;
}
}
.filter-btn-group{
position: relative;
}
.filter-flot{
position: absolute;
right: 0;
top: 0;
}
.uploader{
width: 570px;
display: flex;
align-items: center;
}
.el-form-item__content{
line-height: 1;
}
.uo-flex{
display: flex
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
border: 1px dashed #d9d9d9;
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<style lang="sass" scoped>
.el-row
margin-bottom: 16px
&:last-child
margin-bottom: 0
.form-group
display: flex
align-items: center
margin-right: 20px
.form-label
padding: 9px 15px
font-size: 14px
width: 240px
font-weight: 400
line-height: 20px
text-align: right
margin-bottom: 0
.star
color: red
padding-right: 4px
.input-block
flex: 1
min-height: 36px
position: relative
.disContent
padding: 0 20px
display: flex
align-items: center
flex-wrap: wrap
.img-div
position: relative
margin: auto 10px 10px 10px
width: 20px
height: 20px
border-radius: 4px
&>img
width: 2%
height: 3%
.disContent-hide
position: absolute
width: 100%
height: 100%
border-radius: 4px
background-color: rgba(48, 48, 48, 0.59)
display: none
top: 0
left: 0
.Delete
position: absolute
bottom: 14px
right: 10px
font-size: 16px
color: white
cursor: pointer
.editCss
.Delete
font-size: 16px
right: 90px
.yuLan
position: absolute
bottom: 23px
right: 50px
font-size: 16px
color: white
cursor: pointer
.yuLanImg
position: absolute
bottom: 0
right: 0
width: 100%
height: 100%
opacity: 0
.img-div:hover .disContent-hide
display: block
.pitchCss
border: 1px solid #202e78
transition: all linear 0.1s
width: 116px
height: 116px
</style>

View File

@ -0,0 +1,35 @@
<template>
<div>
<List v-show="activeName=='List'" ref="list" />
<Edit v-if="activeName=='Edit'" />
</div>
</template>
<script>
import List from './components/list'
import Edit from './components/edit'
export default {
components: {
List: List,
Edit: Edit
},
data() {
return {
activeName: 'List',
FGS_ID: '',
CORPINFO_ID: ''
}
},
watch: {
activeName(val) {
if (val == 'List') {
this.$refs.list.getList()
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -48,7 +48,7 @@
<el-table-column label="操作" align="center" width="200">
<template slot-scope="{row}">
<el-button v-show="edit" type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row)"></el-button>
<el-button v-show="del" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.trainingplan_ID)"></el-button>
<el-button v-show="del" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.TRAININGPLAN_ID)"></el-button>
</template>
</el-table-column>
</el-table>
@ -263,7 +263,7 @@ export default {
requestFN(
'/trainingplan/delete',
{
trainingplan_ID: id
TRAININGPLAN_ID: id
}
).then(() => {
this.$message({

View File

@ -172,7 +172,7 @@
<el-form-item label="用工形式" prop="EMPLOYMENT_FORM">
<Treeselect
:options="employmentTypeList"
:normalizer="normalizer"
:normalizer="SpecialNormalizer"
v-model="dataForm.EMPLOYMENT_FORM"
placeholder="请选择用工形式"
no-options-text="暂无数据"
@ -288,11 +288,8 @@
<div style="flex:1;">
<el-autocomplete v-model="addressKeyword" :fetch-suggestions="querySearch" :trigger-on-focus="false" placeholder="请输入详细地址" style="width:100%" @select="handleSelect" />
</div>
<!-- <el-input v-model="addressKeyword" style="width: 200px" placeholder="请输入内容" />-->
<!-- <el-button slot="append" icon="el-icon-search" @click="mapNameChange"/>-->
</div>
</bm-control>
<!-- <bm-local-search :keyword="addressKeyword" :auto-viewport="true"/>-->
</baidu-map>
<div slot="footer" class="dialog-footer">
<span>经度</span>
@ -300,7 +297,6 @@
<span>纬度</span>
<el-input v-model="LATITUDE" style="width: 200px" placeholder="请输入内容" disabled />
<el-button @click="dialogFormMap = false"> </el-button>
<!-- <el-button type="primary" @click="setPosition"> </el-button>-->
</div>
</el-dialog>
@ -466,6 +462,13 @@ export default {
children: node.nodes
}
},
SpecialNormalizer(node) {
return {
id: node.BIANMA,
label: node.NAME,
children: node.nodes
}
},
defaultProps: {
children: 'nodes',
label: 'name',

View File

@ -98,17 +98,17 @@
<el-table-column :formatter="(row) => formatDictionaryLabel(row, '1')" prop="SELECT_FORM" label="选取形式" />
<el-table-column prop="STATE" label="审核状态">
<template slot-scope="{row}">
<span v-if="row.STATE =='0'"></span>
<span v-if="row.STATE =='1'"></span>
<span v-if="row.STATE =='2'"></span>
<span v-if="row.STATE =='3'"></span>
<span v-if="row.STATE =='4'"></span>
<span v-if="row.STATE === '0'"></span>
<span v-if="row.STATE === '1'"></span>
<span v-if="row.STATE === '2'"></span>
<span v-if="row.STATE === '3'"></span>
<span v-if="row.STATE === '4'"></span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200px">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-view" size="mini" @click="goView(row.CORPINFO_ID)"></el-button>
<el-button v-if="row.STATE == '1'" type="primary" icon="el-icon-s-check" size="mini" @click="handleAudit(row.CORPINFO_ID)"></el-button>
<el-button v-if="row.STATE === '1'" type="primary" icon="el-icon-s-check" size="mini" @click="handleAudit(row.CORPINFO_ID)"></el-button>
</template>
</el-table-column>
</el-table>
@ -216,14 +216,6 @@ export default {
dialogType: 'add',
employmentList: [],
selectList: [],
/* employmentList: [
{ ID: '0', NAME: '劳务承包' },
{ ID: '1', NAME: '劳务派遣' }
],
selectList: [
{ ID: '0', NAME: '招标' },
{ ID: '1', NAME: '竞争性谈判' }
], */
stateList: [
{ ID: '0', NAME: '未填报' },
{ ID: '1', NAME: '待审核' },
@ -432,22 +424,6 @@ export default {
).then((data) => {
this.corpTypeList = data.list
})
/* requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '688d2cf1c6cd4dab999a0106e09aec83'
}
).then((data) => {
this.ecnomicTypeList = data.list
}) */
/* requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '37b045e160c04ddba851073b4e510cc9'
}
).then((data) => {
this.enterpriseSizeList = data.list
}) */
},
resetForm() {
this.form = {

View File

@ -20,13 +20,6 @@
/>
</el-form-item>
</el-col>
<!-- <el-col :span="6">-->
<!-- <el-form-item label="申请状态">-->
<!-- <el-select v-model="AUDIT_STATUS" placeholder="请选择申请状态" clearable >-->
<!-- <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="4">
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
@ -65,7 +58,7 @@
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<template slot-scope="{row}">
<el-button v-if="(row.AUDIT_STATUS === 1 || row.AUDIT_STATUS === 0 ) && (row.MANAGER_USER_ID == USER_ID && row.managerCount != row.USER_COUNT ) || (row.TERRITORIALITY_USER_ID == USER_ID && row.territorialityCount != row.USER_COUNT ) " type="success" icon="el-icon-edit" size="mini" @click="handleAudit(row.TRAININGBATCH_ID)"></el-button>
<el-button v-if="(row.AUDIT_STATUS === 1 || row.AUDIT_STATUS === 0 ) && (row.MANAGER_USER_ID === USER_ID && row.managerCount !== row.USER_COUNT ) || (row.TERRITORIALITY_USER_ID === USER_ID && row.territorialityCount !== row.USER_COUNT ) " type="success" icon="el-icon-edit" size="mini" @click="handleAudit(row.TRAININGBATCH_ID)"></el-button>
<el-button v-else type="primary" icon="el-icon-edit" size="mini" @click="handleShow(row.TRAININGBATCH_ID)"></el-button>
</template>
</el-table-column>

View File

@ -9,12 +9,6 @@
width="60%">
<div class="level-title mt-20" style="display: flex;justify-content: space-between;">
<h1>申请信息</h1>
<!-- <span v-if="pd.AUDIT_STATUS === 0"></span>-->
<!-- <span v-if="pd.AUDIT_STATUS === 1"></span>-->
<!-- <span v-if="pd.AUDIT_STATUS === 2"></span>-->
<!-- <span v-if="pd.AUDIT_STATUS === 3"></span>-->
<!-- <span v-if="pd.AUDIT_STATUS === -1"></span>-->
<!-- <span v-if="pd.AUDIT_STATUS === -2"></span>-->
</div>
<table class="table-ui" style="margin-bottom: 20px;">
<tr>
@ -30,7 +24,7 @@
<th>安全监督部门</th>
<td>{{ pd.SUPERVISION_DEPT_NAME }}</td>
<th>审核人员</th>
<td>{{ pd.SUPERVISION_USER_USERNAME }}</td>
<td>{{ pd.SUPERVISION_USER_NAME }}</td>
<th>审核时间</th>
<td>{{ pd.SUPERVISION_TIME }}</td>
</tr>
@ -38,15 +32,15 @@
<th>主管部门</th>
<td>{{ pd.MANAGER_DEPT_NAME }}</td>
<th>审核人员</th>
<td>{{ pd.MANAGER_USER_USERNAME }}</td>
<td>{{ pd.MANAGER_USER_NAME }}</td>
<th>审核时间</th>
<td>{{ pd.MANAGER_TIME }}</td>
</tr>
<tr>
<th>管理部门</th>
<th>集团单位</th>
<td>{{ pd.ERRITORIALITY_DEPT_NAME }}</td>
<th>审核人员</th>
<td>{{ pd.ERRITORIALITY_USER_USERNAME }}</td>
<td>{{ pd.ERRITORIALITY_USER_NAME }}</td>
<th>审核时间</th>
<td>{{ pd.TERRITORIALITY_TIME }}</td>
</tr>
@ -59,33 +53,47 @@
<div class="level-title">
<h1>申请人员列表</h1>
</div>
<el-table ref="multipleTable" :data="userList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="USERNAME" label="用户名" />
<el-table-column prop="NAME" label="姓名" />
<el-table-column prop="DEPARTMENT_NAME" label="部门" />
<el-table-column prop="STATUS" label="评审状态" >
<el-table
ref="multipleTable"
:data="userList"
:header-cell-style="{'font-weight': 'bold','color': '#000'}"
tooltip-effect="dark"
border
fit
highlight-current-row>
<el-table-column type="selection" width="55" align="center"/>
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="USERNAME" label="用户名"/>
<el-table-column prop="NAME" label="姓名"/>
<el-table-column prop="DEPARTMENT_NAME" label="部门"/>
<el-table-column prop="STATUS" label="评审状态">
<template slot-scope="{row}">
<span >{{ getType(row) }}</span>
<span>{{ getType(row) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="240">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleShow(row)"></el-button> <el-button
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleShow(row)"></el-button>
<el-button
v-if="row.STATUS === 2 && row.TRAIN_STATUS === '1' && row.SUPERVISION_STATE == 1 && row.MANAGER_STATE == 1 && row.TERRITORIALITY_STATE==1"
type="success"
icon="el-icon-edit"
size="mini"
@click="getUserInfo(row)">电子合格证
</el-button>
<el-button v-if="(row.STATUS === 0 || row.STATUS === 1) && viewState ==='1' && ((row.MANAGER_USER_ID == USER_ID && row.MANAGER_STATE === 9 ) || (row.TERRITORIALITY_USER_ID == USER_ID && row.TERRITORIALITY_STATE === 9)) && row.SUPERVISION_STATE != 0 && row.MANAGER_STATE != 0 && row.TERRITORIALITY_STATE != 0" type="success" icon="el-icon-edit" size="mini" @click="examineShow(row)"></el-button>
<el-button
v-if="(row.STATUS === 0 || row.STATUS === 1) && viewState ==='1' && ((row.MANAGER_USER_ID === USER_ID && row.MANAGER_STATE === 9 && row.STEP_STATUS === '1' ) || (row.TERRITORIALITY_USER_ID === USER_ID && row.TERRITORIALITY_STATE === 9 && (row.STEP_STATUS === '0' || !row.STEP_STATUS))) && row.SUPERVISION_STATE != 0 && row.MANAGER_STATE != 0 && row.TERRITORIALITY_STATE != 0"
type="success"
icon="el-icon-edit"
size="mini"
@click="examineShow(row)">审核
</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getUserList" />
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getUserList"/>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="closeWindow"> </el-button>
@ -150,7 +158,7 @@
<tr>
<th>民族</th>
<td>{{ userDetailForm.minzuName? userDetailForm.minzuName:'暂无信息' }}</td>
<td>{{ userDetailForm.minzuName ? userDetailForm.minzuName : '暂无信息' }}</td>
<th>婚姻状况</th>
<td>{{ userDetailForm.MARITALSTATUS === '0' ? '未婚' : '已婚' }}</td>
<th>政治面貌</th>
@ -162,17 +170,15 @@
<tr>
<th>户口所在地</th>
<td>{{ userDetailForm.HKLOCAL? userDetailForm.HKLOCAL:'暂无信息' }}</td>
<td>{{ userDetailForm.HKLOCAL ? userDetailForm.HKLOCAL : '暂无信息' }}</td>
<th>现住址</th>
<td>{{ userDetailForm.ADDRESS? userDetailForm.ADDRESS:'暂无信息' }}</td>
<td>{{ userDetailForm.ADDRESS ? userDetailForm.ADDRESS : '暂无信息' }}</td>
<th>联系电话</th>
<td>{{ userDetailForm.PHONE }}</td>
</tr>
<tr>
<th>文化程度</th>
<td>{{ userDetailForm.DEGREE_OF_EDUCATION_NAME }}</td>
<!-- <th>本企业从业开始日期</th>-->
<!-- <td>{{ userDetailForm.CORP_START_DATE }}</td>-->
<th>岗位名称(工种)</th>
<td colspan="3">{{ userDetailForm.POST_ID }}</td>
</tr>
@ -200,7 +206,7 @@
</tr>
<tr>
<th>是否参加三级安全培训</th>
<td >{{ formatLabel(userDetailForm.IS_LEVEL_THREE) }}</td>
<td>{{ formatLabel(userDetailForm.IS_LEVEL_THREE) }}</td>
<th v-if="userDetailForm.IS_LEVEL_THREE == 1"></th>
<td v-if="userDetailForm.IS_LEVEL_THREE == 1 && photosOfLevel.length>0" colspan="3">
<span>
@ -220,18 +226,18 @@
</tr>
<tr>
<th>是否缴纳保险</th>
<td >{{ formatLabelBf(userDetailForm.IS_BF) }}</td>
<td>{{ formatLabelBf(userDetailForm.IS_BF) }}</td>
<th>是否特殊工种</th>
<td >{{ formatLabel(userDetailForm.IS_SPECIAL_JOB) }}</td>
<td>{{ formatLabel(userDetailForm.IS_SPECIAL_JOB) }}</td>
<th>是否流动人员</th>
<td >{{ formatLabel(userDetailForm.ISFLOW) }}</td>
<td>{{ formatLabel(userDetailForm.ISFLOW) }}</td>
</tr>
</table>
<div v-if="userDetailForm.IS_SPECIAL_JOB == '1'" class="level-title">
<h1>特种作业人员信息</h1>
</div>
<table v-for="(item,index) in specialUsersList" :key="index" class="table-ui" style="margin-bottom: 20px;" >
<table v-for="(item,index) in specialUsersList" :key="index" class="table-ui" style="margin-bottom: 20px;">
<tr>
<th style="width: 150px">证书名称</th>
<td style="width: 150px">{{ item.CERTIFICATE }}</td>
@ -251,9 +257,6 @@
<td>{{ item.REVIEW_TIME }}</td>
<th>有效期</th>
<td colspan="3">{{ item.VALIDITY_TIME_START }} {{ item.VALIDITY_TIME_END }}</td>
<!-- &lt;!&ndash; <td v-if="!userEntryForm.TRAIN_AREA"></td>&ndash;&gt;-->
<!-- &lt;!&ndash; <td v-else style="color: #04a9f5; cursor: pointer" @click="showQRCode(userEntryForm.USER_ID)"></td>&ndash;&gt;-->
</tr>
</table>
<div slot="footer" class="dialog-footer">
@ -270,7 +273,7 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.IS_STATE===0" required label="审批意见">
<el-input v-model="form.OPINION" placeholder="这里输入审批意见..." />
<el-input v-model="form.OPINION" placeholder="这里输入审批意见..."/>
</el-form-item>
</el-form>
@ -423,6 +426,7 @@ export default {
this.form.USER_COUNT = this.pd.USER_COUNT
this.form.type = '2'
this.form.USER_ID = row.USER_ID
this.form.STEP_STATUS = row.STEP_STATUS
this.dialogVisible = true
},
//
@ -438,7 +442,6 @@ export default {
return
}
}
requestFN(
'/flowTrain/approveUser', { ...this.form }
).then((data) => {
@ -524,6 +527,11 @@ export default {
!(row.SUPERVISION_STATE === 0 || row.MANAGER_STATE === 0 || row.TERRITORIALITY_STATE === 0)) {
return '评审中'
}
},
tableRowClassName({ row, rowIndex }) {
if (row.STEP_STATUS === '3') {
return 'warning-row'
}
}
}
}

View File

@ -1,37 +1,82 @@
<template>
<div class="reform-bg">
<div class="reform-warp">
<div class="reform-content" style="padding: 60px">
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-row>
<el-col :span="12">
<el-form-item label="主管部门" prop="MAIN_DEPARTMENT">
<SelectTree
ref="treeSelect"
:clearable="false"
:options="treeData"
:props="defaultProps"
:node-key="'id'"
v-model="form.MAIN_DEPARTMENT"
placeholder="请选择主管部门"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户人" prop="CREATOR">
<el-input id="CREATOR" ref="CREATOR" v-model="CREATOR_NAME" maxlength="50" placeholder="开户人" title="开户人" disabled/>
</el-form-item>
</el-col>
</el-row>
<div class="reform-content" style="padding: 10px">
<el-form ref="form" :model="form" :rules="rules" label-width="200px">
<el-row>
<el-col :span="12">
<el-form-item label="相关方单位名称" prop="RELEVANT_UNIT_NAME">
<el-input id="RELEVANT_UNIT_NAME" ref="RELEVANT_UNIT_NAME" v-model="form.RELEVANT_UNIT_NAME" maxlength="255" placeholder="这里输入相关方单位名称..." title="相关方单位名称"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="统一社会信用代码" prop="SOCIAL_CODE">
<el-input id="SOCIAL_CODE" ref="SOCIAL_CODE" v-model="form.SOCIAL_CODE" maxlength="255" placeholder="这里输入统一社会信用代码..." title="统一社会信用代码"/>
<el-form-item label="股份监管部门" prop="MANAGER_DEPARTMENT_ID">
<Treeselect
:options="treeData"
:normalizer="normalizergfjg"
:flat="true"
:default-expand-level="0"
:props="defaultProps"
v-model="form.MANAGER_DEPARTMENT_ID"
multiple
placeholder="请选择部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
style="width: 100%;"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="基层单位监管部门" prop="COMPETENT_DEPT_ID">
<Treeselect
:options="treeDataSupervise"
:normalizer="normalizergfjg"
:flat="true"
:default-expand-level="0"
:props="defaultProps"
v-model="form.COMPETENT_DEPT_ID"
multiple
placeholder="请选择基层单位监管部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="股份主管部门" prop="MAIN_DEPARTMENT">
<Treeselect
:options="treeData"
:normalizer="normalizer"
v-model="form.MAIN_DEPARTMENT"
placeholder="请选择部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
style="width: 100%;"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="基层单位主管部门" prop="SUPERVISE_DEPARTMENT_ID">
<Treeselect
:options="treeDataSupervise"
:normalizer="normalizer"
v-model="form.SUPERVISE_DEPARTMENT_ID"
placeholder="请选择基层单位主管部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
@select="selectValue"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="开户人" prop="CREATOR">
<el-input id="CREATOR" ref="CREATOR" v-model="CREATOR_NAME" maxlength="50" placeholder="开户人" title="开户人" disabled/>
</el-form-item>
</el-col>
</el-row>
@ -51,12 +96,17 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="集团单位" prop="INDUSTRY">
<el-form-item label="集团单位" prop="CORP_TYPE">
<el-select v-model="form.CORP_TYPE" style="width: 100%">
<el-option v-for="item in corpTypeList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码" prop="SOCIAL_CODE">
<el-input id="SOCIAL_CODE" ref="SOCIAL_CODE" v-model="form.SOCIAL_CODE" maxlength="255" placeholder="这里输入统一社会信用代码..." title="统一社会信用代码"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
@ -104,22 +154,24 @@
<el-row>
<el-col :span="12">
<el-form-item label="用工形式" prop="EMPLOYMENT_FORM">
<el-select v-model="form.EMPLOYMENT_FORM" style="width: 100%;">
<el-option v-for="item in employmentTypeList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA" />
</el-select>
<Treeselect
:options="employmentTypeList"
:normalizer="normalizer"
v-model="form.EMPLOYMENT_FORM"
placeholder="请选择用工形式"
no-options-text="暂无数据"
no-children-text="暂无数据"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="选取形式" prop="SELECT_FORM">
<el-select v-model="form.SELECT_FORM" style="width: 100%;">
<el-form-item label="选取形式" prop="SELECT_FORMS">
<el-select v-model="form.SELECT_FORMS" multiple style="width: 100%;">
<el-option v-for="item in selectFormList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="流动人员比例(%)" prop="FLOATING_PERCENT">
<el-input id="FLOATING_PERCENT" ref="FLOATING_PERCENT" v-model="form.FLOATING_PERCENT" maxlength="255" placeholder="这里输入流动人员比例..." title="流动人员比例"/>
</el-form-item>
</el-form>
<div style="text-align: center">
<el-button :loading="submitButtonLoading" type="primary" @click="submitForm"></el-button>
@ -142,11 +194,8 @@
<div style="flex:1;">
<el-autocomplete v-model="addressKeyword" :fetch-suggestions="querySearch" :trigger-on-focus="false" placeholder="请输入详细地址" style="width:100%" @select="handleSelect" />
</div>
<!-- <el-input v-model="addressKeyword" style="width: 200px" placeholder="请输入内容" />-->
<!-- <el-button slot="append" icon="el-icon-search" @click="mapNameChange"/>-->
</div>
</bm-control>
<!-- <bm-local-search :keyword="addressKeyword" :auto-viewport="true"/>-->
</baidu-map>
<div slot="footer" class="dialog-footer">
<span>经度</span>
@ -167,14 +216,13 @@ import waves from '@/directive/waves' // waves directive
import { requestFN } from '@/utils/request'
import DeptSelectTree from '@/components/DeptSelectTree'
import SelectTree from '@/components/SelectTree'
// import fa from 'element-ui/src/locale/lang/fa'
// import { upload } from '@/utils/upload'
import Treeselect from '@riophae/vue-treeselect'
export default {
components: { Pagination, DeptSelectTree, SelectTree },
components: { Pagination, DeptSelectTree, SelectTree, Treeselect },
directives: { waves },
data() {
var hasName = (rule, value, callback) => {
const hasName = (rule, value, callback) => {
requestFN(
'/relevantunits/hasName',
{
@ -191,23 +239,6 @@ export default {
callback()
})
}
// var hasSocialCode = (rule, value, callback) => {
// requestFN(
// '/relevantunits/hasSocialCode',
// {
// SOCIAL_CODE: value,
// CORPINFO_ID: ''
//
// }
// ).then((data) => {
// if (data.pd) {
// callback(new Error(''))
// }
// callback()
// }).catch((e) => {
// callback()
// })
// }
return {
submitButtonLoading: false,
dialogFormMap: false,
@ -221,6 +252,21 @@ export default {
LONGITUDE: '',
LATITUDE: '',
treeData: [],
normalizergfjg(node) {
return {
id: node.id,
label: node.name,
children: node.nodes,
isDisabled: node.pId === '0'
}
},
normalizer(node) {
return {
id: node.id,
label: node.name,
children: node.nodes
}
},
areaList: [],
industryProps: {
lazy: true,
@ -261,10 +307,15 @@ export default {
checkStrictly: true
},
CREATOR_NAME: JSON.parse(sessionStorage.getItem('user')).NAME,
treeDataSupervise: [],
form: {
CREATOR: JSON.parse(sessionStorage.getItem('user')).USER_ID,
OPERATOR: JSON.parse(sessionStorage.getItem('user')).USER_ID,
MAIN_DEPARTMENT: '',
MAIN_DEPARTMENT: null,
MANAGER_DEPARTMENT_ID: null, //
COMPETENT_DEPT_ID: null, //
SUPERVISE_DEPARTMENT_ID: null,
SUPERVISE_CORPINFO_ID: '',
RELEVANT_UNIT_NAME: '',
SOCIAL_CODE: '',
LOCAL: '',
@ -275,8 +326,9 @@ export default {
LEGAL_PERSON: '',
CONTACT_PERSON: '',
CONTACT_TEL: '',
EMPLOYMENT_FORM: '',
EMPLOYMENT_FORM: null,
SELECT_FORM: '',
SELECT_FORMS: [],
FLOATING_PERCENT: '',
COMPANY_AREA: '',
POSSESSION: [],
@ -296,57 +348,31 @@ export default {
corpTypeList: [], //
rules: {
MAIN_DEPARTMENT: [{ required: true, message: '请选择主管部门', trigger: 'blur' }],
INDUSTRY: [{ required: false, message: '请选择所属行业', trigger: 'blur' }],
CORP_TYPE: [{ required: true, message: '请选择集团单位', trigger: 'blur' }],
RELEVANT_UNIT_NAME: [
{ required: true, message: '相关方单位名称不能为空', trigger: 'blur' },
{ validator: hasName, trigger: 'blur' }
],
CONTACT_TEL: [
{ min: 11, max: 11, message: '请输入11位手机号码', trigger: 'blur' },
{
pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,
message: '请输入正确的手机号码'
}
]
// SOCIAL_CODE: [
// { required: false, message: '', trigger: 'blur' },
// {
// pattern: /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/,
// message: ''
// },
// { validator: hasSocialCode, trigger: 'blur' }
// ],
// // LOCAL: [{ required: true, message: '', trigger: 'blur' }],
// // INDUSTRY: [{ required: true, message: '', trigger: 'blur' }],
// BUSINESS_ADDRESS: [{ required: false, message: '', trigger: 'blur' }],
// LONGITUDE: [{ required: false, message: '', trigger: 'blur' }],
// LATITUDE: [{ required: false, message: '', trigger: 'blur' }],
// LEGAL_PERSON: [{ required: false, message: '', trigger: 'blur' }],
// CONTACT_PERSON: [{ required: false, message: '', trigger: 'blur' }],
// CONTACT_TEL: [
// { required: false, message: '', trigger: 'blur' },
// { min: 11, max: 11, message: '11', trigger: 'blur' },
// {
// pattern: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
// message: ''
// }
// ],
// EMPLOYMENT_FORM: [{ required: false, message: '', trigger: 'blur' }],
// SELECT_FORM: [{ required: false, message: '', trigger: 'blur' }],
// POSSESSION: [{ required: false, message: '', trigger: 'blur' }],
// FLOATING_PERCENT: [
// { required: false, message: '', trigger: 'blur' },
// { min: 1, max: 3, message: '1-100', trigger: 'blur' },
// {
// pattern: /^(([1-9][0-9]?)([.,][0-9]{0,2})?|100([.,]0{1,2})?)$/,
// message: '1-100'
// }
// ]
}
}
},
created() {
// this.listLoading = false
// this.getList()
this.getDict()
this.getTreeList()
},
mounted() {
// this.getNextTickData()
},
mounted() {},
methods: {
selectValue(value, node, extra) {
this.form.SUPERVISE_CORPINFO_ID = value.CORPINFO_ID
},
async getAreaDict(DICTIONARIES_ID) {
const { list } = await requestFN(
'/xgf/dictionaries/getAreaLevels',
@ -357,16 +383,13 @@ export default {
return list
},
cascaderChange(e) {
// console.log('e', e)
const newVal = e[e.length - 1]
// console.log('', newVal[newVal.length - 1])
if (newVal === '1' || newVal === '2' || newVal === '3' || newVal === '4') {
this.$message({
message: '请选择正确的属地...',
type: 'error'
})
this.form.POSSESSION.pop()
// console.log('', this.corpStateForm.REGULATORY_DEPARTMENT_ARR)
}
},
//
@ -390,10 +413,11 @@ export default {
},
getTreeList() {
requestFN(
'/department/listTree/',
'/department/listTreeManageAndCorp1/',
{}
).then((data) => {
this.treeData = JSON.parse(data.zTreeNodes)
const treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.treeData = this.removeEmptyChildren(treeData)
}).catch((e) => {
})
},
@ -412,21 +436,21 @@ export default {
this.form.CITY = this.form.POSSESSION[1] || ''
this.form.COUNTY = this.form.POSSESSION[2] || ''
this.form.VILLAGE = this.form.POSSESSION[3] || ''
// this.form.STREET = this.form.POSSESSION[4] || ''
this.form.COMPANY_AREA = this.$refs.POSSESSION.getCheckedNodes()[0].pathLabels ? this.$refs.POSSESSION.getCheckedNodes()[0].pathLabels.join(',') : ''
}
/* if (this.form.INDUSTRYALL && this.form.INDUSTRYALL.length > 0) {
this.form.CORP_TYPE = this.form.INDUSTRYALL[0] || ''
this.form.CORP_TYPE2 = this.form.INDUSTRYALL[1] || ''
this.form.CORP_TYPE3 = this.form.INDUSTRYALL[2] || ''
this.form.CORP_TYPE4 = this.form.INDUSTRYALL[3] || ''
this.form.CORP_TYPE_NAME = this.$refs.industryCascader.getCheckedNodes()[0].pathLabels ? this.$refs.industryCascader.getCheckedNodes()[0].pathLabels.join('/') : ''
} */
this.form.SELECT_FORM = this.form.SELECT_FORMS.join(',')
this.form.SELECT_FORM = this.form.SELECT_FORMS.join(',')
if (this.form.COMPETENT_DEPT_ID) {
this.form.COMPETENT_DEPT_ID = this.form.COMPETENT_DEPT_ID.join(',')
}
if (this.form.MANAGER_DEPARTMENT_ID) {
this.form.MANAGER_DEPARTMENT_ID = this.form.MANAGER_DEPARTMENT_ID.join(',')
}
requestFN(
'/relevantunits/saveCorpInfo',
this.form
).then((data) => {
if (data.result == 'exist') {
if (data.result === 'exist') {
this.$message({
message: '用户名已存在,请重新填写...',
type: 'error'
@ -440,7 +464,6 @@ export default {
this.$parent.activeName = 'CorpInfoList'
}
this.listLoading = false
// this.getList()
}).catch((e) => {
this.listLoading = false
})
@ -455,12 +478,21 @@ export default {
//
getDict: function() {
requestFN(
'/xgf/dictionaries/getLevels',
'/department/listTree/', {}
).then((data) => {
const treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.treeDataSupervise = this.removeEmptyChildren(treeData)
}).catch((e) => {
})
requestFN(
'/xgf/dictionaries/listSelectTree',
{
DICTIONARIES_ID: '720992d898bf4fd7b44bf0ba1f1bbb88'
}
).then((data) => {
this.employmentTypeList = data.list
const employmentTypeList = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.employmentTypeList = this.removeEmptyChildren(employmentTypeList)
})
requestFN(
'/xgf/dictionaries/getLevels',
@ -591,8 +623,6 @@ export default {
setTimeout(() => {
map.centerAndZoom(point, zoom)
}, 0)
// var marker = new BMap.Marker(point) //
// map.addOverlay(marker) //
}
}
}

View File

@ -3,9 +3,51 @@
<div class="reform-warp">
<div class="reform-content" style="padding: 20px">
<el-form ref="form" :model="form" :rules="rules" label-width="200px">
<el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="主管部门" prop="MAIN_DEPARTMENT">
<el-form-item label="相关方单位名称" prop="RELEVANT_UNIT_NAME">
<el-input id="RELEVANT_UNIT_NAME" ref="RELEVANT_UNIT_NAME" v-model="form.RELEVANT_UNIT_NAME" maxlength="255" placeholder="这里输入相关方单位名称..." title="相关方单位名称"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="股份监管部门" prop="MANAGER_DEPARTMENT_ID">
<Treeselect
:options="treeData"
:normalizer="normalizergfjg"
:flat="true"
:default-expand-level="0"
:props="defaultProps"
v-model="form.MANAGER_DEPARTMENT_ID"
multiple
placeholder="请选择部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
style="width: 100%;"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="基层单位监管部门" prop="COMPETENT_DEPT_ID">
<Treeselect
:options="treeDataSupervise"
:normalizer="normalizergfjg"
:flat="true"
:default-expand-level="0"
:props="defaultProps"
v-model="form.COMPETENT_DEPT_ID"
multiple
placeholder="请选择基层单位监管部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="股份主管部门" prop="MAIN_DEPARTMENT">
<Treeselect
:options="treeData"
:normalizer="normalizer"
@ -17,25 +59,28 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="基层单位主管部门" prop="SUPERVISE_DEPARTMENT_ID">
<Treeselect
:options="treeDataSupervise"
:normalizer="normalizer"
v-model="form.SUPERVISE_DEPARTMENT_ID"
placeholder="请选择基层单位主管部门"
no-options-text="暂无数据"
no-children-text="暂无数据"
@select="selectValue"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="开户人" prop="CREATOR">
<el-input id="CREATOR" ref="CREATOR" v-model="CREATOR_NAME" maxlength="50" placeholder="开户人" title="开户人" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="相关方单位名称" prop="RELEVANT_UNIT_NAME">
<el-input id="RELEVANT_UNIT_NAME" ref="RELEVANT_UNIT_NAME" v-model="form.RELEVANT_UNIT_NAME" maxlength="255" placeholder="这里输入相关方单位名称..." title="相关方单位名称"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码" prop="SOCIAL_CODE">
<el-input id="SOCIAL_CODE" ref="SOCIAL_CODE" v-model="form.SOCIAL_CODE" maxlength="255" placeholder="这里输入统一社会信用代码..." title="统一社会信用代码"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="属地" prop="POSSESSION">
<el-cascader id="POSSESSION" ref="POSSESSION" v-model="form.POSSESSION" :options="areaList" :props="areaProps" :placeholder="form.COMPANY_AREA" style="width: 100%" @change="cascaderChange"/>
@ -49,16 +94,21 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="集团单位" prop="INDUSTRY">
<el-form-item label="集团单位" prop="CORP_TYPE">
<el-select v-model="form.CORP_TYPE" style="width: 100%">
<el-option v-for="item in corpTypeList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码" prop="SOCIAL_CODE">
<el-input id="SOCIAL_CODE" ref="SOCIAL_CODE" v-model="form.SOCIAL_CODE" maxlength="255" placeholder="这里输入统一社会信用代码..." title="统一社会信用代码"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="经度" prop="LONGITUDE">
<el-input v-model="form.LONGITUDE" placeholder="请输入内容" disabled @focus="handleMap" />
@ -77,7 +127,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="企事业单位经营地址" prop="BUSINESS_ADDRESS">
<el-input id="BUSINESS_ADDRESS" ref="BUSINESS_ADDRESS" v-model="form.BUSINESS_ADDRESS" maxlength="255" placeholder="这里输入企事业单位经营地址..." title="企事业单位经营地址"/>
@ -89,7 +139,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="联系人" prop="CONTACT_PERSON">
<el-input id="CONTACT_PERSON" ref="CONTACT_PERSON" v-model="form.CONTACT_PERSON" maxlength="255" placeholder="这里输入联系人..." title="联系人"/>
@ -101,25 +151,33 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="用工形式" prop="EMPLOYMENT_FORM">
<el-select v-model="form.EMPLOYMENT_FORM" style="width: 100%;">
<el-option v-for="item in employmentTypeList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA" />
</el-select>
<!-- <el-select v-model="form.EMPLOYMENT_FORM" style="width: 100%;">-->
<!-- <el-option v-for="item in employmentTypeList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA" />-->
<!-- </el-select>-->
<Treeselect
:options="employmentTypeList"
:normalizer="normalizer"
v-model="form.EMPLOYMENT_FORM"
placeholder="请选择用工形式"
no-options-text="暂无数据"
no-children-text="暂无数据"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="选取形式" prop="SELECT_FORM">
<el-select v-model="form.SELECT_FORM" style="width: 100%;">
<el-form-item label="选取形式" prop="SELECT_FORMS">
<el-select v-model="form.SELECT_FORMS" multiple style="width: 100%;">
<el-option v-for="item in selectFormList" :key="item.BIANMA" :label="item.NAME" :value="item.BIANMA" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="流动人员比例(%)" prop="FLOATING_PERCENT">
<!--<el-form-item label="流动人员比例(%)" prop="FLOATING_PERCENT">
<el-input id="FLOATING_PERCENT" ref="FLOATING_PERCENT" v-model="form.FLOATING_PERCENT" maxlength="255" placeholder="这里输入流动人员比例..." title="流动人员比例"/>
</el-form-item>
</el-form-item>-->
</el-form>
<div style="text-align: center">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"></el-button>
@ -252,6 +310,14 @@ export default {
children: 'nodes',
label: 'name'
},
normalizergfjg(node) {
return {
id: node.id,
label: node.name,
children: node.nodes,
isDisabled: node.pId === '0'
}
},
areaProps: {
lazy: true,
lazyLoad: async(node, resolve) => {
@ -277,9 +343,14 @@ export default {
checkStrictly: true
},
CREATOR_NAME: JSON.parse(sessionStorage.getItem('user')).NAME,
treeDataSupervise: [],
form: {
CREATOR: JSON.parse(sessionStorage.getItem('user')).USER_ID,
OPERATOR: JSON.parse(sessionStorage.getItem('user')).USER_ID,
SUPERVISE_DEPARTMENT_ID: null,
COMPETENT_DEPT_ID: null,
MANAGER_DEPARTMENT_ID: null,
SUPERVISE_CORPINFO_ID: '',
MAIN_DEPARTMENT: '',
RELEVANT_UNIT_NAME: '',
SOCIAL_CODE: '',
@ -291,8 +362,10 @@ export default {
LEGAL_PERSON: '',
CONTACT_PERSON: '',
CONTACT_TEL: '',
EMPLOYMENT_FORM: '',
EMPLOYMENT_FORM: null,
CORP_TYPE: '',
SELECT_FORM: '',
SELECT_FORMS: [],
FLOATING_PERCENT: '',
COMPANY_AREA: '',
POSSESSION: [],
@ -312,6 +385,7 @@ export default {
corpTypeList: [], //
rules: {
MAIN_DEPARTMENT: [{ required: true, message: '请选择主管部门', trigger: 'blur' }],
CORP_TYPE: [{ required: true, message: '请选择集团单位', trigger: 'blur' }],
RELEVANT_UNIT_NAME: [
{ required: true, message: '相关方单位名称不能为空', trigger: 'blur' },
{ validator: hasName, trigger: 'blur' }
@ -340,7 +414,6 @@ export default {
}
],
EMPLOYMENT_FORM: [{ required: false, message: '用工形式不能为空', trigger: 'blur' }],
SELECT_FORM: [{ required: false, message: '选取形式不能为空', trigger: 'blur' }],
POSSESSION: [{ required: false, message: '属地不能为空', trigger: 'blur' }],
FLOATING_PERCENT: [
{ required: false, message: '流动人员比例不能为空', trigger: 'blur' },
@ -353,17 +426,18 @@ export default {
}
}
},
created() {
// this.listLoading = false
// this.getList()
this.getData()
this.getDict()
this.getTreeList()
async created() {
await this.getDict()
await this.getTreeList()
await this.getData()
},
mounted() {
// this.getNextTickData()
},
methods: {
selectValue(value, node, extra) {
this.form.SUPERVISE_CORPINFO_ID = value.CORPINFO_ID
},
async getAreaDict(DICTIONARIES_ID) {
const { list } = await requestFN(
'/xgf/dictionaries/getAreaLevels',
@ -374,16 +448,13 @@ export default {
return list
},
cascaderChange(e) {
// console.log('e', e)
const newVal = e[e.length - 1]
// console.log('', newVal[newVal.length - 1])
if (newVal === '1' || newVal === '2' || newVal === '3' || newVal === '4') {
this.$message({
message: '请选择正确的属地...',
type: 'error'
})
this.form.POSSESSION.pop()
// console.log('', this.corpStateForm.REGULATORY_DEPARTMENT_ARR)
}
},
//
@ -399,13 +470,26 @@ export default {
getData() {
return new Promise((resolve) => {
requestFN(
'/xgf/corp/getCorpInfoDetail',
'/relevantunits/getCorpInfoDetail',
{
CORPINFO_ID: this.$parent.CORPINFO_ID,
tm: new Date().getTime()
}
).then((data) => {
this.form = Object.assign(this.form, data.pd)
var sz = this.form.SELECT_FORM
var cdi = this.form.COMPETENT_DEPT_ID
var mdi = this.form.MANAGER_DEPARTMENT_ID
this.form.SELECT_FORMS = sz.split(',')
if (cdi) {
this.form.COMPETENT_DEPT_ID = cdi.split(',')
}
if (mdi) {
this.form.MANAGER_DEPARTMENT_ID = mdi.split(',')
}
if (!this.form.EMPLOYMENT_FORM) this.form.EMPLOYMENT_FORM = null
if (!this.form.SUPERVISE_DEPARTMENT_ID) this.form.SUPERVISE_DEPARTMENT_ID = null
this.form.POSSESSION = []
if (data.pd.PROVINCE != '') this.form.POSSESSION.push(data.pd.PROVINCE)
if (data.pd.CITY != '') this.form.POSSESSION.push(data.pd.CITY)
@ -433,12 +517,16 @@ export default {
this.LONGITUDE = this.form.LONGITUDE
},
getTreeList() {
requestFN(
'/department/listTree/',
{}
).then((data) => {
this.treeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
return new Promise((resolve, reject) => {
requestFN(
'/department/listTreeManageAndCorp1/',
{}
).then((data) => {
const treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.treeData = this.removeEmptyChildren(treeData)
}).catch((e) => {
})
resolve()
})
},
filterNode(value, data) {
@ -459,6 +547,14 @@ export default {
// this.form.STREET = this.form.POSSESSION[4] || ''
// this.form.COMPANY_AREA = this.$refs.POSSESSION.getCheckedNodes()[0].pathLabels ? this.$refs.POSSESSION.getCheckedNodes()[0].pathLabels.join(',') : ''
}
// 2023-08-31
this.form.SELECT_FORM = this.form.SELECT_FORMS.join(',')
if (this.form.COMPETENT_DEPT_ID) {
this.form.COMPETENT_DEPT_ID = this.form.COMPETENT_DEPT_ID.join(',')
}
if (this.form.MANAGER_DEPARTMENT_ID) {
this.form.MANAGER_DEPARTMENT_ID = this.form.MANAGER_DEPARTMENT_ID.join(',')
}
/* if (this.form.INDUSTRYALL && this.form.INDUSTRYALL.length > 0) {
this.form.CORP_TYPE = this.form.INDUSTRYALL[0] || ''
this.form.CORP_TYPE2 = this.form.INDUSTRYALL[1] || ''
@ -498,38 +594,50 @@ export default {
this.$parent.activeName = 'CorpInfoList'
},
//
getDict: function() {
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '720992d898bf4fd7b44bf0ba1f1bbb88'
}
).then((data) => {
this.employmentTypeList = data.list
})
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '9ce2e9a4636b4d41b460ce16c346d497'
}
).then((data) => {
this.selectFormList = data.list
})
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: 'f2598ba72e864eadabf0ca4b664d26b9'
}
).then((data) => {
this.industryList = data.list
})
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '37d8385931f14bb0b962082cf6bb3395'
}
).then((data) => {
this.corpTypeList = data.list
getDict() {
return new Promise((resolve, reject) => {
requestFN(
'/department/listTree/',
{}
).then((data) => {
const treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.treeDataSupervise = this.removeEmptyChildren(treeData)
}).catch((e) => {
})
requestFN(
'/xgf/dictionaries/listSelectTree',
{
DICTIONARIES_ID: '720992d898bf4fd7b44bf0ba1f1bbb88'
}
).then((data) => {
const employmentTypeList = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
this.employmentTypeList = this.removeEmptyChildren(employmentTypeList)
})
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '9ce2e9a4636b4d41b460ce16c346d497'
}
).then((data) => {
this.selectFormList = data.list
})
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: 'f2598ba72e864eadabf0ca4b664d26b9'
}
).then((data) => {
this.industryList = data.list
})
requestFN(
'/xgf/dictionaries/getLevels',
{
DICTIONARIES_ID: '37d8385931f14bb0b962082cf6bb3395'
}
).then((data) => {
this.corpTypeList = data.list
})
resolve()
})
},
//

View File

@ -96,16 +96,18 @@
<el-table-column prop="COMPETENT_DEPT_NAME" label="基层单位监管部门" show-overflow-tooltip/>
<el-table-column prop="CREATOR_NAME" label="开户人员" />
<el-table-column :formatter="(row) => formatStateLabel(row)" prop="STATE" label="状态" />
<el-table-column label="操作" align="center" width="120">
<el-table-column label="操作" align="center" width="300">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row)"></el-button>
<el-button type="warning" icon="el-icon-refresh" size="mini" @click="resetPassword(row)"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="deleteCorpInfo(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<!-- <div>-->
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>-->
<!-- </div>-->
<div>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</div>