Compare commits

...

11 Commits

20 changed files with 1036 additions and 50 deletions

View File

@ -20,6 +20,9 @@
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
<el-button v-waves class="filter-item" type="info" icon="el-icon-download" @click="exportExcel">
导出
</el-button>
</el-form-item>
</el-col>
</el-row>
@ -34,10 +37,13 @@
'color': '#000'
}"
tooltip-effect="dark"
highlight-current-row
border
fit
highlight-current-row
@current-change="handleCurrentChange"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="40"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="CORP_NAME" label="公司名称" show-overflow-tooltip />
<!-- <el-table-column prop="STARTTIME" label="属地" show-overflow-tooltip>
@ -89,7 +95,8 @@
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import waves from '@/directive/waves'
import axios from 'axios'
export default {
name: 'IndexVue',
components: { Pagination },
@ -115,7 +122,10 @@ export default {
total: 0,
OUTSOURCED_NAME: '',
CORP_NAME: '',
varList: []
varList: [],
row: null,
/** 当前选中行 */
multipleSelection: []
}
},
created() {
@ -155,6 +165,69 @@ export default {
goDetail(ID) {
this.$parent.CORPINFO_ID = ID
this.$parent.activeName = this.activeName
},
handleCurrentChange(row) {
this.row = row
},
/**
* 表格行选择器处理
*/
handleSelectionChange(val) {
console.log('表格行选择器处理')
this.multipleSelection = val
},
exportExcel() {
const selectedRows = this.multipleSelection
//
if (selectedRows === [] || selectedRows.length === 0) {
this.$message.warning('请选择要导出的公司')
return
}
this.$confirm('确定要下载' + selectedRows[0].CORP_NAME + '等的检查数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = false
const loading = this.$loading({
lock: true,
text: '加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
let ids = ''
selectedRows.forEach(row => {
ids += row.CORPINFO_ID + ','
})
axios.get(config.httpurl + '/keyprojectcheck/export/excel/' + ids, {
responseType: 'blob'
}).then(res => {
setTimeout(() => {
const blob = new Blob([res.data], { type: res.headers['content-type'] })
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
downloadElement.style.display = 'none'
downloadElement.href = href
downloadElement.download = '导出数据'
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(href)
this.$emit('getResult', '')
loading.close()
this.close()
}, 2000)
}).catch((e) => {
console.log(e)
loading.close()
this.$message.error('导出失败,或未查询到隐患')
})
}).catch(() => {
this.listLoading = false
})
}
}
}

View File

@ -91,7 +91,7 @@
import Pagination from '@/components/Pagination'
import waves from '@/directive/waves'
import formatDate from '../../../../utils/dateformat'
import { requestFN } from '../../../../utils/request'
import { requestFN } from '@/utils/request'
export default {
components: { Pagination },

View File

@ -0,0 +1,168 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-form ref="form" v-model="form">
<el-row>
<el-col :span="5">
<el-form-item label="相关方单位名称:">
<el-input v-model="form.RELEVANT_UNIT_NAME" placeholder="搜索" class="filter-item" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="4">
<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="reset"></el-button>
</el-col>
</el-row>
</el-form>
</div>
<div class="app-statistical">
<span>
培训合格总人数<i>{{ personCount }}</i>
</span>
<span>
培训合格人员证件即将过期人数<i>{{ expireSoonPersonCount }}</i>
</span>
<span>
培训合格人员证件已经过期人数<i>{{ expiredPersonCount }}</i>
</span>
</div>
<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="corpTypeName" label="集团单位" />
<el-table-column prop="RELEVANT_UNIT_NAME" label="相关方单位名称" />
<el-table-column label="属地">
<template slot-scope="{row}">
<span v-if="row.COMPANY_AREA">
{{ row.COMPANY_AREA.replaceAll(',',' ') }}
</span>
</template>
</el-table-column>
<el-table-column prop="MAIN_DEPARTMENT_NAME" label="股份主管部门" width="200" />
<el-table-column prop="SUPERVISE_CORPINFO_NAME" label="基层单位主管公司" width="200" />
<el-table-column prop="SUPERVISE_DEPARTMENT_NAME" label="基层单位主管部门" width="200" />
<el-table-column prop="userCount" label="人员数"/>
<el-table-column prop="trainingQualifiedCount" label="参与培训合格人员数"/>
<el-table-column prop="expireSoonCount" label="证件即将过期人员数"/>
<el-table-column prop="expiredCount" label="证件已过期人员数"/>
<el-table-column label="操作" align="left" width="110">
<template slot-scope="{row}">
<el-button type="success" icon="el-icon-view" size="mini" @click="handleEdit(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import Pagination from '@/components/Pagination' // el-pagination
export default{
components: {Pagination},
data() {
return{
listQuery: {
page: 1,
limit: 10
},
areaList: [], //
placeList: [],
listLoading: true,
varList: [],
total: 0,
title: '',
isShow: false,
form: {
RELEVANT_UNIT_NAME: '',
CREATE_TIME: '', //
CREATOR: '', //
OPERAT_TIME: '', //
OPERATOR: '', //
ISDELETE: '', //
CORPINFO_ID: '', // id
CLASS_NAME: '', //
OPENING_TIME: '', //
PLACE: '', //
TRAINING_TYPE: '', //
CLASS_SIZE: '', //
TRAINEES_NUM: '', //
CLASS_STATUS: ''// 0-1-2-
},
personCount: '',
expireSoonPersonCount: '',
expiredPersonCount: ''
}
},
created() {
this.getList()
},
methods: {
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
reset() {
this.form = {
CLASS_NAME: '', //
OPENING_TIME: '', //
PLACE: '', //
TRAINING_TYPE: '', //
CLASS_SIZE: '', //
TRAINEES_NUM: '', //
CLASS_STATUS: ''// 0-1-2-
}
this.getList()
},
//
handleEdit(row) {
this.$parent.activeName = 'corpUserList'
this.$parent.CORPINFO_ID = row.CORPINFO_ID
},
//
getList() {
this.listLoading = true
requestFN(
'/classMessage/cardOverdueList?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page, this.form
).then((data) => {
console.log(data)
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.personCount = data.personCount
this.expireSoonPersonCount = data.expireSoonPersonCount
this.expiredPersonCount = data.expiredPersonCount
this.hasButton()
this.pd = data.pd
}).catch((e) => {
this.listLoading = false
})
}
}
}
</script>

View File

@ -0,0 +1,542 @@
<template>
<div class="icons-container">
<el-container>
<el-main>
<el-form label-width="180px">
<el-row>
<el-col :span="8">
<el-form-item label="用户名" prop="USERNAME">
<el-input v-model="searchForm.USERNAME" placeholder="用户名称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="姓名" prop="NAME">
<el-input v-model="searchForm.NAME" placeholder="姓名"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件状态" prop="CARD_STATUS">
<el-select v-model="searchForm.CARD_STATUS" placeholder="请选择" style="width: 100%">
<el-option label="未过期" value="0" />
<el-option label="即将过期" value="2" />
<el-option label="已过期" value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item>
<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="USERNAME" label="用户名" />
<el-table-column prop="NAME" label="姓名" />
<el-table-column prop="BELONG_TO_CORP_NAME" label="相关方名称" />
<el-table-column prop="DEPARTMENT_NAME" label="部门"/>
<el-table-column prop="CLASS_NO" label="人员编号"/>
<el-table-column prop="VALIDITY_PERIOD_END" label="证件到期日"/>
<el-table-column prop="VALIDITY_PERIOD_END" label="证件状态">
<template v-slot="{row}">
<span v-if="getCardStatus(row.VALIDITY_PERIOD_END) == 0" :style="{color: 'green'}"></span>
<span v-if="getCardStatus(row.VALIDITY_PERIOD_END) == 2" :style="{color: 'orange'}"></span>
<span v-if="getCardStatus(row.VALIDITY_PERIOD_END) == 1" :style="{color: 'red'}"></span>
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="150">
<template slot-scope="{row}">
<el-button v-if="row.ACCOUNT_TYPE != 0" type="success" icon="el-icon-view" size="mini" @click="toUserDetail(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</el-main>
</el-container>
<div class="heightt"/>
<div class="subdy-foot">
<el-row style="text-align: center">
<el-button @click="goBack"></el-button>
</el-row>
</div>
<UserBaseInfoView ref="userbaseinfoview" :base_info_url="baseInfourl"/>
</div>
</template>
<script>
import SelectTree from '@/components/SelectTree'
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, SelectTree, UserBaseInfoView },
directives: { waves },
data() {
return {
userId: this.$parent.USER_ID_T,
baseInfourl: '/unitPersonManagement/getCorpUserDetail',
treeLoading: false,
listLoading: false,
add: true,
del: true,
edit: true,
readonly: true,
listQuery: {
page: 1,
limit: 20
},
searchForm: {
CARD_STATUS:'',
DEPARTMENT_ID: '',
USERNAME: '',
NAME: '',
DEPTNAME: '',
AUDIT_STATE: '',
ISFLOW: '',
DEPART_STATE: '',
AGE: '',
IS_SIGN_LABOR: '',
IS_INJURIES_PAY: '',
ISPAY: '',
IS_LEVEL_THREE: '',
IS_SAFETY_TELL: '',
IS_SPECIAL_JOB: ''
},
userForm: {
PARENT_ID: '',
USER_ID: '',
DEPARTMENT_ID: '',
DEPTNAME: '',
USERNAME: '',
NAME: ''
},
DEPARTMENT_ID: '',
total: 0,
PARENT_ID: '0', // ID
varList: [],
qyztList: [],
options: [{
value: '0',
label: '启用'
}, {
value: '1',
label: '禁用'
}],
STATE: [],
industryList: [],
countryList: [],
villageList: [],
treeData: [],
CITY_CODE: '',
COUNTRY: '',
VILLAGE: '',
config: config,
dialogFormEdit: false,
rules: {
DEPTNAME: [{ required: true, message: '分公司名称不能为空', trigger: 'blur' }],
USERNAME: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
NAME: [{ required: true, message: '姓名不能为空', trigger: 'blur' }]
},
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name'
},
workTypeList: [] //
}
},
created() {
this.getDict()
this.getList()
this.getTreeList()
},
methods: {
getCardStatus(VALIDITY_PERIOD_END){
const nowDate = new Date()
const nextDate = new Date((new Date).getFullYear() + '-' + ((new Date).getMonth() + 3) + '-' + (new Date).getDate())
console.log('当前时间 ==>'+nowDate)
console.log('两个月后的时间 ==>'+nextDate)
console.log('证件到期日 ==>'+new Date(VALIDITY_PERIOD_END))
if (nowDate > new Date(VALIDITY_PERIOD_END)){
return 1
}else if (new Date(VALIDITY_PERIOD_END) > nowDate && new Date(VALIDITY_PERIOD_END) < nextDate){
return 2
}else {
return 0
}
},
filterNode(value, data) {
if (!value) return true
return data.name.indexOf(value) !== -1
},
handleNodeClick(node, data, value) {
this.searchForm.DEPARTMENT_ID = node.id
this.getList(node.id)
},
//
getDict() {
requestFN(
'dictionaries/getLevels',
{ DICTIONARIES_ID: '55484e491a5e442d839c4595380713ec' }
).then((data) => {
this.workTypeList = data.list
}).catch((e) => {
this.listLoading = false
})
},
//
getList() {
this.listLoading = true
requestFN(
'/classMessage/personList?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
CORPINFO_ID: this.$parent.CORPINFO_ID,
NAME: this.searchForm.NAME,
USERNAME: this.searchForm.USERNAME,
CARD_STATUS: this.searchForm.CARD_STATUS
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
}).catch((e) => {
this.listLoading = false
})
},
getDeptList(DEPARTMENT_ID) {
this.listLoading = true
this.varList = []
this.DEPARTMENT_ID = DEPARTMENT_ID
requestFN(
'/department/findByDeptId?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
DEPARTMENT_ID: this.searchForm.DEPARTMENT_ID,
KEYWORDS: this.searchForm.KEYWORDS
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.form.PARENT_ID = data.PARENT_ID
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
getRowKey(row) {
return row.USER_ID
},
goReturn() {
this.$parent.activeName = 'CorpInfoList'
},
//
getQuery() {
this.getList()
},
getTreeList() {
this.treeLoading = true
requestFN(
'/xgf/department/listzTree',
{
CORPINFO_ID: this.$parent.CORPINFO_ID
}
).then((data) => {
this.treeLoading = false
this.treeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
this.treeLoading = false
})
},
getCountryList() {
requestFN(
'/dictionaries/getLevels',
{
DICTIONARIES_ID: this.CITY_CODE
}
).then((data) => {
this.countryList = data.list
}).catch((e) => {
})
},
getVillageList(value, id) {
this.COUNTRY = value
requestFN(
'/dictionaries/getLevels',
{
DICTIONARIES_ID: id
}
).then((data) => {
this.villageList = data.list
}).catch((e) => {
})
},
changeVillage(village) {
this.VILLAGE = village
},
//
toUserDetail(ROW) {
this.$refs.userbaseinfoview.openWindow(ROW.USER_ID, ROW.CORPINFO_ID)
},
userEdit() {
this.$refs.form.validate(valid => {
if (valid) {
this.listLoading = true
requestFN(
'/user/editCorpUser',
{
...this.userForm
}
).then((data) => {
this.$message.success('修改成功')
this.dialogFormEdit = false
this.getList()
}).catch((e) => { this.listLoading = false })
} else {
return false
}
})
},
handleDelete(id, name) {
this.$confirm('确定要删除[' + name + ']吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/user/deleteCorpUser',
{
USER_ID: id
}
).then((data) => {
if (data.result == 'success') {
this.listLoading = false
this.getList()
}
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
goBack() {
this.$parent.activeName = 'CardOverdueList'
},
enableORDisable(ISUSE, CORPINFO_ID) {
this.$confirm(ISUSE === '0' ? '确定要启用该账户吗?' : '确定要禁用该账户吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/corpinfo/editisuse',
{
CORPINFO_ID,
ISUSE
}
).then(() => {
this.$message({
message: ISUSE === '0' ? '启用成功' : '禁用成功',
type: 'success'
})
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {})
},
//
hasButton: function() {
var keys = 'corpinfo:add,corpinfo:del,corpinfo:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.corpinfofhadminadd //
this.del = data.corpinfofhadmindel //
this.edit = data.corpinfofhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
goKeyReset() {
this.searchForm = {
DEPARTMENT_ID: '',
USERNAME: '',
NAME: '',
DEPTNAME: '',
AUDIT_STATE: '',
ISFLOW: '',
DEPART_STATE: '',
AGE: '',
IS_SIGN_LABOR: '',
IS_INJURIES_PAY: '',
ISPAY: '',
IS_LEVEL_THREE: '',
IS_SAFETY_TELL: '',
IS_SPECIAL_JOB: ''
}
this.getList()
},
resetPwd(id) {
this.$confirm('确定要重置选中的密码吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/corpinfo/resetPwd',
{
CORPINFO_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(() => {
})
},
//
getDicList(list, DICTIONARIES_ID) {
requestFN(
'/dictionaries/getLevels',
{
DICTIONARIES_ID
}
).then((data) => {
this[list] = data.list
}).catch((e) => {
})
},
translate(list, id) {
for (let i = 0; i < list.length; i++) {
if (list[i].BIANMA === id || list[i].DICTIONARIES_ID === id) {
return list[i].NAME
}
}
},
showBranchName(CORPINFO_ID, CORP_NAME) {
this.$refs.form && this.$refs.form.resetFields()
this.dialogFormEdit = true
this.updateBranchNameForm.CORPINFO_ID = CORPINFO_ID
this.updateBranchNameForm.CORP_NAME = CORP_NAME
},
updateBranchName(ID) {
requestFN(
'/department/listTreeCorpInfo',
{
CORPINFO_ID: ID
}
).then((data) => {
this.treeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
})
},
//
formatLabel(row, type) {
if (type === '0') {
const special = row.IS_SPECIAL_JOB
if (special === '1') {
return '特殊工种'
} else if (special === '0') {
return '非特殊工种'
} else {
return special
}
} else if (type === '1') {
const flow = row.ISFLOW
if (flow === '1') {
return '流动人员'
} else if (flow === '0') {
return '非流动人员'
} else {
return flow
}
} else if (type === '2') {
const depart = row.DEPART_STATE
if (depart === '1') {
return '离职'
} else if (depart === '0') {
return '在职'
} else {
return depart
}
} else if (type === '3') {
const audit = row.AUDIT_STATE
if (audit === '0') {
return '已打回'
} else if (audit === '1') {
return '待审核'
} else if (audit === '2') {
return '审核通过'
} else {
return audit
}
} else if (type === '5') {
const train_status = row.STATUS
if (train_status == 0) {
return '未培训'
} else if (train_status === 1) {
return '培训中'
} else if (train_status === 2) {
return '培训通过'
} else if (train_status === -1) {
return '培训未通过'
} else {
return '未培训'
}
} else {
return ''
}
}
}
}
</script>

View File

@ -0,0 +1,25 @@
<template>
<component :is="activeName" />
</template>
<script>
import CardOverdueList from './components/cardOverdueList'
import CorpUserList from './components/corpUserList'
export default {
components: {
CardOverdueList: CardOverdueList,
CorpUserList: CorpUserList,
},
data() {
return {
activeName: 'CardOverdueList',
CORPINFO_ID: '',
USER_ID: '',
USER_ID_T: ''
}
}
}
</script>
<style scoped>
</style>

View File

@ -407,6 +407,22 @@ export default {
},
getShowPicture(row) {
return row.PHOTO && row.PHOTO !== ''
},
//
cardOverduePerson(e) {
this.loading = true
this.visible = true
requestFN(
'/classMessage/cardOverduePerson',
{
CORPINFO_ID : e.CORPINFO_ID
}
).then((data) => {
this.peopleList = data.varList
this.loading = false
}).catch((e) => {
this.loading = false
})
}
}
}

View File

@ -19,6 +19,20 @@
<el-input v-model="searchForm.KEYWORDS" placeholder="请输入关键字"/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="考评时间" prop="incidentDates">
<el-date-picker
v-model="searchForm.incidentDates"
:default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd"
style="width: 100%"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-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="getList">
@ -101,6 +115,9 @@ export default {
searchForm: {
KEYWORDS: '',
TYPE: '',
incidentDates: [],
START_TIME: '',
END_TIME: '',
DEPARTMENT_ID: null
}
}
@ -129,6 +146,11 @@ export default {
//
getList() {
this.listLoading = true
const dates = this.searchForm.incidentDates
if (dates != null && dates.length === 2) {
this.searchForm.START_TIME = dates[0]
this.searchForm.END_TIME = dates[1]
}
requestFN(
'/keyProject/evaluationscore/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{

View File

@ -67,12 +67,8 @@
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="OUTSOURCED_NAME" label="重点工程名称" show-overflow-tooltip>
<template slot-scope="{row}">
@ -105,9 +101,12 @@
{{ row.ISPUNISH === "1" ? "是" : row.ISPUNISH === "2" ?"否":"处罚人未处理" }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="100">
<el-table-column label="操作" align="center" width="170">
<template slot-scope="{row}">
<el-button type="success" icon="el-icon-view" size="mini" @click="goDetail(row.HIDDEN_ID)"></el-button>
<div style="display: flex; justify-content: space-between;">
<el-button type="success" icon="el-icon-view" size="mini" @click="goDetail(row.HIDDEN_ID)"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleBatchDel(row.HIDDEN_ID)"></el-button>
</div>
</template>
</el-table-column>
</el-table>
@ -226,6 +225,33 @@ export default {
goDetail(ID) {
this.$parent.HIDDEN_ID = ID
this.$parent.activeName = 'Info'
},
/**
* 删除
*/
handleBatchDel(HIDDEN_ID) {
//
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//
const url = '/keyprojectcheck/delete/hidden/id/' + HIDDEN_ID
requestFN(url).then((response) => {
//
this.$message.success('删除成功')
this.getList()
// eslint-disable-next-line handle-callback-err
}).catch(() => {
this.$message.error('删除失败')
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
}
}
}

View File

@ -9,18 +9,28 @@
<!-- <el-input v-model="KEYWORDS" placeholder="搜索关键字" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="5">
<el-col :span="4">
<el-form-item label="重点工程名称">
<el-input v-model="KEYWORDS" placeholder="搜索重点工程名称" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="4">
<el-form-item label="状态" label-width="50px">
<el-select ref="SELECT_STATE" v-model="STATE" style="width: 100%;">
<el-option v-for="item in stateList" :key="item.ID" :label="item.NAME" :value="item.ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="负责人姓名">
<el-input v-model="UNITS_PIC_NAME" placeholder="搜索负责人姓名" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="负责人手机号">
<el-input v-model="UNITS_PHONE" placeholder="搜索负责人手机号" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
@ -93,6 +103,8 @@ export default {
},
STATE: '',
total: 0,
UNITS_PIC_NAME: '',
UNITS_PHONE: '',
KEYWORDS: '',
OUTSOURCED_NAME: '',
stateList: [
@ -125,6 +137,8 @@ export default {
this.KEYWORDS = ''
this.STATE = ''
this.OUTSOURCED_NAME = ''
this.UNITS_PIC_NAME = ''
this.UNITS_PHONE = ''
this.getQuery()
},
//
@ -134,6 +148,8 @@ export default {
'/outsourced/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS,
UNITS_PIC_NAME: this.UNITS_PIC_NAME,
UNITS_PHONE: this.UNITS_PHONE,
CORPINFO_ID: this.$parent.CORPINFO_ID,
STATE: this.STATE
}

View File

@ -1,6 +1,8 @@
<template>
<div>
<component :is="activeName"/>
<keep-alive exclude="meteorologicalList,meteorologicalHistory">
<component :is="activeName"/>
</keep-alive>
</div>
</template>
@ -13,13 +15,14 @@ export default {
components: {
List: List,
meteorologicalList: meteorologicalList,
meteorologicalHistory: meteorologicalHistory,
meteorologicalHistory: meteorologicalHistory
},
data() {
return {
activeName: 'List',
CORPINFO_ID: '',
CODE: ''
CODE: '',
KEYWORDS: ''
}
}
}

View File

@ -1,6 +1,8 @@
<template>
<div>
<component :is="activeName"/>
<keep-alive exclude="meteorologicalinfoList">
<component :is="activeName"/>
</keep-alive>
</div>
</template>

View File

@ -421,7 +421,10 @@ export default {
setTimeout(() => {
this.$notify.info({
title: '消息',
message: '您有【' + data.list.length + '】条相关方人员数据待审核'
message: '您有【' + data.list.length + '】条相关方人员数据待审核',
onClick: () => {
this.$router.push('/relativeUnitPerson/flow')
}
})
}, 3000)
}

View File

@ -1,5 +1,7 @@
<template>
<component :is="activeName" />
<keep-alive exclude="CorpUserList,CorpUserDetail">
<component :is="activeName" />
</keep-alive>
</template>
<script>

View File

@ -220,10 +220,11 @@ export default {
}
},
created() {
// this.ROLE_ID
console.log(this.$data)
this.getList()
this.getDict()
this.getTreeList()
// this.ROLE_ID
},
methods: {
onChange(value) {

View File

@ -5,9 +5,9 @@
<el-form-item label="检查人意见" prop="INSPECTION_USER_OPINION">
<el-input v-model="form.INSPECTION_USER_OPINION" :autosize="{ minRows: 1}" type="textarea" maxlength="2000" placeholder="这里输入检查人意见(有异议时必填)..." title="检查人意见(有异议时必填)"/>
</el-form-item>
<el-form-item label="检查人">
<el-button data-target="Modal" type="primary" @click="showModal"></el-button>
</el-form-item>
<!-- <el-form-item label="检查人">-->
<!-- <el-button data-target="Modal" type="primary" @click="showModal"></el-button>-->
<!-- </el-form-item>-->
<div v-show="form.INSPECTION_USER_SIGN_IMG != ''" class="demo-image__preview">
<el-image
:src="form.INSPECTION_USER_SIGN_IMG"
@ -112,10 +112,10 @@ export default {
if (!this.form.INSPECTION_USER_OPINION) {
this.$message.error('您还未填写意见')
}
if (!this.form.INSPECTION_USER_SIGN_IMG) {
this.$message.error('您还未签字')
return
}
// if (!this.form.INSPECTION_USER_SIGN_IMG) {
// this.$message.error('')
// return
// }
this.$emit('getProposal', this.form)
this.dialogVisible = false
},

View File

@ -56,7 +56,7 @@
</el-col>
<el-col :span="4">
<el-form-item label="检查状态">
<el-select v-model="search.INSPECTION_STATUS" placeholder="隐患状态" clearable style="width: 100%">
<el-select v-model="search.INSPECTION_STATUS" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" />
</el-select>
</el-form-item>
@ -73,14 +73,19 @@
<el-input v-model="search.INSPECTION_CASE" placeholder="检查情况" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="10px">
</el-row>
<el-row>
<el-col>
<el-form-item label-width="20px">
<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-button v-waves class="filter-item" type="info" icon="el-icon-download" @click="exportExcel">
导出
</el-button>
</el-form-item>
</el-col>
</el-row>
@ -230,6 +235,7 @@ import waves from '@/directive/waves' // waves directive
import WriteSign from '@/components/WriteSign'
import safetyFlowChart from '../../../hiddenUtil/safetyFlowChart'
import SelectTree from '@/components/SelectTree'
import axios from 'axios'
export default {
components: { Pagination, WriteSign, safetyFlowChart, SelectTree },
directives: { waves },
@ -258,10 +264,10 @@ export default {
INSPECTION_TIME: ['', ''], //
INSPECTION_STATUS: '', //
INSPECTION_SUBJECT: '', //
INSPECTION_CASE:'' //
INSPECTION_CASE: '' //
},
statusList: [
{ ID: '', NAME: '请选择' },
// { ID: '', NAME: '' },
{ ID: '0', NAME: '待检查人核实' },
{ ID: '1', NAME: '检查人核实中' },
{ ID: '2', NAME: '待被检查人确认' },
@ -557,6 +563,74 @@ export default {
INSPECTION_ORIGINATOR_SIGN_IMG: '' //
// INSPECTION_ORIGINATOR_SIGN_TIME: '', //
}
},
exportExcel() {
this.$confirm('确定要下载检查记录吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: '加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
this.search.INSPECTION_TYPE = this.search.INSPECTION_TYPE == null ? '' : this.search.INSPECTION_TYPE
const object = {
...this.search,
INSPECTION_TIME_START: this.search.INSPECTION_TIME[0],
INSPECTION_TIME_END: this.search.INSPECTION_TIME[1]
}
const formData = new FormData()
Object.keys({
...this.search,
INSPECTION_TIME_START: this.search.INSPECTION_TIME[0],
INSPECTION_TIME_END: this.search.INSPECTION_TIME[1]
}).forEach(key => {
const value = object[key]
if (Array.isArray(value)) {
value.forEach((subValue, i) => {
formData.append(key + `[${i}]`, subValue)
})
} else {
formData.append(key, object[key])
}
})
console.log(formData)
axios({
url: config.httpurl + 'safetyenvironmental/export/excel',
method: 'post',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
responseType: 'blob',
data: formData
}).then(res => {
console.log('+++++++++++++++++++++++++++++')
const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
downloadElement.style.display = 'none'
downloadElement.href = href
downloadElement.download = '检查记录'
// DOM
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(href)
loading.close()
}).catch((e) => {
console.error(e)
loading.close()
if (e.response && e.response.status === 404) {
this.$message.error('未查询到数据')
} else {
this.$message.error('导出失败,请稍后再试')
}
})
}).catch(() => {
this.$message.warning('取消导出')
})
}
}
}

View File

@ -109,11 +109,6 @@
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="NAME" label="用户名" align="center"/>
<el-table-column prop="CREATTIME" label="新增时间" align="center"/>
<el-table-column prop="CREATORNAME" label="新增人" align="center">
<template slot-scope="{row}">
<span>{{row.CREATORNAME ? row.CREATORNAME : row.NAMEX ? row.NAMEX : row.NAMER}}</span>
</template>
</el-table-column>
<el-table-column prop="REMARKS" label="记录" align="center"/>
</el-table>
</el-dialog>
@ -144,7 +139,7 @@
<el-radio v-model="pd.SEX" :label="'1'"></el-radio>
</el-form-item>
<el-form-item label="手机号" prop="PHONE">
<el-input v-model="pd.PHONE" placeholder="这里输入手机号..."/>
<el-input v-model="pd.PHONE" placeholder="这里输入手机号..." @blur="goCheck()"/>
</el-form-item>
<!-- <el-form-item label="部门级别" prop="deptTypeID"> &lt;!&ndash;目的是选择部门到这个级别 &ndash;&gt;-->
<!-- <el-select v-model="pd.deptTypeID" placeholder="请选择" class="filter-item" >-->
@ -526,7 +521,8 @@ export default {
'user/goCheck',
{
CARD_NO: this.pd.USER_ID_CARD,
USERNAME: this.pd.USERNAME
USERNAME: this.pd.USERNAME,
PHONE: this.pd.PHONE
}
).then((data) => {
if (data.result === 'success') {
@ -563,7 +559,7 @@ export default {
CITY: this.keyShudi[1] || '',
COUNTRY: this.keyShudi[2] || '',
VILLAGE: this.keyShudi[3] || '',
ISPUSH: '0'
ISPUSH: '1'
}
).then((data) => {
this.listLoading = false

View File

@ -118,14 +118,14 @@
<!-- <el-input v-model="pd.userPASSWORD" show-password placeholder="这里输入密码..." />-->
<!-- </el-form-item>-->
<el-form-item label="身份证号" prop="USER_ID_CARD">
<el-input v-model="pd.USER_ID_CARD" placeholder="这里输入身份证号..." @blur="goCheck()"/>
<el-input v-model="pd.USER_ID_CARD" placeholder="这里输入身份证号..."/>
</el-form-item>
<el-form-item label="性别" prop="SEX">
<el-radio v-model="pd.SEX" :label="'0'"></el-radio>
<el-radio v-model="pd.SEX" :label="'1'"></el-radio>
</el-form-item>
<el-form-item label="手机号" prop="PHONE">
<el-input v-model="pd.PHONE" placeholder="这里输入手机号..." />
<el-input v-model="pd.PHONE" placeholder="这里输入手机号..." @blur="goCheck()"/>
</el-form-item>
<!-- <el-form-item label="部门级别" prop="deptTypeID"> &lt;!&ndash;目的是选择部门到这个级别 &ndash;&gt;-->
<!-- <el-select v-model="pd.deptTypeID" placeholder="请选择" class="filter-item" >-->
@ -276,7 +276,9 @@ export default {
ROLE_ID: [
{ required: true, message: '角色不能为空', trigger: 'blur' }
],
USERNAME: [
{ required: true, message: '用户名不能为空', trigger: 'blur' }
],
NAME: [
{ required: true, message: '姓名不能为空', trigger: 'blur' },
{ min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }
@ -343,7 +345,9 @@ export default {
ISASSESS: '',
JOB: '', //
USER_ID_CARD: '', //
NATION: '' //
NATION: '', //
CARD_NO: '' //
},
roleList: [],
multipleSelectionAll: [], //
@ -460,7 +464,7 @@ export default {
CARD_TYPE_NAME: '身份证',
NATION: row.NATION_NAME || '',
SEX: row.SEX === '0' ? '男' : '女',
USER_TYPE: '1',
USER_TYPE: '0',
ISDELETE: row.ISDELETE
}
).then((data) => {
@ -489,7 +493,8 @@ export default {
{
CARD_NO: this.pd.USER_ID_CARD,
USERNAME: this.pd.USERNAME,
USER_ID: this.pd.USER_ID || ''
USER_ID: this.pd.USER_ID || '',
PHONE: this.pd.PHONE
}
).then((data) => {
if (data.result === 'success') {
@ -739,6 +744,15 @@ export default {
if (this.pd.VILLAGE) {
areaRefID.push(this.pd.VILLAGE)
}
if (this.pd.CARD_NO){
areaRefID.push(this.pd.CARD_NO)
}
if (this.pd.USERNAME){
areaRefID.push(this.pd.USERNAME)
}
if (this.pd.PHONE){
areaRefID.push(this.pd.PHONE)
}
this.$set(this.pd, 'shudi', areaRefID)
const refDeptLevelVal = {}

View File

@ -125,7 +125,7 @@
<el-radio v-model="pd.SEX" :label="'1'"></el-radio>
</el-form-item>
<el-form-item label="手机号" prop="PHONE">
<el-input v-model="pd.PHONE" placeholder="这里输入手机号..." />
<el-input v-model="pd.PHONE" placeholder="这里输入手机号..." @blur="goCheck()"/>
</el-form-item>
<!-- <el-form-item label="部门级别" prop="deptTypeID"> &lt;!&ndash;目的是选择部门到这个级别 &ndash;&gt;-->
<!-- <el-select v-model="pd.deptTypeID" placeholder="请选择" class="filter-item" >-->
@ -497,7 +497,8 @@ export default {
{
CARD_NO: this.pd.USER_ID_CARD,
USERNAME: this.pd.PHONE,
USER_ID: this.pd.USER_ID
USER_ID: this.pd.USER_ID,
PHONE: this.pd.PHONE
}
).then((data) => {
if (data.result === 'success') {
@ -534,7 +535,7 @@ export default {
CITY: this.keyShudi[1] || '',
COUNTRY: this.keyShudi[2] || '',
VILLAGE: this.keyShudi[3] || '',
ISPUSH: '0'
ISPUSH: '1'
}
).then((data) => {
this.listLoading = false

View File

@ -1,5 +1,7 @@
<template>
<component :is="activeName" />
<keep-alive exclude="CorpUserList">
<component :is="activeName" />
</keep-alive>
</template>
<script>