1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-10 20:39:48 +08:00

增加检索栏目和右侧边栏待办信息,并修改BUG

This commit is contained in:
dengfuchuan 2021-04-05 21:52:41 +08:00
parent befcbe0b05
commit 4105503024
31 changed files with 3613 additions and 3190 deletions

View File

@ -0,0 +1,104 @@
<template>
<div>
<el-badge :value="122" class="item">
<el-popover
placement="bottom"
title="待办提醒"
width="380"
trigger="click"
>
<el-row>
<el-col :span="8">
<el-link>
<i class="el-icon-help" />
待整改
<span>({{ 11 }})</span>
</el-link>
</el-col>
<el-col :span="8">
<el-link>
<i class="el-icon-s-help" />
待验收
<span>({{ 22 }})</span>
</el-link>
</el-col>
<el-col :span="8">
<el-link>
<i class="el-icon-s-operation" />
其他
<span>({{ 8 }})</span>
</el-link>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-link>
<i class="el-icon-s-release" />
待整改
<span>({{ 11 }})</span>
</el-link>
</el-col>
<el-col :span="8">
<el-link>
<i class="el-icon-s-data" />
待验收
<span>({{ 22 }})</span>
</el-link>
</el-col>
<el-col :span="8">
<el-link>
<i class="el-icon-s-grid" />
其他
<span>({{ 18 }})</span>
</el-link>
</el-col>
</el-row>
<div slot="reference" class="el-icon-s-order" />
</el-popover>
</el-badge>
</div>
</template>
<script>
// fuse is a lightweight fuzzy-search module
// make search results more in line with expectations
export default {
name: 'HeaderMessage',
data() {
return {
search: '',
options: [],
searchPool: [],
show: false,
fuse: undefined
}
},
computed: {
routes() {
return this.$store.getters.permission_routes
}
},
mounted() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.el-icon-s-order{
font-size: 22px !important;
margin-top: 13px !important;
}
::v-deep .el-popover__title {
font-size: 12px;
}
i{
color:#1890ff;
}
::v-deep .el-badge__content.is-fixed{
margin-top: 10px !important;
}
</style>

View File

@ -0,0 +1,28 @@
import request from '@/utils/request'
import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDate(pageSize, pageNo, data_id, table_name) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=editgrid&query_funid=sys_attach&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=sys_attach.data_id = ? and sys_attach.table_name = ?&where_type=string;string&where_value=${data_id};${table_name}`
}).then(response => response.data)
},
getFunCol(funId) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=subeditgrid&query_funid=sys_fun_col&user_id=${roles}`,
method: 'post',
data: `start=0&limit=50&where_sql=fun_col.fun_id = ?&where_value=${funId}&where_type=string`
}).then(response => response.data)
},
getSelect(control_code) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=editgrid&query_funid=sys_control&user_id=${roles}`,
method: 'post',
data: `start=0&limit=50&where_sql=(funall_control.control_code = ? )&where_value=${control_code}&where_type=string&is_query=1&query_type=0`
}).then(response => response.data)
}
}

View File

@ -0,0 +1,188 @@
<template>
<div>
<div class="search">
<el-select v-model="funCode" placeholder="请选择" @change="change">
<el-option
v-for="item in fun"
:key="item.fun_col__col_code"
:label="item.fun_col__col_name"
:value="item.fun_col__col_code"
/>
</el-select>
<div v-if="control === 'text' || control === 'selectwin'">
<el-input v-model="searchVal" clearable placeholder="请输入内容" @keyup.enter.native="search" />
</div>
<div v-else-if="control === 'date'" class="combo-select">
<el-date-picker
v-model="searchVal"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
@change="search"
/>
</div>
<div v-else-if="control === 'combo' || 'checkbox'" class="combo-select">
<el-select v-model="searchVal" placeholder="请选择" clearable @change="search">
<el-option
v-for="item in combo"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</div>
<div v-else-if="control === ''">
<el-input v-model="searchVal" clearable placeholder="请输入内容" @keyup.enter.native="search" />
</div>
<el-button slot="append" icon="el-icon-search" @click="search" />
</div>
</div>
</template>
<script>
import api from './api'
export default {
name: 'SafeIdsp',
components: {
// buttons
},
props: {
dataId: {
type: Array,
default: () => []
},
tableName: {
type: String,
default: null
},
funid: {
type: String,
default: ''
}
},
data() {
return {
loading: false,
data: [],
funCode: '',
fun: [],
searchVal: '',
selData: [],
control: 'text',
control_name: '',
combo: [],
where_sql: '',
where_value: '',
where_type: ''
}
},
created() {
this.getFunCol()
},
mounted() {
},
methods: {
getFunCol() {
api.getFunCol(this.funid).then(data => {
if (data.success) {
this.fun = data.data.root
this.funCode = this.fun[0].fun_col__col_code
this.where_sql = `${this.fun[0].fun_col__col_code}`
this.where_type = this.fun[0].fun_col__data_type
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
change(val) {
this.searchVal = ''
this.control = ''
this.control_name = ''
this.where_sql = ''
this.where_type = ''
this.selData = this.fun.filter(d => {
return val === d.fun_col__col_code
})
this.control = this.selData[0].fun_col__col_control
this.control_name = this.selData[0].fun_col__control_name
this.where_sql = `${this.selData[0].fun_col__col_code}`
this.where_type = this.selData[0].fun_col__data_type
if (this.control === 'combo') {
this.getCombo()
} else if (this.control === 'checkbox') {
this.control_name = 'yesno'
this.getCombo()
}
},
getCombo() {
api.getSelect(this.control_name).then(data => {
if (data.success) {
this.combo = data.data.root
console.log(this.combo, 'this.combo')
} else {
this.$message.error(data.message)
}
})
},
search() {
let whereValue
let whereSql
if (this.searchVal) {
if (this.control === 'date') {
const where_sql = `${this.where_sql} >= ?`
const whereValue = `${this.searchVal}`
const where_type = `date`
whereSql = `where_sql=${where_sql}&where_value=${whereValue}&where_type=${where_type}`
} else {
whereValue = encodeURI(`\%${this.searchVal}\%`)
whereSql = `where_sql=${this.where_sql} like ?&where_value=${whereValue}&where_type=${this.where_type}`
}
} else {
whereSql = `where_sql=&where_value=&where_type=`
}
console.log(whereSql)
this.$emit('search', `${whereSql}`)
}
}
}
</script>
<style lang="scss" scoped>
.search{
display: flex;
.el-select,.el-select--medium{
width: 30%;
margin-left: 20%;
}
.el-input--medium,.el-input__inner{
margin-right: 20%;
width: 80%;
float: right;
}
.combo-select{
.el-select,.el-select--medium{
margin-right: 20%;
width: 80%;
float: right;
}
}
.el-button--medium {
height: 26.8px;
width: 50px;
padding: 0px;
background-color: #1890ff;
color:#fff;
margin-left: -9%;
}
}
::v-deep .el-input--medium .el-input__inner {
height: 26.8px;
line-height: 26.8px;
}
::v-deep .el-input--medium .el-input__icon {
line-height: 26.8px;
}
</style>

View File

@ -33,8 +33,8 @@ export default {
const timestamp = new Date().getTime()
return request({
url: `fileAction.do?funid=sys_attach&keyid=${keys}&pagetype=editgrid&eventcode=down&user_id=${roles}&dataType=byte&_dc=${timestamp}`,
method: 'post',
data: `funid=sys_attach&keyid=${keys}&pagetype=editgrid&eventcode=down&user_id=${roles}&dataType=byte&_dc=${timestamp}`
}).then(response => response.data)
method: 'get'
// data: `funid=sys_attach&keyid=${keys}&pagetype=editgrid&eventcode=down&user_id=${roles}&dataType=byte&_dc=${timestamp}`
})
}
}

View File

@ -1,329 +1,334 @@
<template>
<div>
<!-- <buttons funid="insp_det" style="margin:10px 10px" @editDelete="editDelete" @upload="upload" /> -->
<div class="buttons">
<el-upload
ref="upload"
style="margin-bottom: 10px;"
class="upload-demo"
:action="baseUrl"
:data="formData"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-change="onChange"
:on-success="onSuccess"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:show-file-list="false"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
<el-button size="small" type="primary" @click="editDelete">批量删除</el-button>
</div>
<div>
<el-table
ref="table"
v-loading="loading"
:data="data"
style="width: 100%"
border
stripe
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else-if="d.show !== false"
:key="i"
:prop="d.prop"
:label="d.label"
:width="d.width"
:min-width="d.minWidth"
:class-name="d.className"
:fixed="d.fixed"
>
<template slot-scope="scope">
<div v-if="d.label==='附件名称'">
<a @click="downLoadAttach(scope.row)">
{{
scope.row.sys_attach__attach_name
}}
</a>
</div>
<div v-else-if="d.label === '操作'">
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<div class="pagination">
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</div>
</div>
</div>
</template>
<script>
import api from './api'
// import buttons from '@/components/Buttons'
export default {
name: 'SafeIdsp',
components: {
// buttons
},
props: {
dataId: {
type: Array,
default: () => []
},
tableName: {
type: String,
default: null
},
funId: {
type: String,
default: null
}
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left',
width: '100px',
show: true
}, {
prop: 'sys_attach__attach_name',
label: '附件名称',
width: '250px',
show: true
}, {
prop: 'sys_attach__upload_user',
label: '上传人',
width: '100px',
show: true
},
{
prop: 'sys_attach__upload_date',
label: '上传日期',
width: '150px',
show: true
},
{
prop: 'opration',
label: '操作',
width: '100px',
minWidth: '120px',
show: true
}],
value: '',
dept_id: '',
level: '',
id: '',
parent_id: '',
form: {
dept_name: '',
dept_code: '',
memo: ''
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: '',
formData: {},
attach_path: null,
baseUrl: window.location.origin + '/bwhse/fileAction.do'
}
},
created() {
this.getList()
this.initFormData()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.pager.pageSize,
pageNo,
this.dataId,
this.tableName
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
initFormData() {
this.formData.attach_path = ''
this.formData.funid = 'sys_attach'
this.formData.eventcode = 'create'
this.formData.nousercheck = '1'
this.formData.table_name = this.tableName
this.formData.datafunid = this.funId
this.formData.user_id = 'administrator'
this.formData.dataid = this.dataId[0]
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=sys_dept&parentId=${this.dept_id}&levelCol=sys_dept.dept_level&keyid=&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.form.dept_code}&sys_dept__dept_name=${this.form.dept_name}&sys_dept__memo=${this.form.memo}&sys_dept__is_novalid=0&sys_dept__dept_id=&sys_dept__dept_level=${Number(this.level) + 1}&user_id=administrator&dataType= json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
this.$message.success('新增成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.sys_attach__attach_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除附件?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
edit(row) {
this.id = row.attach_id
this.parent_id = this.id.substring(0, this.id.length - 4)
console.log(this.parent_id, this.id)
this.auditForm = row
this.dialogEditVisible = true
},
auditFormChange(form) {
this.saveFrom = form
},
cellDblclick(row) {
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
console.log(val)
this.ids = val.map(d => d.sys_attach__attach_id)
},
downLoadAttach(row) {
api.downLoad(row.sys_attach__attach_id).then()
},
handleRemove(file, fileList) {
console.log(file, fileList)
},
handlePreview(file) {
console.log(file)
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 9 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`)
},
onChange(file) {
this.formData.attach_path = file.raw
},
onSuccess() {
this.$message.success('上传成功!')
this.getList()
this.$refs.upload.clearFiles()
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
.el-table__row {
a {
color: blue;
text-decoration: underline;
}
}
.buttons{
display: flex;
}
.el-button--primary {
height: 26.8px;
margin-right: 10px;
}
.pagination{
overflow: auto;
}
</style>
<template>
<div>
<!-- <buttons funid="insp_det" style="margin:10px 10px" @editDelete="editDelete" @upload="upload" /> -->
<div class="buttons">
<el-upload
ref="upload"
style="margin-bottom: 10px;"
class="upload-demo"
:action="baseUrl"
:data="formData"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-change="onChange"
:on-success="onSuccess"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:show-file-list="false"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
<el-button size="small" type="primary" @click="editDelete">批量删除</el-button>
</div>
<div>
<el-table
ref="table"
v-loading="loading"
:data="data"
style="width: 100%"
border
stripe
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else-if="d.show !== false"
:key="i"
:prop="d.prop"
:label="d.label"
:width="d.width"
:min-width="d.minWidth"
:class-name="d.className"
:fixed="d.fixed"
>
<template slot-scope="scope">
<div v-if="d.label==='附件名称'">
<a :href="href" @click="downLoadAttach(scope.row)">
{{
scope.row.sys_attach__attach_name
}}
</a>
</div>
<div v-else-if="d.label === '操作'">
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<div class="pagination">
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</div>
</div>
</div>
</template>
<script>
import api from './api'
import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
name: 'SafeIdsp',
components: {
// buttons
},
props: {
dataId: {
type: Array,
default: () => []
},
tableName: {
type: String,
default: null
},
funId: {
type: String,
default: null
}
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left',
width: '100px',
show: true
}, {
prop: 'sys_attach__attach_name',
label: '附件名称',
width: '250px',
show: true
}, {
prop: 'sys_attach__upload_user',
label: '上传人',
width: '100px',
show: true
},
{
prop: 'sys_attach__upload_date',
label: '上传日期',
width: '150px',
show: true
},
{
prop: 'opration',
label: '操作',
width: '100px',
minWidth: '120px',
show: true
}],
value: '',
dept_id: '',
level: '',
id: '',
parent_id: '',
form: {
dept_name: '',
dept_code: '',
memo: ''
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: '',
formData: {},
attach_path: null,
baseUrl: window.location.origin + '/bwhse/fileAction.do',
href: ''
}
},
created() {
this.getList()
this.initFormData()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.pager.pageSize,
pageNo,
this.dataId,
this.tableName
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
initFormData() {
this.formData.attach_path = ''
this.formData.funid = 'sys_attach'
this.formData.eventcode = 'create'
this.formData.nousercheck = '1'
this.formData.table_name = this.tableName
this.formData.datafunid = this.funId
this.formData.user_id = 'administrator'
this.formData.dataid = this.dataId[0]
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=sys_dept&parentId=${this.dept_id}&levelCol=sys_dept.dept_level&keyid=&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.form.dept_code}&sys_dept__dept_name=${this.form.dept_name}&sys_dept__memo=${this.form.memo}&sys_dept__is_novalid=0&sys_dept__dept_id=&sys_dept__dept_level=${Number(this.level) + 1}&user_id=administrator&dataType= json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
this.$message.success('新增成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.sys_attach__attach_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除附件?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
edit(row) {
this.id = row.attach_id
this.parent_id = this.id.substring(0, this.id.length - 4)
console.log(this.parent_id, this.id)
this.auditForm = row
this.dialogEditVisible = true
},
auditFormChange(form) {
this.saveFrom = form
},
cellDblclick(row) {
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
console.log(val)
this.ids = val.map(d => d.sys_attach__attach_id)
},
async downLoadAttach(row) {
const timestamp = new Date().getTime()
this.href = `${this.baseUrl}?funid=sys_attach&keyid=${row.sys_attach__attach_id}&pagetype=editgrid&eventcode=down&user_id=${roles}&dataType=byte&_dc=${timestamp}`
// await api.downLoad(row.sys_attach__attach_id)
},
handleRemove(file, fileList) {
console.log(file, fileList)
},
handlePreview(file) {
console.log(file)
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 9 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`)
},
onChange(file) {
this.formData.attach_path = file.raw
},
onSuccess() {
this.$message.success('上传成功!')
this.getList()
this.$refs.upload.clearFiles()
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
.el-table__row {
a {
color: blue;
text-decoration: underline;
}
}
.buttons{
display: flex;
}
.el-button--primary {
height: 26.8px;
margin-right: 10px;
}
.pagination{
overflow: auto;
}
</style>

View File

@ -1,163 +1,173 @@
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<error-log class="errLog-container right-menu-item hover-effect" />
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<!-- <el-tooltip content="Global Size" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip> -->
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img src="../../assets/login/portrait.jpg" class="user-avatar">
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="logout">
<span style="display:block;">退出登录</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import ErrorLog from '@/components/ErrorLog'
import Screenfull from '@/components/Screenfull'
// import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import { logout } from '@/api/user'
export default {
components: {
Breadcrumb,
Hamburger,
ErrorLog,
Screenfull,
// SizeSelect,
Search
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'device'
])
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
async logout() {
logout().then(data => {
if (data.success) {
this.$store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
this.$message.success('已退出登录!')
} else {
this.$message.error(data.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.navbar {
height: 50px;
overflow: hidden;
position: relative;
background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08);
.hamburger-container {
line-height: 46px;
height: 100%;
float: left;
cursor: pointer;
transition: background .3s;
-webkit-tap-highlight-color:transparent;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
.breadcrumb-container {
float: left;
}
.errLog-container {
display: inline-block;
vertical-align: top;
}
.right-menu {
float: right;
height: 100%;
line-height: 50px;
&:focus {
outline: none;
}
.right-menu-item {
display: inline-block;
padding: 0 8px;
height: 100%;
font-size: 18px;
color: #5a5e66;
vertical-align: text-bottom;
&.hover-effect {
cursor: pointer;
transition: background .3s;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
}
.avatar-container {
margin-right: 30px;
.avatar-wrapper {
margin-top: 5px;
position: relative;
.user-avatar {
cursor: pointer;
width: 38px;
height: 35px;
border-radius: 10px;
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -20px;
top: 25px;
font-size: 12px;
}
}
}
}
}
</style>
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<message id="header-search" class="right-menu-item message" />
<!-- <error-log class="errLog-container right-menu-item hover-effect" /> -->
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<!-- <el-tooltip content="Global Size" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip> -->
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img src="../../assets/login/portrait.jpg" class="user-avatar">
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="logout">
<span style="display:block;">退出登录</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
// import ErrorLog from '@/components/ErrorLog'
import Screenfull from '@/components/Screenfull'
// import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import Message from '@/components/HeaderMessage'
import { logout } from '@/api/user'
export default {
components: {
Breadcrumb,
Hamburger,
// ErrorLog,
Screenfull,
// SizeSelect,
Search,
Message
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'device'
])
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
async logout() {
logout().then(data => {
if (data.success) {
this.$store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
this.$message.success('已退出登录!')
} else {
this.$message.error(data.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.navbar {
height: 50px;
overflow: hidden;
position: relative;
background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08);
.hamburger-container {
line-height: 46px;
height: 100%;
float: left;
cursor: pointer;
transition: background .3s;
-webkit-tap-highlight-color:transparent;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
.breadcrumb-container {
float: left;
}
.errLog-container {
display: inline-block;
vertical-align: top;
}
.right-menu {
float: right;
height: 100%;
line-height: 50px;
&:focus {
outline: none;
}
.message{
cursor: pointer;
}
.right-menu-item {
display: inline-block;
padding: 0 12px;
height: 100%;
font-size: 18px;
color: #5a5e66;
vertical-align: text-bottom;
&.hover-effect {
cursor: pointer;
transition: background .3s;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
}
.avatar-container {
margin-right: 30px;
.avatar-wrapper {
margin-top: 5px;
position: relative;
.user-avatar {
cursor: pointer;
width: 38px;
height: 35px;
border-radius: 10px;
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -20px;
top: 25px;
font-size: 12px;
}
}
}
}
}
</style>

View File

@ -146,3 +146,15 @@
.el-dialog__footer {
padding: 10px 20px;
}
// 设置el-select样式
.el-select {
width: 100%;
}
// .el-input--medium .el-input__inner {
// height: 26.8px;
// line-height: 26.8px;
// }
// .el-input--medium .el-input__icon {
// line-height: 26.8px;
// }

View File

@ -2,6 +2,7 @@ import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
import router from '@/router'
// create an axios instance
const service = axios.create({
@ -68,8 +69,8 @@ service.interceptors.response.use(
return Promise.reject(new Error(res.message || 'Error'))
} else {
if (res.data.message === '当前用户没有登录!') {
// store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
store.dispatch('user/logout')
router.push(`/login`)
}
return res
}

View File

@ -4,17 +4,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDate(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
getDate(pageSize, pageNo, whereSql) {
return request({
url: `commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=hidden_check&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {

View File

@ -25,7 +25,7 @@
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="检查人">
<el-form-item ref="hidden_danger__check_man" label="检查人" prop="hidden_danger__check_man">
<el-input v-model="form.hidden_danger__check_man" placeholder="请选择检查人" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="checkManVisible = !checkManVisible" />
</el-input>
@ -41,7 +41,7 @@
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="检查时间">
<el-form-item label="检查时间" prop="hidden_danger__check_date">
<el-date-picker
v-model="form.hidden_danger__check_date"
type="date"
@ -199,6 +199,12 @@ export default {
hidden_danger__check_dept_id: ''
},
rules: {
hidden_danger__check_man: [
{ required: true, message: '请选择检查人', trigger: 'blur' }
],
hidden_danger__check_date: [
{ required: true, message: '请选择检查时间', trigger: 'blur' }
],
hidden_danger__check_problem: [
{ required: true, message: '请输入隐患描述', trigger: 'blur' }
]
@ -215,6 +221,14 @@ export default {
hiddenState: []
}
},
watch: {
'form.hidden_danger__check_man': {
handler(val, oldVal) {
this.$refs['hidden_danger__check_man'].clearValidate()
},
deep: true
}
},
created() {
this.getHiddenState()
},

View File

@ -25,7 +25,7 @@
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="检查人">
<el-form-item ref="hidden_danger__check_man" label="检查人" prop="hidden_danger__check_man">
<el-input v-model="form.hidden_danger__check_man" placeholder="请选择检查人" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="checkManVisible = !checkManVisible" />
</el-input>
@ -41,7 +41,7 @@
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="检查时间">
<el-form-item label="检查时间" prop="hidden_danger__check_date">
<el-date-picker
v-model="form.hidden_danger__check_date"
type="date"
@ -200,6 +200,12 @@ export default {
hidden_danger__check_dept_id: ''
},
rules: {
hidden_danger__check_man: [
{ required: true, message: '请选择检查人', trigger: 'blur' }
],
hidden_danger__check_date: [
{ required: true, message: '请选择检查时间', trigger: 'blur' }
],
hidden_danger__check_problem: [
{ required: true, message: '请输入隐患描述', trigger: 'blur' }
]
@ -214,6 +220,14 @@ export default {
hiddenState: []
}
},
watch: {
'form.hidden_danger__check_man': {
handler(val, oldVal) {
this.$refs['hidden_danger__check_man'].clearValidate()
},
deep: true
}
},
created() {
this.getList()
this.getHiddenState()

View File

@ -1,6 +1,11 @@
<template>
<div>
<buttons funid="hidden_check" style="margin:10px 10px" @Create="editCreate" @Del="editDelete" @editSave="editSave" @upload="upload" />
<div class="app-container">
<div class="head">
<div>
<buttons funid="hidden_check" @Create="editCreate" @Del="editDelete" @editSave="editSave" @upload="upload" />
</div>
<Search funid="hidden_check" @search="search" />
</div>
<el-card>
<el-table
ref="deptTable"
@ -8,9 +13,11 @@
:data="list"
style="width: 100%"
stripe
type="index"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<el-table-column type="index" fixed="left" width="35px" />
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
@ -35,7 +42,7 @@
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button icon="el-icon-folder" type="text" title="查看附件" @click="checkAttach(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
<!-- <el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" /> -->
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
@ -55,8 +62,8 @@
<el-dialog v-if="dialogUploadVisible" title="附件" :visible.sync="dialogUploadVisible" width="45%" @close="closeUploadDialog">
<Attach ref="attach" :data-id="ids" table-name="hidden_danger" fun-id="hidden_check" @change="auditFormChange" />
<div slot="footer" class="dialog-footer">
<el-button @click="dialogUploadVisible = false"> </el-button>
<el-button type="primary" @click="save"> </el-button>
<!-- <el-button @click="dialogUploadVisible = false"> </el-button> -->
<el-button type="primary" @click="dialogUploadVisible = false">返回</el-button>
</div>
</el-dialog>
<el-drawer
@ -74,12 +81,14 @@
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import Attach from '@/components/sys_attach'
import { parseDay } from '@/utils/index'
export default {
name: 'HiddenCheck',
components: {
buttons,
Search,
Attach
},
data() {
@ -182,7 +191,7 @@ export default {
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereSql: '',
whereValue: '',
dialogUploadVisible: false,
options: [],
@ -204,8 +213,7 @@ export default {
api.getDate(
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
@ -222,6 +230,10 @@ export default {
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
queryAttach() {
api.queryAttach(this.keyids).then(data => {
if (data.success) {
@ -283,26 +295,6 @@ export default {
auditFormChange(form) {
this.saveFrom = form
},
save() {
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = false
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
closeUploadDialog() {
this.dialogUploadVisible = false
},
@ -326,12 +318,6 @@ export default {
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
},
checkAttach(row) {
// this.drawer = true
this.ids = []
@ -342,6 +328,10 @@ export default {
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}

View File

@ -4,17 +4,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDate(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
getDate(pageSize, pageNo, whereSql) {
return request({
url: `commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=hidden_reform&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {

View File

@ -1,6 +1,11 @@
<template>
<div>
<buttons funid="hidden_reform" style="margin:10px 10px" @Create="editCreate" @Del="editDelete" @editSave="editSave" @upload="upload" />
<div class="app-container">
<div class="head">
<div>
<buttons funid="hidden_reform" @Create="editCreate" @Del="editDelete" @editSave="editSave" @upload="upload" />
</div>
<Search funid="hidden_reform" @search="search" />
</div>
<el-card>
<el-table
ref="deptTable"
@ -11,6 +16,7 @@
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<el-table-column type="index" fixed="left" width="35px" />
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
@ -41,7 +47,7 @@
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button icon="el-icon-folder" type="text" title="查看附件" @click="checkAttach(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
<!-- <el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" /> -->
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
@ -61,8 +67,8 @@
<el-dialog v-if="dialogUploadVisible" title="附件" :visible.sync="dialogUploadVisible" width="45%" @close="closeUploadDialog">
<Attach ref="attach" :data-id="ids" table-name="hidden_danger" fun-id="hidden_check" @change="auditFormChange" />
<div slot="footer" class="dialog-footer">
<el-button @click="dialogUploadVisible = false"> </el-button>
<el-button type="primary" @click="save"> </el-button>
<!-- <el-button @click="dialogUploadVisible = false"> </el-button> -->
<el-button type="primary" @click="dialogUploadVisible = false">返回</el-button>
</div>
</el-dialog>
</div>
@ -71,12 +77,14 @@
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import Attach from '@/components/sys_attach'
import { parseDay } from '@/utils/index'
export default {
name: 'HiddenReform',
components: {
buttons,
Search,
Attach
},
data() {
@ -204,8 +212,7 @@ export default {
api.getDate(
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
@ -218,6 +225,10 @@ export default {
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
editCreate() {
const param = `/hidden_danger/hidden_reform/create`
this.$router.push(param)
@ -262,26 +273,6 @@ export default {
auditFormChange(form) {
this.saveFrom = form
},
save() {
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = false
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
closeUploadDialog() {
this.dialogUploadVisible = false
},
@ -305,12 +296,6 @@ export default {
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
},
checkAttach(row) {
// this.drawer = true
this.ids = []
@ -321,6 +306,10 @@ export default {
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}

View File

@ -4,17 +4,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDate(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
getDate(pageSize, pageNo, whereSql) {
return request({
url: `commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=hidden_review&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {

View File

@ -1,6 +1,11 @@
<template>
<div>
<buttons funid="hidden_review" style="margin:10px 10px" @Create="editCreate" @Del="editDelete" @editSave="editSave" @upload="upload" />
<div class="app-container">
<div class="head">
<div>
<buttons funid="hidden_review" @Create="editCreate" @Del="editDelete" @editSave="editSave" @upload="upload" />
</div>
<Search funid="hidden_review" @search="search" />
</div>
<el-card>
<el-table
ref="deptTable"
@ -11,6 +16,7 @@
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<el-table-column type="index" fixed="left" width="35px" />
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
@ -37,7 +43,7 @@
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button icon="el-icon-folder" type="text" title="查看附件" @click="checkAttach(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
<!-- <el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" /> -->
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
@ -57,8 +63,8 @@
<el-dialog v-if="dialogUploadVisible" title="附件" :visible.sync="dialogUploadVisible" width="45%" @close="closeUploadDialog">
<Attach ref="attach" :data-id="ids" table-name="hidden_danger" fun-id="hidden_check" @change="auditFormChange" />
<div slot="footer" class="dialog-footer">
<el-button @click="dialogUploadVisible = false"> </el-button>
<el-button type="primary" @click="save"> </el-button>
<!-- <el-button @click="dialogUploadVisible = false"> </el-button> -->
<el-button type="primary" @click="dialogUploadVisible = false">返回</el-button>
</div>
</el-dialog>
</div>
@ -67,12 +73,14 @@
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import Attach from '@/components/sys_attach'
import { parseDay } from '@/utils/index'
export default {
name: 'HiddenReview',
components: {
buttons,
Search,
Attach
},
data() {
@ -160,7 +168,7 @@ export default {
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereSql: '',
whereValue: '',
dialogUploadVisible: false
}
@ -194,6 +202,10 @@ export default {
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
editCreate() {
const param = `/hidden_danger/hidden_review/create`
this.$router.push(param)
@ -232,26 +244,6 @@ export default {
auditFormChange(form) {
this.saveFrom = form
},
save() {
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = false
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
closeUploadDialog() {
this.dialogUploadVisible = false
},
@ -275,12 +267,6 @@ export default {
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
},
checkAttach(row) {
// this.drawer = true
this.ids = []
@ -291,6 +277,10 @@ export default {
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}

View File

@ -4,17 +4,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDate(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
getDate(pageSize, pageNo, whereSql) {
return request({
url: `commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=insp_name&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
Crerte(data) {

View File

@ -1,196 +1,207 @@
<template>
<div>
<el-card>
<buttons funid="safe_insp" style="margin-bottom:20px" @save="save" />
<el-form ref="form" :model="form" label-width="80px">
<el-row>
<el-col :span="7">
<el-form-item label="巡检单编号">
<el-input v-model="form.safe_insp__insp_code" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检状态">
<el-select v-model="form.safe_insp__insp_state" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检名称">
<el-input v-model="form.safe_insp__insp_name" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检日期">
<el-date-picker
v-model="form.safe_insp__insp_date"
type="date"
placeholder="选择日期"
style="width: 100%;"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检人员">
<el-input v-model="form.safe_insp__insp_man" placeholder="请输入内容" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="selUserVisible = !selUserVisible" />
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注">
<el-input v-model="form.safe_insp__insp_memo" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检频率">
<el-input v-model="form.safe_insp__insp_times" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="已巡检数量">
<el-input v-model="form.safe_insp__insp_ed" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="待巡检数量">
<el-input v-model="form.safe_insp__insp_ing" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="不符合数量">
<el-input v-model="form.safe_insp__insp_non" disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<InspDet :id="id" />
<el-dialog
v-if="selUserVisible"
title="选择人员"
:visible.sync="selUserVisible"
width="60%"
>
<SelUser @updateUsers="updateUsers" @updateUser="updateUser" />
<span>
<el-button @click="selUserVisible = false"> </el-button>
<el-button type="primary" @click="selUserVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from '../../api'
import publicApi from '@/api/public'
import buttons from '@/components/formBtn'
import InspDet from '../insp_det'
import SelUser from '@/components/selUser'
export default {
name: 'EditForm',
components: {
buttons,
SelUser,
InspDet
},
// props: {
// id: { type: String, default: () => '' }
// },
data() {
return {
loading: false,
form: {},
id: this.$route.params.id,
disabled: false,
options: [],
selUserVisible: false
}
},
created() {
console.log(this.id)
this.getList()
this.getTypeSel()
},
methods: {
getList() {
this.loading = true
api.getFormDate(this.id).then(data => {
if (data.success) {
this.form = data.data.root[0]
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async getTypeSel() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.options = data.data.root
} else {
this.$message.error(data.message)
}
})
},
onSubmit() {},
updateUser(data) {
this.form.safe_insp__insp_man = data.sys_user__user_name
this.form.safe_insp__insp_man_id = data.sys_user__user_id
this.selUserVisible = false
},
updateUsers(data) {
this.form.safe_insp__insp_man = data.map(d => { return d.sys_user__user_name }).join(';')
this.form.safe_insp__insp_man_id = data.map(d => { return d.sys_user__user_id }).join(';')
},
save() {
api.Save(this.form).then(data => {
if (data.success) {
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
},
back() {
// this.$router.back(-1)
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding: 10px 20px !important;
}
::v-deep .el-form-item__label {
text-align: right;
/* vertical-align: middle; */
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 6px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.el-col{
margin-left: 2%;
}
</style>
<template>
<div>
<el-card>
<div class="buttons">
<buttons funid="safe_insp" style="margin-bottom:20px" @save="save" />
<el-button type="primary" @click="back">返回列表</el-button>
</div>
<el-form ref="form" :model="form" label-width="80px">
<el-row>
<el-col :span="7">
<el-form-item label="巡检单编号">
<el-input v-model="form.safe_insp__insp_code" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检状态">
<el-select v-model="form.safe_insp__insp_state" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检名称">
<el-input v-model="form.safe_insp__insp_name" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检日期">
<el-date-picker
v-model="form.safe_insp__insp_date"
type="date"
placeholder="选择日期"
style="width: 100%;"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检人员">
<el-input v-model="form.safe_insp__insp_man" placeholder="请输入内容" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="selUserVisible = !selUserVisible" />
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注">
<el-input v-model="form.safe_insp__insp_memo" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检频率">
<el-input v-model="form.safe_insp__insp_times" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="已巡检数量">
<el-input v-model="form.safe_insp__insp_ed" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="待巡检数量">
<el-input v-model="form.safe_insp__insp_ing" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="不符合数量">
<el-input v-model="form.safe_insp__insp_non" disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<InspDet :id="id" />
<el-dialog
v-if="selUserVisible"
title="选择人员"
:visible.sync="selUserVisible"
width="60%"
>
<SelUser @updateUsers="updateUsers" @updateUser="updateUser" />
<span>
<el-button @click="selUserVisible = false"> </el-button>
<el-button type="primary" @click="selUserVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from '../../api'
import publicApi from '@/api/public'
import buttons from '@/components/formBtn'
import InspDet from '../insp_det'
import SelUser from '@/components/selUser'
export default {
name: 'EditForm',
components: {
buttons,
SelUser,
InspDet
},
// props: {
// id: { type: String, default: () => '' }
// },
data() {
return {
loading: false,
form: {},
id: this.$route.params.id,
disabled: false,
options: [],
selUserVisible: false
}
},
created() {
console.log(this.id)
this.getList()
this.getTypeSel()
},
methods: {
getList() {
this.loading = true
api.getFormDate(this.id).then(data => {
if (data.success) {
this.form = data.data.root[0]
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async getTypeSel() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.options = data.data.root
} else {
this.$message.error(data.message)
}
})
},
onSubmit() {},
updateUser(data) {
this.form.safe_insp__insp_man = data.sys_user__user_name
this.form.safe_insp__insp_man_id = data.sys_user__user_id
this.selUserVisible = false
},
updateUsers(data) {
this.form.safe_insp__insp_man = data.map(d => { return d.sys_user__user_name }).join(';')
this.form.safe_insp__insp_man_id = data.map(d => { return d.sys_user__user_id }).join(';')
},
save() {
api.Save(this.form).then(data => {
if (data.success) {
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
},
back() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.push('/hidden_danger/hidden_check')
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding: 10px 20px !important;
}
::v-deep .el-form-item__label {
text-align: right;
/* vertical-align: middle; */
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 6px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.el-col{
margin-left: 2%;
}
.buttons {
display: flex;
.el-button--primary {
margin-left: 10px;
height: 26.8px;
}
}
</style>

View File

@ -1,35 +1,29 @@
import request from '@/utils/request'
export default {
getDate(id, pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=subeditgrid&query_funid=insp_item&user_id=administrator`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=(insp_item.insp_name_id = ?)${whereSql}&where_value=${id}${whereValue}&where_type=string${whereType}&is_query=1&query_type=0`
}).then(response => response.data)
},
Crerte(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `${data}`
}).then(response => response.data)
},
Delete(ids) {
let keys = ''
ids.forEach(d => {
keys += 'keyid=' + d + '&'
})
return request({
url: `/commonAction.do`,
method: 'post',
data: `funid=insp_item&${keys}pagetype=editgrid&eventcode=delete_eg&user_id=administrator&dataType=json`
}).then(response => response.data)
}
}
import request from '@/utils/request'
export default {
getDate(id, pageSize, pageNo, whereSql) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=subeditgrid&query_funid=insp_item&user_id=administrator`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
Crerte(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `${data}`
}).then(response => response.data)
},
Delete(ids) {
let keys = ''
ids.forEach(d => {
keys += 'keyid=' + d + '&'
})
return request({
url: `/commonAction.do`,
method: 'post',
data: `funid=insp_item&${keys}pagetype=editgrid&eventcode=delete_eg&user_id=administrator&dataType=json`
}).then(response => response.data)
}
}

View File

@ -1,273 +1,287 @@
<template>
<div>
<el-card>
<buttons funid="insp_item" style="margin-bottom:10px" @editCreate="editCreate" @editDelete="editDelete" />
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else
:key="i"
:prop="d.prop"
:label="d.label"
>
<template slot-scope="scope">
<div v-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检项目" :label-width="formLabelWidth" prop="insp_item__item_name">
<el-input v-model="form.insp_item__item_name" type="textarea" />
</el-form-item>
<el-form-item label="巡检标准" :label-width="formLabelWidth" prop="insp_item__item_std">
<el-input v-model="form.insp_item__item_std" type="textarea" />
</el-form-item>
<el-form-item label="巡检方法" :label-width="formLabelWidth" prop="insp_item__item_way">
<el-input v-model="form.insp_item__item_way" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import publicApi from '@/api/public'
import buttons from '@/components/Buttons'
export default {
name: 'SafeIdsp',
components: {
buttons
},
data() {
return {
id: '',
loading: false,
data: [],
deptTree: [],
ids: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'insp_item__item_name',
label: '巡检项目'
}, {
prop: 'insp_item__item_std',
label: '巡检标准'
},
{
prop: 'insp_item__item_way',
label: '巡检方法'
}, {
prop: 'opration',
label: '操作',
width: '70px',
fixed: 'right',
minWidth: '70px',
show: true
}],
dept_id: '',
level: '',
parent_id: '',
initFrom: {
insp_item__insp_item_id: '',
insp_item__item_name: '',
insp_item__item_std: '',
insp_item__item_way: ''
},
form: {},
rules: {
insp_item__item_name: [
{ required: true, message: '请输入巡检项目', trigger: 'blur' }
],
insp_item__item_std: [
{ required: true, message: '请输入巡检标准', trigger: 'blur' }
],
insp_item__item_way: [
{ required: true, message: '请输入巡检方法', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: '',
title: ''
}
},
created() {
if (this.value) {
this.id = this.value
this.getList(this.id)
}
},
mounted() {
},
methods: {
getList(id) {
this.id = id
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.id,
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
editCreate() {
this.title = '新增'
this.form = JSON.parse(JSON.stringify(this.initFrom))
this.dialogFormVisible = true
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=insp_item&fkValue=${this.id}&pfunid=insp_name&keyid=${this.form.insp_item__insp_item_id}&pagetype=editgrid&eventcode=save_eg&insp_item__item_name=${this.form.insp_item__item_name}&insp_item__item_std=${this.form.insp_item__item_std}&insp_item__item_way=${this.form.insp_item__item_way}&insp_item__insp_item_id=${this.form.insp_item__insp_item_id}&insp_item__insp_name_id=${this.id}&user_id=administrator&dataType=json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList(this.id)
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
edit(row) {
this.title = '编辑'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(row))
},
Delete(row) {
this.ids = []
this.ids.push(row.insp_item__insp_item_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList(this.id)
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
auditFormChange(form) {
this.saveFrom = form
},
cellDblclick(row) {
this.title = '编辑'
this.form = JSON.parse(JSON.stringify(row))
this.dialogFormVisible = true
},
sizeChange(size) {
this.pager.pageSize = size
this.getList(this.id)
},
pageChange(page) {
this.pager.pageNo = page
this.getList(this.id)
},
handleSelectionChange(val) {
this.ids = val.map(d => d.insp_item__insp_item_id)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList(this.id)
},
async getTypeSel() {
await publicApi.getTypeSel('inspresult').then(data => {
if (data.success) {
this.inspresult = data.data.root
} else {
this.$message.error(data.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
</style>
<template>
<div>
<el-card>
<div class="head">
<div>
<buttons funid="insp_item" style="margin-bottom:10px" @editCreate="editCreate" @editDelete="editDelete" />
</div>
<Search funid="insp_item" @search="search" />
</div>
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else
:key="i"
:prop="d.prop"
:label="d.label"
>
<template slot-scope="scope">
<div v-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检项目" :label-width="formLabelWidth" prop="insp_item__item_name">
<el-input v-model="form.insp_item__item_name" type="textarea" />
</el-form-item>
<el-form-item label="巡检标准" :label-width="formLabelWidth" prop="insp_item__item_std">
<el-input v-model="form.insp_item__item_std" type="textarea" />
</el-form-item>
<el-form-item label="巡检方法" :label-width="formLabelWidth" prop="insp_item__item_way">
<el-input v-model="form.insp_item__item_way" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import publicApi from '@/api/public'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
export default {
name: 'SafeIdsp',
components: {
buttons,
Search
},
data() {
return {
id: '',
loading: false,
data: [],
deptTree: [],
ids: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'insp_item__item_name',
label: '巡检项目'
}, {
prop: 'insp_item__item_std',
label: '巡检标准'
},
{
prop: 'insp_item__item_way',
label: '巡检方法'
}, {
prop: 'opration',
label: '操作',
width: '70px',
fixed: 'right',
minWidth: '70px',
show: true
}],
dept_id: '',
level: '',
parent_id: '',
initFrom: {
insp_item__insp_item_id: '',
insp_item__item_name: '',
insp_item__item_std: '',
insp_item__item_way: ''
},
form: {},
rules: {
insp_item__item_name: [
{ required: true, message: '请输入巡检项目', trigger: 'blur' }
],
insp_item__item_std: [
{ required: true, message: '请输入巡检标准', trigger: 'blur' }
],
insp_item__item_way: [
{ required: true, message: '请输入巡检方法', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: '',
whereValue: '',
title: ''
}
},
created() {
if (this.value) {
this.id = this.value
this.getList(this.id)
}
},
mounted() {
},
methods: {
getList(id) {
this.id = id
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.id,
this.pager.pageSize,
pageNo,
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
editCreate() {
this.title = '新增'
this.form = JSON.parse(JSON.stringify(this.initFrom))
this.dialogFormVisible = true
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=insp_item&fkValue=${this.id}&pfunid=insp_name&keyid=${this.form.insp_item__insp_item_id}&pagetype=editgrid&eventcode=save_eg&insp_item__item_name=${this.form.insp_item__item_name}&insp_item__item_std=${this.form.insp_item__item_std}&insp_item__item_way=${this.form.insp_item__item_way}&insp_item__insp_item_id=${this.form.insp_item__insp_item_id}&insp_item__insp_name_id=${this.id}&user_id=administrator&dataType=json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList(this.id)
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
edit(row) {
this.title = '编辑'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(row))
},
Delete(row) {
this.ids = []
this.ids.push(row.insp_item__insp_item_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList(this.id)
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
auditFormChange(form) {
this.saveFrom = form
},
cellDblclick(row) {
this.title = '编辑'
this.form = JSON.parse(JSON.stringify(row))
this.dialogFormVisible = true
},
sizeChange(size) {
this.pager.pageSize = size
this.getList(this.id)
},
pageChange(page) {
this.pager.pageNo = page
this.getList(this.id)
},
handleSelectionChange(val) {
this.ids = val.map(d => d.insp_item__insp_item_id)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = ''
this.getList(this.id)
},
async getTypeSel() {
await publicApi.getTypeSel('inspresult').then(data => {
if (data.success) {
this.inspresult = data.data.root
} else {
this.$message.error(data.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}
</style>

View File

@ -1,270 +1,286 @@
<template>
<div>
<buttons funid="insp_name" style="margin:10px 10px" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
<el-row>
<el-col :span="8">
<el-card>
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
@row-click="rowClick"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else-if="d.show !== false"
:key="i"
:prop="d.prop"
:label="d.label"
:width="d.width"
:min-width="d.minWidth"
:class-name="d.className"
:fixed="d.fixed"
>
<template slot-scope="scope">
<div v-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<div class="pagination">
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</div>
</el-card>
</el-col>
<el-col :span="16">
<InspItem ref="inspItem" v-model="id" />
</el-col>
</el-row>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检表名称" :label-width="formLabelWidth" prop="dept_code">
<el-input v-model="form.insp_name__insp_name" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检表名称" :label-width="formLabelWidth" prop="dept_code">
<el-input v-model="form.insp_name__insp_name" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import buttons from '@/components/Buttons'
import InspItem from './components/insp_item'
export default {
name: 'SafeIdsp',
components: {
buttons,
InspItem
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'insp_name__insp_name',
label: '巡检表名称'
}, {
prop: 'opration',
label: '操作',
width: '100px',
fixed: 'right',
minWidth: '100px',
show: true
}],
value: '',
id: '',
form: { },
initForm: {
insp_name__insp_name: '',
insp_name__insp_name_id: ''
},
rules: {
insp_name__insp_name: [
{ required: true, message: '请输入部门编码', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeList: [],
whereSql: false,
whereValue: '',
title: ''
}
},
created() {
this.getList()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
editCreate() {
this.title = '新增'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(this.initForm))
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=insp_name&keyid=${this.form.insp_name__insp_name_id}&pagetype=editgrid&eventcode=save_eg&insp_name__insp_name=${this.form.insp_name__insp_name}&insp_name__insp_name_id=${this.form.insp_name__insp_name_id}&insp_name__org_id=&insp_name__dept_id=&user_id=administrator&dataType=json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
edit(row) {
this.title = '编辑'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(row))
},
Delete(row) {
this.ids = []
this.ids.push(row.insp_name__insp_name_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
auditFormChange(form) {
this.form = form
},
cellDblclick(row) {
this.title = '编辑'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(row))
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.insp_name__insp_name_id)
},
rowClick(row) {
this.id = row.insp_name__insp_name_id
this.$refs.inspItem.getList(this.id)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
.pagination{
overflow: auto;
}
</style>
<template>
<div class="app-container">
<div class="head">
<div>
<buttons funid="insp_name" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
</div>
<!-- <Search funid="insp_name" @search="search" /> -->
</div>
<el-row>
<el-col :span="8">
<el-card>
<Search class="search" funid="insp_name" @search="search" />
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
@row-click="rowClick"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else-if="d.show !== false"
:key="i"
:prop="d.prop"
:label="d.label"
:width="d.width"
:min-width="d.minWidth"
:class-name="d.className"
:fixed="d.fixed"
>
<template slot-scope="scope">
<div v-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<div class="pagination">
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</div>
</el-card>
</el-col>
<el-col :span="16">
<InspItem ref="inspItem" v-model="id" />
</el-col>
</el-row>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检表名称" :label-width="formLabelWidth" prop="dept_code">
<el-input v-model="form.insp_name__insp_name" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检表名称" :label-width="formLabelWidth" prop="dept_code">
<el-input v-model="form.insp_name__insp_name" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import InspItem from './components/insp_item'
export default {
name: 'SafeIdsp',
components: {
buttons,
Search,
InspItem
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'insp_name__insp_name',
label: '巡检表名称'
}, {
prop: 'opration',
label: '操作',
width: '100px',
fixed: 'right',
minWidth: '100px',
show: true
}],
value: '',
id: '',
form: { },
initForm: {
insp_name__insp_name: '',
insp_name__insp_name_id: ''
},
rules: {
insp_name__insp_name: [
{ required: true, message: '请输入部门编码', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeList: [],
whereSql: false,
whereValue: '',
title: ''
}
},
created() {
this.getList()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.pager.pageSize,
pageNo,
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
editCreate() {
this.title = '新增'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(this.initForm))
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=insp_name&keyid=${this.form.insp_name__insp_name_id}&pagetype=editgrid&eventcode=save_eg&insp_name__insp_name=${this.form.insp_name__insp_name}&insp_name__insp_name_id=${this.form.insp_name__insp_name_id}&insp_name__org_id=&insp_name__dept_id=&user_id=administrator&dataType=json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
edit(row) {
this.title = '编辑'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(row))
},
Delete(row) {
this.ids = []
this.ids.push(row.insp_name__insp_name_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
auditFormChange(form) {
this.form = form
},
cellDblclick(row) {
this.title = '编辑'
this.dialogFormVisible = true
this.form = JSON.parse(JSON.stringify(row))
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.insp_name__insp_name_id)
},
rowClick(row) {
this.id = row.insp_name__insp_name_id
this.$refs.inspItem.getList(this.id)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.search {
margin-left: -50px;
margin-bottom: 10px;
}
.el-card {
margin-top: 10px;
}
.pagination{
overflow: auto;
}
</style>

View File

@ -4,17 +4,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDate(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
getDate(pageSize, pageNo, whereSql) {
return request({
url: `commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=safe_insp&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {

View File

@ -1,296 +1,307 @@
<template>
<div>
<el-card>
<buttons funid="safe_insp" style="margin-bottom:20px" @save="save" />
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="7">
<el-form-item label="巡检单编号">
<el-input v-model="form.safe_insp__insp_code" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检状态">
<el-select v-model="form.safe_insp__insp_state" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_name" label="巡检名称" prop="safe_insp__insp_name">
<el-input v-model="form.safe_insp__insp_name" placeholder="请选择巡检名称" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="inspNameVisible = !inspNameVisible" />
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检日期" prop="safe_insp__insp_date">
<el-date-picker
v-model="form.safe_insp__insp_date"
type="date"
placeholder="选择日期"
style="width: 100%;"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_man" label="巡检人员" prop="safe_insp__insp_man">
<el-input v-model="form.safe_insp__insp_man" placeholder="请选择巡检人员" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="selUserVisible = !selUserVisible" />
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注">
<el-input v-model="form.safe_insp__insp_memo" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_times" label="巡检频率" prop="safe_insp__insp_times">
<el-select v-model="form.safe_insp__insp_times" placeholder="请选择">
<el-option
v-for="item in insptimes"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="已巡检数量">
<el-input v-model="form.safe_insp__insp_ed" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="待巡检数量">
<el-input v-model="form.safe_insp__insp_ing" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="不符合数量">
<el-input v-model="form.safe_insp__insp_non" disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<InspDet v-if="id" :id="id" />
<el-dialog
v-if="selUserVisible"
title="选择人员"
:visible.sync="selUserVisible"
width="60%"
>
<SelUser ref="selUser" @updateUser="updateUser" />
<span>
<el-button @click="selUserVisible = false"> </el-button>
<el-button type="primary" @click="selUser"> </el-button>
</span>
</el-dialog>
<el-dialog
v-if="inspNameVisible"
title="选择巡检名称"
:visible.sync="inspNameVisible"
width="60%"
>
<InspName @updateInspName="updateInspName" />
<span>
<el-button @click="inspNameVisible = false"> </el-button>
<el-button type="primary" @click="inspNameVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from '../../api'
import publicApi from '@/api/public'
import buttons from '@/components/formBtn'
import InspDet from '../insp_det'
import SelUser from '@/components/selUser'
import InspName from '../inspName'
export default {
name: 'AuditForm',
components: {
buttons,
SelUser,
InspDet,
InspName
},
// props: {
// id: { type: String, default: () => '' }
// },
data() {
return {
loading: false,
form: {
safe_insp__insp_code: '',
safe_insp__insp_name: '',
safe_insp__insp_state: '',
safe_insp__insp_date: '',
safe_insp__insp_man: '',
safe_insp__insp_times: '',
safe_insp__insp_memo: '',
safe_insp__insp_ed: '',
safe_insp__insp_ing: '',
safe_insp__insp_non: '',
safe_insp__insp_name_id: '',
safe_insp__org_id: '',
safe_insp__safe_insp_id: '',
safe_insp__dept_id: '',
safe_insp__insp_man_id: ''
},
rules: {
safe_insp__insp_name: [
{ required: true, message: '请选择巡检名称', trigger: 'blur' }
],
safe_insp__insp_man: [
{ required: true, message: '请选择巡检人员', trigger: 'blur' }
],
safe_insp__insp_date: [
{ required: true, message: '请选择巡检日期', trigger: 'blur' }
],
safe_insp__insp_times: [
{ required: true, message: '请选择巡检频率', trigger: 'blur' }
]
},
inspName: [],
disabled: false,
options: [],
insptimes: [],
selUserVisible: false,
inspNameVisible: false,
id: ''
}
},
watch: {
'form.safe_insp__insp_name': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_name'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_man': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_man'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_times': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_times'].clearValidate()
},
deep: true
}
},
created() {
this.getTypeSel()
this.getInsptimes()
},
methods: {
getList() {
this.loading = true
api.getFormDate().then(data => {
if (data.success) {
this.form = data.data.root[0]
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async getTypeSel() {
await publicApi.getTypeSel('inspstate').then(data => {
if (data.success) {
this.options = data.data.root
} else {
this.$message.error(data.message)
}
})
},
async getInsptimes() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.insptimes = data.data.root
} else {
this.$message.error(data.message)
}
})
},
onSubmit() {},
updateUser(data) {
this.form.safe_insp__insp_man = data.sys_user__user_name
this.form.safe_insp__insp_man_id = data.sys_user__user_id
this.selUserVisible = false
},
selUser() {
this.updateUsers(this.$refs.selUser.Users)
this.selUserVisible = false
},
updateUsers(data) {
this.form.safe_insp__insp_man = data.map(d => { return d.sys_user__user_name }).join(';')
this.form.safe_insp__insp_man_id = data.map(d => { return d.sys_user__user_id }).join(';')
this.selUserVisible = false
},
updateInspName(data) {
this.form.safe_insp__insp_name = data.insp_name__insp_name
this.form.safe_insp__insp_name_id = data.insp_name__insp_name_id
this.inspNameVisible = false
},
save() {
this.$refs.form.validate(valid => {
if (valid) {
api.Crerte(this.form).then(data => {
if (data.success) {
this.$message.success('保存成功!')
const param = `/insp/edit_form/audit/${data.data.keyid}`
this.$router.push(param)
} else {
this.$message.error(data.message)
}
})
}
})
},
back() {
// this.$router.back(-1)
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding: 10px 20px !important;
}
::v-deep .el-form-item__label {
text-align: right;
/* vertical-align: middle; */
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 6px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.el-col{
margin-left: 2%;
}
</style>
<template>
<div>
<el-card>
<div class="buttons">
<buttons funid="safe_insp" style="margin-bottom:20px" @save="save" />
<el-button type="primary" @click="back">返回列表</el-button>
</div>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="7">
<el-form-item label="巡检单编号">
<el-input v-model="form.safe_insp__insp_code" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检状态">
<el-select v-model="form.safe_insp__insp_state" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_name" label="巡检名称" prop="safe_insp__insp_name">
<el-input v-model="form.safe_insp__insp_name" placeholder="请选择巡检名称" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="inspNameVisible = !inspNameVisible" />
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检日期" prop="safe_insp__insp_date">
<el-date-picker
v-model="form.safe_insp__insp_date"
type="date"
placeholder="选择日期"
style="width: 100%;"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_man" label="巡检人员" prop="safe_insp__insp_man">
<el-input v-model="form.safe_insp__insp_man" placeholder="请选择巡检人员" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="selUserVisible = !selUserVisible" />
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注">
<el-input v-model="form.safe_insp__insp_memo" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_times" label="巡检频率" prop="safe_insp__insp_times">
<el-select v-model="form.safe_insp__insp_times" placeholder="请选择">
<el-option
v-for="item in insptimes"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="已巡检数量">
<el-input v-model="form.safe_insp__insp_ed" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="待巡检数量">
<el-input v-model="form.safe_insp__insp_ing" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="不符合数量">
<el-input v-model="form.safe_insp__insp_non" disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<InspDet v-if="id" :id="id" />
<el-dialog
v-if="selUserVisible"
title="选择人员"
:visible.sync="selUserVisible"
width="60%"
>
<SelUser ref="selUser" @updateUser="updateUser" />
<span>
<el-button @click="selUserVisible = false"> </el-button>
<el-button type="primary" @click="selUser"> </el-button>
</span>
</el-dialog>
<el-dialog
v-if="inspNameVisible"
title="选择巡检名称"
:visible.sync="inspNameVisible"
width="60%"
>
<InspName @updateInspName="updateInspName" />
<span>
<el-button @click="inspNameVisible = false"> </el-button>
<el-button type="primary" @click="inspNameVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from '../../api'
import publicApi from '@/api/public'
import buttons from '@/components/formBtn'
import InspDet from '../insp_det'
import SelUser from '@/components/selUser'
import InspName from '../inspName'
export default {
name: 'AuditForm',
components: {
buttons,
SelUser,
InspDet,
InspName
},
// props: {
// id: { type: String, default: () => '' }
// },
data() {
return {
loading: false,
form: {
safe_insp__insp_code: '',
safe_insp__insp_name: '',
safe_insp__insp_state: '',
safe_insp__insp_date: '',
safe_insp__insp_man: '',
safe_insp__insp_times: '',
safe_insp__insp_memo: '',
safe_insp__insp_ed: '',
safe_insp__insp_ing: '',
safe_insp__insp_non: '',
safe_insp__insp_name_id: '',
safe_insp__org_id: '',
safe_insp__safe_insp_id: '',
safe_insp__dept_id: '',
safe_insp__insp_man_id: ''
},
rules: {
safe_insp__insp_name: [
{ required: true, message: '请选择巡检名称', trigger: 'blur' }
],
safe_insp__insp_man: [
{ required: true, message: '请选择巡检人员', trigger: 'blur' }
],
safe_insp__insp_date: [
{ required: true, message: '请选择巡检日期', trigger: 'blur' }
],
safe_insp__insp_times: [
{ required: true, message: '请选择巡检频率', trigger: 'blur' }
]
},
inspName: [],
disabled: false,
options: [],
insptimes: [],
selUserVisible: false,
inspNameVisible: false,
id: ''
}
},
watch: {
'form.safe_insp__insp_name': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_name'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_man': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_man'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_times': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_times'].clearValidate()
},
deep: true
}
},
created() {
this.getTypeSel()
this.getInsptimes()
},
methods: {
getList() {
this.loading = true
api.getFormDate().then(data => {
if (data.success) {
this.form = data.data.root[0]
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async getTypeSel() {
await publicApi.getTypeSel('inspstate').then(data => {
if (data.success) {
this.options = data.data.root
} else {
this.$message.error(data.message)
}
})
},
async getInsptimes() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.insptimes = data.data.root
} else {
this.$message.error(data.message)
}
})
},
onSubmit() {},
updateUser(data) {
this.form.safe_insp__insp_man = data.sys_user__user_name
this.form.safe_insp__insp_man_id = data.sys_user__user_id
this.selUserVisible = false
},
selUser() {
this.updateUsers(this.$refs.selUser.Users)
this.selUserVisible = false
},
updateUsers(data) {
this.form.safe_insp__insp_man = data.map(d => { return d.sys_user__user_name }).join(';')
this.form.safe_insp__insp_man_id = data.map(d => { return d.sys_user__user_id }).join(';')
this.selUserVisible = false
},
updateInspName(data) {
this.form.safe_insp__insp_name = data.insp_name__insp_name
this.form.safe_insp__insp_name_id = data.insp_name__insp_name_id
this.inspNameVisible = false
},
save() {
this.$refs.form.validate(valid => {
if (valid) {
api.Crerte(this.form).then(data => {
if (data.success) {
this.$message.success('保存成功!')
const param = `/insp/edit_form/audit/${data.data.keyid}`
this.$router.push(param)
} else {
this.$message.error(data.message)
}
})
}
})
},
back() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.push('/insp/safe_insp')
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding: 10px 20px !important;
}
::v-deep .el-form-item__label {
text-align: right;
/* vertical-align: middle; */
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 6px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.el-col{
margin-left: 2%;
}
.buttons {
display: flex;
.el-button--primary {
margin-left: 10px;
height: 26.8px;
}
}
</style>

View File

@ -1,281 +1,292 @@
<template>
<div>
<el-card>
<buttons funid="safe_insp" style="margin-bottom:20px" @save="save" />
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="7">
<el-form-item label="巡检单编号">
<el-input v-model="form.safe_insp__insp_code" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检状态">
<el-select v-model="form.safe_insp__insp_state" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_name" label="巡检名称" prop="safe_insp__insp_name">
<el-input v-model="form.safe_insp__insp_name" placeholder="请选择巡检名称" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="inspNameVisible = !inspNameVisible" />
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检日期" prop="safe_insp__insp_date">
<el-date-picker
v-model="form.safe_insp__insp_date"
type="date"
placeholder="选择日期"
style="width: 100%;"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_man" label="巡检人员" prop="safe_insp__insp_man">
<el-input v-model="form.safe_insp__insp_man" placeholder="请选择巡检人员" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="selUserVisible = !selUserVisible" />
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注">
<el-input v-model="form.safe_insp__insp_memo" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_times" label="巡检频率" prop="safe_insp__insp_times">
<el-select v-model="form.safe_insp__insp_times" placeholder="请选择">
<el-option
v-for="item in insptimes"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="已巡检数量">
<el-input v-model="form.safe_insp__insp_ed" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="待巡检数量">
<el-input v-model="form.safe_insp__insp_ing" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="不符合数量">
<el-input v-model="form.safe_insp__insp_non" disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<InspDet :id="id" />
<el-dialog
v-if="selUserVisible"
title="选择人员"
:visible.sync="selUserVisible"
width="60%"
>
<SelUser @updateUsers="updateUsers" @updateUser="updateUser" />
<span>
<el-button @click="selUserVisible = false"> </el-button>
<el-button type="primary" @click="selUserVisible = false"> </el-button>
</span>
</el-dialog>
<el-dialog
v-if="inspNameVisible"
title="选择巡检名称"
:visible.sync="inspNameVisible"
width="60%"
>
<InspName @updateInspName="updateInspName" />
<span>
<el-button @click="inspNameVisible = false"> </el-button>
<el-button type="primary" @click="inspNameVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from '../../api'
import publicApi from '@/api/public'
import buttons from '@/components/formBtn'
import InspDet from '../insp_det'
import SelUser from '@/components/selUser'
import InspName from '../inspName'
export default {
name: 'EditForm',
components: {
buttons,
SelUser,
InspDet,
InspName
},
// props: {
// id: { type: String, default: () => '' }
// },
data() {
return {
loading: false,
form: {
safe_insp__insp_code: '',
safe_insp__insp_name: '',
safe_insp__insp_state: '',
safe_insp__insp_date: '',
safe_insp__insp_man: '',
safe_insp__insp_times: '',
safe_insp__insp_memo: '',
safe_insp__insp_ed: '',
safe_insp__insp_ing: '',
safe_insp__insp_non: '',
safe_insp__safe_insp_id: ''
},
rules: {
safe_insp__insp_name: [
{ required: true, message: '请选择巡检名称', trigger: 'blur' }
],
safe_insp__insp_man: [
{ required: true, message: '请选择巡检人员', trigger: 'blur' }
],
safe_insp__insp_date: [
{ required: true, message: '请选择巡检日期', trigger: 'blur' }
],
safe_insp__insp_times: [
{ required: true, message: '请选择巡检频率', trigger: 'blur' }
]
},
id: this.$route.params.id,
disabled: false,
options: [],
insptimes: [],
selUserVisible: false,
inspNameVisible: false
}
},
watch: {
'form.safe_insp__insp_name': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_name'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_man': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_man'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_times': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_times'].clearValidate()
},
deep: true
}
},
created() {
console.log(this.id)
this.getList()
this.getTypeSel()
},
methods: {
getList() {
this.loading = true
api.getFormDate(this.id).then(data => {
if (data.success) {
this.form = data.data.root[0]
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async getTypeSel() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.options = data.data.root
} else {
this.$message.error(data.message)
}
})
},
async getInsptimes() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.insptimes = data.data.root
} else {
this.$message.error(data.message)
}
})
},
onSubmit() {},
updateUser(data) {
this.form.safe_insp__insp_man = data.sys_user__user_name
this.form.safe_insp__insp_man_id = data.sys_user__user_id
this.selUserVisible = false
},
updateUsers(data) {
this.form.safe_insp__insp_man = data.map(d => { return d.sys_user__user_name }).join(';')
this.form.safe_insp__insp_man_id = data.map(d => { return d.sys_user__user_id }).join(';')
},
save() {
api.Save(this.form).then(data => {
if (data.success) {
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
},
updateInspName(data) {
this.form.safe_insp__insp_name = data.insp_name__insp_name
this.form.safe_insp__insp_name_id = data.insp_name__insp_name_id
this.inspNameVisible = false
},
back() {
// this.$router.back(-1)
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding: 10px 20px !important;
}
::v-deep .el-form-item__label {
text-align: right;
/* vertical-align: middle; */
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 6px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.el-col{
margin-left: 2%;
}
</style>
<template>
<div>
<el-card>
<div class="buttons">
<buttons funid="safe_insp" style="margin-bottom:20px" @save="save" />
<el-button type="primary" @click="back">返回列表</el-button>
</div>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="7">
<el-form-item label="巡检单编号">
<el-input v-model="form.safe_insp__insp_code" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="巡检状态">
<el-select v-model="form.safe_insp__insp_state" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_name" label="巡检名称" prop="safe_insp__insp_name">
<el-input v-model="form.safe_insp__insp_name" placeholder="请选择巡检名称" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="inspNameVisible = !inspNameVisible" />
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="巡检日期" prop="safe_insp__insp_date">
<el-date-picker
v-model="form.safe_insp__insp_date"
type="date"
placeholder="选择日期"
style="width: 100%;"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_man" label="巡检人员" prop="safe_insp__insp_man">
<el-input v-model="form.safe_insp__insp_man" placeholder="请选择巡检人员" class="input-with-select" clearable>
<el-button slot="append" icon="el-icon-search" @click="selUserVisible = !selUserVisible" />
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注">
<el-input v-model="form.safe_insp__insp_memo" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item ref="safe_insp__insp_times" label="巡检频率" prop="safe_insp__insp_times">
<el-select v-model="form.safe_insp__insp_times" placeholder="请选择">
<el-option
v-for="item in insptimes"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="已巡检数量">
<el-input v-model="form.safe_insp__insp_ed" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="待巡检数量">
<el-input v-model="form.safe_insp__insp_ing" disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="不符合数量">
<el-input v-model="form.safe_insp__insp_non" disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<InspDet :id="id" />
<el-dialog
v-if="selUserVisible"
title="选择人员"
:visible.sync="selUserVisible"
width="60%"
>
<SelUser @updateUsers="updateUsers" @updateUser="updateUser" />
<span>
<el-button @click="selUserVisible = false"> </el-button>
<el-button type="primary" @click="selUserVisible = false"> </el-button>
</span>
</el-dialog>
<el-dialog
v-if="inspNameVisible"
title="选择巡检名称"
:visible.sync="inspNameVisible"
width="60%"
>
<InspName @updateInspName="updateInspName" />
<span>
<el-button @click="inspNameVisible = false"> </el-button>
<el-button type="primary" @click="inspNameVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from '../../api'
import publicApi from '@/api/public'
import buttons from '@/components/formBtn'
import InspDet from '../insp_det'
import SelUser from '@/components/selUser'
import InspName from '../inspName'
export default {
name: 'EditForm',
components: {
buttons,
SelUser,
InspDet,
InspName
},
// props: {
// id: { type: String, default: () => '' }
// },
data() {
return {
loading: false,
form: {
safe_insp__insp_code: '',
safe_insp__insp_name: '',
safe_insp__insp_state: '',
safe_insp__insp_date: '',
safe_insp__insp_man: '',
safe_insp__insp_times: '',
safe_insp__insp_memo: '',
safe_insp__insp_ed: '',
safe_insp__insp_ing: '',
safe_insp__insp_non: '',
safe_insp__safe_insp_id: ''
},
rules: {
safe_insp__insp_name: [
{ required: true, message: '请选择巡检名称', trigger: 'blur' }
],
safe_insp__insp_man: [
{ required: true, message: '请选择巡检人员', trigger: 'blur' }
],
safe_insp__insp_date: [
{ required: true, message: '请选择巡检日期', trigger: 'blur' }
],
safe_insp__insp_times: [
{ required: true, message: '请选择巡检频率', trigger: 'blur' }
]
},
id: this.$route.params.id,
disabled: false,
options: [],
insptimes: [],
selUserVisible: false,
inspNameVisible: false
}
},
watch: {
'form.safe_insp__insp_name': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_name'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_man': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_man'].clearValidate()
},
deep: true
},
'form.safe_insp__insp_times': {
handler(val, oldVal) {
this.$refs['safe_insp__insp_times'].clearValidate()
},
deep: true
}
},
created() {
console.log(this.id)
this.getList()
this.getTypeSel()
},
methods: {
getList() {
this.loading = true
api.getFormDate(this.id).then(data => {
if (data.success) {
this.form = data.data.root[0]
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async getTypeSel() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.options = data.data.root
} else {
this.$message.error(data.message)
}
})
},
async getInsptimes() {
await publicApi.getTypeSel('insptimes').then(data => {
if (data.success) {
this.insptimes = data.data.root
} else {
this.$message.error(data.message)
}
})
},
onSubmit() {},
updateUser(data) {
this.form.safe_insp__insp_man = data.sys_user__user_name
this.form.safe_insp__insp_man_id = data.sys_user__user_id
this.selUserVisible = false
},
updateUsers(data) {
this.form.safe_insp__insp_man = data.map(d => { return d.sys_user__user_name }).join(';')
this.form.safe_insp__insp_man_id = data.map(d => { return d.sys_user__user_id }).join(';')
},
save() {
api.Save(this.form).then(data => {
if (data.success) {
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
},
updateInspName(data) {
this.form.safe_insp__insp_name = data.insp_name__insp_name
this.form.safe_insp__insp_name_id = data.insp_name__insp_name_id
this.inspNameVisible = false
},
back() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.push('/insp/safe_insp')
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding: 10px 20px !important;
}
::v-deep .el-form-item__label {
text-align: right;
/* vertical-align: middle; */
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 6px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.el-col{
margin-left: 2%;
}
.buttons {
display: flex;
.el-button--primary {
margin-left: 10px;
height: 26.8px;
}
}
</style>

View File

@ -1,63 +1,57 @@
import request from '@/utils/request'
export default {
getDate(id, pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `dept_id like ?`
whereType = 'string'
}
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=subeditgrid&query_funid=insp_det&user_id=administrator`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=(insp_det.safe_insp_id = ?)${whereSql}&where_value=${id}${whereValue}&where_type=string${whereType}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=editgrid&query_funid=sys_dept&user_id=administrator`,
method: 'post',
data: `start=0&limit=10000&where_sql=&where_value=&where_type=&is_query=1&query_type=0`
}).then(response => response.data)
},
Crerte(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `${data}`
}).then(response => response.data)
},
auditSave(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `${data}`
}).then(response => response.data)
},
Delete(ids) {
let keys = ''
ids.forEach(d => {
keys += 'keyid=' + d + '&'
})
return request({
url: `/commonAction.do`,
method: 'post',
data: `funid=insp_det&${keys}pagetype=editgrid&eventcode=delete_eg&user_id=administrator&dataType=json`
}).then(response => response.data)
},
getFormDate(id) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=safe_insp&user_id=administrator`,
method: 'post',
data: `start=0&limit=10&where_sql=safe_insp.safe_insp_id = ?&where_value=${id}&where_type=string&is_query=1&query_type=0`
}).then(response => response.data)
},
Save(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `funid=safe_insp&keyid=${data.safe_insp__safe_insp_id}&safe_insp__insp_code=${data.safe_insp__insp_code}&safe_insp__insp_name=${data.safe_insp__insp_name}&safe_insp__insp_man=${data.safe_insp__insp_man}&safe_insp__insp_times=${data.safe_insp__insp_times}&safe_insp__insp_name_id=${data.safe_insp__insp_name_id}&safe_insp__org_id=${data.safe_insp__org_id}&safe_insp__insp_state=${data.safe_insp__insp_state}&safe_insp__insp_date=${data.safe_insp__insp_date}&safe_insp__insp_memo=${data.safe_insp__insp_memo}&safe_insp__safe_insp_id=${data.safe_insp__safe_insp_id}&safe_insp__dept_id=${data.safe_insp__dept_id}&safe_insp__insp_man_id=${data.safe_insp__insp_man_id}&safe_insp__insp_ed=&safe_insp__insp_ing=${data.safe_insp__insp_ing}&safe_insp__insp_non=&pagetype=form&eventcode=save&dirtyfields=safe_insp.insp_man;safe_insp.insp_times;safe_insp.insp_date;safe_insp.insp_memo;safe_insp.insp_man_id;safe_insp.insp_name;safe_insp.insp_name_id;&fkValue=&user_id=administrator&dataType=json`
}).then(response => response.data)
}
}
import request from '@/utils/request'
export default {
getDate(id, pageSize, pageNo, whereSql) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=subeditgrid&query_funid=insp_det&user_id=administrator`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=editgrid&query_funid=sys_dept&user_id=administrator`,
method: 'post',
data: `start=0&limit=10000&where_sql=&where_value=&where_type=&is_query=1&query_type=0`
}).then(response => response.data)
},
Crerte(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `${data}`
}).then(response => response.data)
},
auditSave(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `${data}`
}).then(response => response.data)
},
Delete(ids) {
let keys = ''
ids.forEach(d => {
keys += 'keyid=' + d + '&'
})
return request({
url: `/commonAction.do`,
method: 'post',
data: `funid=insp_det&${keys}pagetype=editgrid&eventcode=delete_eg&user_id=administrator&dataType=json`
}).then(response => response.data)
},
getFormDate(id) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=grid&query_funid=safe_insp&user_id=administrator`,
method: 'post',
data: `start=0&limit=10&where_sql=safe_insp.safe_insp_id = ?&where_value=${id}&where_type=string&is_query=1&query_type=0`
}).then(response => response.data)
},
Save(data) {
return request({
url: `/commonAction.do`,
method: 'post',
data: `funid=safe_insp&keyid=${data.safe_insp__safe_insp_id}&safe_insp__insp_code=${data.safe_insp__insp_code}&safe_insp__insp_name=${data.safe_insp__insp_name}&safe_insp__insp_man=${data.safe_insp__insp_man}&safe_insp__insp_times=${data.safe_insp__insp_times}&safe_insp__insp_name_id=${data.safe_insp__insp_name_id}&safe_insp__org_id=${data.safe_insp__org_id}&safe_insp__insp_state=${data.safe_insp__insp_state}&safe_insp__insp_date=${data.safe_insp__insp_date}&safe_insp__insp_memo=${data.safe_insp__insp_memo}&safe_insp__safe_insp_id=${data.safe_insp__safe_insp_id}&safe_insp__dept_id=${data.safe_insp__dept_id}&safe_insp__insp_man_id=${data.safe_insp__insp_man_id}&safe_insp__insp_ed=&safe_insp__insp_ing=${data.safe_insp__insp_ing}&safe_insp__insp_non=&pagetype=form&eventcode=save&dirtyfields=safe_insp.insp_man;safe_insp.insp_times;safe_insp.insp_date;safe_insp.insp_memo;safe_insp.insp_man_id;safe_insp.insp_name;safe_insp.insp_name_id;&fkValue=&user_id=administrator&dataType=json`
}).then(response => response.data)
}
}

View File

@ -1,303 +1,333 @@
<template>
<div class="app-container">
<el-card>
<buttons funid="safe_insp" style="margin-bottom:10px" @Create="editCreate" @Del="editDelete" />
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else
:key="i"
:prop="d.prop"
:label="d.label"
>
<template slot-scope="scope">
<div v-if="d.label==='巡检结果'">
{{
scope.row.insp_det__det_result === '1' ? '符合' : scope.row.insp_det__det_result === '0' ? '不符合' : null
}}
</div>
<div v-else-if="d.label==='是否已整改'">
{{
scope.row.insp_det__reform_flag === '1' ? '已整改' : scope.row.insp_det__reform_flag === '0' ? '未整改' : null
}}
</div>
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检结果" :label-width="formLabelWidth" prop="insp_det__det_result">
<el-select v-model="form.insp_det__det_result" placeholder="请选择">
<el-option
v-for="item in inspresult"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
<el-form-item label="不符合描述" :label-width="formLabelWidth" prop="det_desc">
<el-input v-model="form.insp_det__det_desc" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import publicApi from '@/api/public'
import buttons from '@/components/Buttons'
export default {
name: 'SafeIdsp',
components: {
buttons
},
props: {
id: {
type: String,
default: null
}
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'insp_det__det_name',
label: '巡检项目'
}, {
prop: 'insp_det__det_std',
label: '巡检标准'
},
{
prop: 'insp_det__det_way',
label: '巡检方法'
}, {
prop: 'insp_det__det_result',
label: '巡检结果'
},
{
prop: 'insp_det__det_desc',
label: '不符合描述'
},
{
prop: 'insp_det__reform_flag',
label: '是否已整改'
},
{
prop: 'opration',
label: '操作',
width: '70px',
fixed: 'right',
minWidth: '70px',
show: true
}],
value: '',
dept_id: '',
level: '',
parent_id: '',
initFrom: {
det_desc: '',
insp_det__det_desc: '',
insp_det__det_name: '',
insp_det__det_name_id: '',
insp_det__det_result: '',
insp_det__det_std: '',
insp_det__det_way: '',
insp_det__insp_det_id: '',
insp_det__reform_flag: '',
insp_det__safe_insp_id: ''
},
form: {},
rules: {
insp_det__det_result: [
{ required: true, message: '请选择巡检结果', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: ''
}
},
created() {
this.getList()
this.getTypeSel()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.id,
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
editCreate() {
this.title = '新增'
this.form = JSON.parse(JSON.stringify(this.initFrom))
this.dialogFormVisible = true
},
edit(row) {
console.log(row, 'row')
this.title = '编辑'
this.form = row
this.dialogFormVisible = true
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=insp_det&fkValue=${this.id}&pfunid=safe_insp&keyid=${this.form.insp_det__insp_det_id}&pagetype=editgrid&eventcode=save_eg&insp_det__det_name=${this.form.insp_det__det_name}&insp_det__det_std=${this.form.insp_det__det_std}&insp_det__det_way=${this.form.insp_det__det_way}&insp_det__det_result=${this.form.insp_det__det_result}&insp_det__det_desc=${this.form.insp_det__det_desc}&insp_det__reform_flag=${this.form.insp_det__reform_flag}&insp_det__safe_insp_id=${this.id}&insp_det__insp_det_id=${this.form.insp_det__insp_det_id}&insp_det__det_name_id=${this.form.insp_det__insp_det_id}&user_id=administrator&dataType=json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.insp_det__insp_det_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
auditFormChange(form) {
this.saveFrom = form
},
cellDblclick(row) {
this.title = '编辑'
this.form = JSON.parse(JSON.stringify(row))
this.dialogFormVisible = true
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.insp_det__insp_det_id)
console.log(this.ids, 'this.ids')
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
},
async getTypeSel() {
await publicApi.getTypeSel('inspresult').then(data => {
if (data.success) {
this.inspresult = data.data.root
} else {
this.$message.error(data.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
</style>
<template>
<div class="app-container">
<el-card>
<div class="head">
<div>
<buttons funid="insp_det" style="margin-bottom:10px" @Create="editCreate" @Del="editDelete" @upload="upload" />
</div>
<Search funid="insp_det" @search="search" />
</div>
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else
:key="i"
:prop="d.prop"
:label="d.label"
>
<template slot-scope="scope">
<div v-if="d.label==='巡检结果'">
{{
scope.row.insp_det__det_result === '1' ? '符合' : scope.row.insp_det__det_result === '0' ? '不符合' : null
}}
</div>
<div v-else-if="d.label==='是否已整改'">
{{
scope.row.insp_det__reform_flag === '1' ? '已整改' : scope.row.insp_det__reform_flag === '0' ? '未整改' : null
}}
</div>
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<!-- <el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" /> -->
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
<el-dialog v-if="dialogFormVisible" :title="title" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="巡检结果" :label-width="formLabelWidth" prop="insp_det__det_result">
<el-select v-model="form.insp_det__det_result" placeholder="请选择">
<el-option
v-for="item in inspresult"
:key="item.funall_control__value_data"
:label="item.funall_control__display_data"
:value="item.funall_control__value_data"
/>
</el-select>
</el-form-item>
<el-form-item label="不符合描述" :label-width="formLabelWidth" prop="det_desc">
<el-input v-model="form.insp_det__det_desc" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
<el-dialog v-if="dialogUploadVisible" title="附件" :visible.sync="dialogUploadVisible" width="45%" @close="closeUploadDialog">
<Attach ref="attach" :data-id="ids" table-name="insp_det" fun-id="insp_det" @change="auditFormChange" />
<div slot="footer" class="dialog-footer">
<!-- <el-button @click="dialogUploadVisible = false"> </el-button> -->
<el-button type="primary" @click="dialogUploadVisible = false">返回</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import publicApi from '@/api/public'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import Attach from '@/components/sys_attach'
export default {
name: 'SafeIdsp',
components: {
buttons,
Search,
Attach
},
props: {
id: {
type: String,
default: null
}
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'insp_det__det_name',
label: '巡检项目'
}, {
prop: 'insp_det__det_std',
label: '巡检标准'
},
{
prop: 'insp_det__det_way',
label: '巡检方法'
}, {
prop: 'insp_det__det_result',
label: '巡检结果'
},
{
prop: 'insp_det__det_desc',
label: '不符合描述'
},
{
prop: 'insp_det__reform_flag',
label: '是否已整改'
},
{
prop: 'opration',
label: '操作',
width: '70px',
fixed: 'right',
minWidth: '70px',
show: true
}],
value: '',
dept_id: '',
level: '',
parent_id: '',
initFrom: {
det_desc: '',
insp_det__det_desc: '',
insp_det__det_name: '',
insp_det__det_name_id: '',
insp_det__det_result: '',
insp_det__det_std: '',
insp_det__det_way: '',
insp_det__insp_det_id: '',
insp_det__reform_flag: '',
insp_det__safe_insp_id: ''
},
form: {},
rules: {
insp_det__det_result: [
{ required: true, message: '请选择巡检结果', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: '',
dialogUploadVisible: false
}
},
created() {
this.getList()
this.getTypeSel()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.id,
this.pager.pageSize,
pageNo,
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
upload() {
if (this.ids.length > 1) {
this.$message.warning('只能选择一条数据!')
} else if (this.ids.length === 0) {
this.$message.warning('请选择一条数据!')
} else {
this.dialogUploadVisible = true
}
},
closeUploadDialog() {
this.dialogUploadVisible = false
},
editCreate() {
this.title = '新增'
this.form = JSON.parse(JSON.stringify(this.initFrom))
this.dialogFormVisible = true
},
edit(row) {
console.log(row, 'row')
this.title = '编辑'
this.form = row
this.dialogFormVisible = true
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=insp_det&fkValue=${this.id}&pfunid=safe_insp&keyid=${this.form.insp_det__insp_det_id}&pagetype=editgrid&eventcode=save_eg&insp_det__det_name=${this.form.insp_det__det_name}&insp_det__det_std=${this.form.insp_det__det_std}&insp_det__det_way=${this.form.insp_det__det_way}&insp_det__det_result=${this.form.insp_det__det_result}&insp_det__det_desc=${this.form.insp_det__det_desc}&insp_det__reform_flag=${this.form.insp_det__reform_flag}&insp_det__safe_insp_id=${this.id}&insp_det__insp_det_id=${this.form.insp_det__insp_det_id}&insp_det__det_name_id=${this.form.insp_det__insp_det_id}&user_id=administrator&dataType=json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.$message.success('保存成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.insp_det__insp_det_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
auditFormChange(form) {
this.saveFrom = form
},
cellDblclick(row) {
this.title = '编辑'
this.form = JSON.parse(JSON.stringify(row))
this.dialogFormVisible = true
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.insp_det__insp_det_id)
console.log(this.ids, 'this.ids')
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
async getTypeSel() {
await publicApi.getTypeSel('inspresult').then(data => {
if (data.success) {
this.inspresult = data.data.root
} else {
this.$message.error(data.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}
</style>

View File

@ -1,406 +1,415 @@
<template>
<div>
<buttons funid="insp_det" style="margin:10px 10px" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
<el-card>
<el-table
ref="table"
v-loading="loading"
:data="data"
style="width: 100%"
border
stripe
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else-if="d.show !== false"
:key="i"
:prop="d.prop"
:label="d.label"
:width="d.width"
:min-width="d.minWidth"
:class-name="d.className"
:fixed="d.fixed"
>
<template slot-scope="scope">
<div v-if="d.label==='巡检状态'">
{{
scope.row.ssafe_insp__insp_state == 1 ? '巡检中' : '已巡检'
}}
</div>
<div v-else-if="d.label==='巡检日期'">
{{
parseDay(scope.row.safe_insp__insp_date)
}}
</div>
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" size="mini" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
</div>
</template>
<script>
import api from './api'
import buttons from '@/components/Buttons'
import { parseDay } from '@/utils/index'
export default {
name: 'SafeIdsp',
components: {
buttons
},
data() {
return {
parseDay,
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left',
width: '100px',
show: true
}, {
prop: 'safe_insp__insp_code',
label: '巡检编号',
width: '200px',
show: true
}, {
prop: 'safe_insp__insp_name',
label: '巡检名称',
width: '250px',
show: true
},
{
prop: 'safe_insp__insp_state',
label: '巡检状态',
width: '100px',
show: true
}, {
prop: 'safe_insp__insp_date',
label: '巡检日期',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_man',
label: '巡检人员',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_times',
label: '巡检频率',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_memo',
label: '备注',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_ed',
label: '已巡检数量',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_ing',
label: '待巡检数量',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_non',
label: '不符合数量',
width: '100px',
show: true
},
{
prop: 'opration',
label: '操作',
width: '120px',
fixed: 'right',
minWidth: '120px',
show: true
}],
value: '',
dept_id: '',
level: '',
id: '',
parent_id: '',
form: {
dept_name: '',
dept_code: '',
memo: ''
},
rules: {
dept_code: [
{ required: true, message: '请输入部门编码', trigger: 'blur' }
],
dept_name: [
{ required: true, message: '请输入部门名称', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: ''
}
},
created() {
this.getList()
this.transitionTree()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async transitionTree() {
await api.getDeptTree().then(data => {
if (data.success) {
this.deptTree = data.data.root
} else {
this.$message.error(data.message)
}
})
this.treeData = []
let data = []
data = this.deptTree.sort((a, b) => {
return a.sys_dept__dept_id - b.sys_dept__dept_id
})
const oneTreeList = data.filter(d => {
return d.sys_dept__dept_level === '1'
})
for (let i = 0; i < oneTreeList.length; i++) {
const treeList = data.filter(d => {
return d.sys_dept__dept_id.substring(0, 4).indexOf(oneTreeList[i].sys_dept__dept_id) > -1
})
treeList.forEach(d => {
d.children = []
if (d.sys_dept__dept_level === '1') {
this.treeData.push(d)
} else if (d.sys_dept__dept_level === '2') {
this.treeData[i].children.push(d)
} else if (d.sys_dept__dept_level === '3') {
this.treeData[i].children.forEach((threeVal, three) => {
if (d.sys_dept__dept_id.substring(0, 8).indexOf(threeVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children.push(d)
}
})
} else if (d.sys_dept__dept_level === '4') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
if (d.sys_dept__dept_id.substring(0, 12).indexOf(fourVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children.push(d)
}
})
})
} else if (d.sys_dept__dept_level === '5') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
if (d.sys_dept__dept_id.substring(0, 16).indexOf(fiveVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children.push(d)
}
})
})
})
} else if (d.sys_dept__dept_level === '6') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
fiveVal.children.forEach((sixVal, six) => {
if (d.sys_dept__dept_id.substring(0, 20).indexOf(sixVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children[six].children.push(d)
}
})
})
})
})
}
})
console.log(this.treeData, 'this.treeData')
}
},
editCreate() {
const param = `/insp/edit_form/create`
this.$router.push(param)
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=sys_dept&parentId=${this.dept_id}&levelCol=sys_dept.dept_level&keyid=&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.form.dept_code}&sys_dept__dept_name=${this.form.dept_name}&sys_dept__memo=${this.form.memo}&sys_dept__is_novalid=0&sys_dept__dept_id=&sys_dept__dept_level=${Number(this.level) + 1}&user_id=administrator&dataType= json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.transitionTree()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
this.$message.success('新增成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.sys_dept__dept_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除部门?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
edit(row) {
this.id = row.sys_dept__dept_id
this.parent_id = this.id.substring(0, this.id.length - 4)
console.log(this.parent_id, this.id)
this.auditForm = row
this.dialogEditVisible = true
},
auditFormChange(form) {
this.saveFrom = form
},
save() {
console.log(this.saveFrom, 'this.saveFrom')
console.log(this.auditForm, 'this.auditForm')
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = false
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
this.dialogEditVisible = false
} else {
this.$message.error(data.message)
}
})
}
})
},
cellDblclick(row) {
const param = `/insp/edit_form/audit/${row.safe_insp__safe_insp_id}`
this.$router.push(param)
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.sys_dept__dept_id)
this.levels = val.map(d => d.sys_dept__dept_level)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
console.log(data)
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
</style>
<template>
<div class="app-container">
<div class="head">
<div>
<buttons funid="insp_det" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
</div>
<Search funid="safe_insp" @search="search" />
</div>
<el-card>
<el-table
ref="table"
v-loading="loading"
:data="data"
style="width: 100%"
border
stripe
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<el-table-column type="index" fixed="left" width="35px" />
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else-if="d.show !== false"
:key="i"
:prop="d.prop"
:label="d.label"
:width="d.width"
:min-width="d.minWidth"
:class-name="d.className"
:fixed="d.fixed"
>
<template slot-scope="scope">
<div v-if="d.label==='巡检状态'">
{{
scope.row.ssafe_insp__insp_state == 1 ? '巡检中' : '已巡检'
}}
</div>
<div v-else-if="d.label==='巡检日期'">
{{
parseDay(scope.row.safe_insp__insp_date)
}}
</div>
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" size="mini" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
</div>
</template>
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import { parseDay } from '@/utils/index'
export default {
name: 'SafeIdsp',
components: {
buttons,
Search
},
data() {
return {
parseDay,
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left',
width: '100px',
show: true
}, {
prop: 'safe_insp__insp_code',
label: '巡检编号',
width: '200px',
show: true
}, {
prop: 'safe_insp__insp_name',
label: '巡检名称',
width: '250px',
show: true
},
{
prop: 'safe_insp__insp_state',
label: '巡检状态',
width: '100px',
show: true
}, {
prop: 'safe_insp__insp_date',
label: '巡检日期',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_man',
label: '巡检人员',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_times',
label: '巡检频率',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_memo',
label: '备注',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_ed',
label: '已巡检数量',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_ing',
label: '待巡检数量',
width: '100px',
show: true
},
{
prop: 'safe_insp__insp_non',
label: '不符合数量',
width: '100px',
show: true
},
{
prop: 'opration',
label: '操作',
width: '120px',
fixed: 'right',
minWidth: '120px',
show: true
}],
value: '',
dept_id: '',
level: '',
id: '',
parent_id: '',
form: {
dept_name: '',
dept_code: '',
memo: ''
},
rules: {
dept_code: [
{ required: true, message: '请输入部门编码', trigger: 'blur' }
],
dept_name: [
{ required: true, message: '请输入部门名称', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: '',
whereValue: ''
}
},
created() {
this.getList()
this.transitionTree()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDate(
this.pager.pageSize,
pageNo,
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
async transitionTree() {
await api.getDeptTree().then(data => {
if (data.success) {
this.deptTree = data.data.root
} else {
this.$message.error(data.message)
}
})
this.treeData = []
let data = []
data = this.deptTree.sort((a, b) => {
return a.sys_dept__dept_id - b.sys_dept__dept_id
})
const oneTreeList = data.filter(d => {
return d.sys_dept__dept_level === '1'
})
for (let i = 0; i < oneTreeList.length; i++) {
const treeList = data.filter(d => {
return d.sys_dept__dept_id.substring(0, 4).indexOf(oneTreeList[i].sys_dept__dept_id) > -1
})
treeList.forEach(d => {
d.children = []
if (d.sys_dept__dept_level === '1') {
this.treeData.push(d)
} else if (d.sys_dept__dept_level === '2') {
this.treeData[i].children.push(d)
} else if (d.sys_dept__dept_level === '3') {
this.treeData[i].children.forEach((threeVal, three) => {
if (d.sys_dept__dept_id.substring(0, 8).indexOf(threeVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children.push(d)
}
})
} else if (d.sys_dept__dept_level === '4') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
if (d.sys_dept__dept_id.substring(0, 12).indexOf(fourVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children.push(d)
}
})
})
} else if (d.sys_dept__dept_level === '5') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
if (d.sys_dept__dept_id.substring(0, 16).indexOf(fiveVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children.push(d)
}
})
})
})
} else if (d.sys_dept__dept_level === '6') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
fiveVal.children.forEach((sixVal, six) => {
if (d.sys_dept__dept_id.substring(0, 20).indexOf(sixVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children[six].children.push(d)
}
})
})
})
})
}
})
console.log(this.treeData, 'this.treeData')
}
},
editCreate() {
const param = `/insp/edit_form/create`
this.$router.push(param)
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=sys_dept&parentId=${this.dept_id}&levelCol=sys_dept.dept_level&keyid=&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.form.dept_code}&sys_dept__dept_name=${this.form.dept_name}&sys_dept__memo=${this.form.memo}&sys_dept__is_novalid=0&sys_dept__dept_id=&sys_dept__dept_level=${Number(this.level) + 1}&user_id=administrator&dataType= json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.transitionTree()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
this.$message.success('新增成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.sys_dept__dept_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除部门?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
edit(row) {
this.id = row.sys_dept__dept_id
this.parent_id = this.id.substring(0, this.id.length - 4)
console.log(this.parent_id, this.id)
this.auditForm = row
this.dialogEditVisible = true
},
auditFormChange(form) {
this.saveFrom = form
},
save() {
console.log(this.saveFrom, 'this.saveFrom')
console.log(this.auditForm, 'this.auditForm')
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = ''
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
this.dialogEditVisible = false
} else {
this.$message.error(data.message)
}
})
}
})
},
cellDblclick(row) {
const param = `/insp/edit_form/audit/${row.safe_insp__safe_insp_id}`
this.$router.push(param)
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.sys_dept__dept_id)
this.levels = val.map(d => d.sys_dept__dept_level)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
}
}
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}
</style>

View File

@ -4,17 +4,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getDept(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `sys_dept.dept_id like ?`
whereType = 'string'
}
getDept(pageSize, pageNo, whereSql) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=editgrid&query_funid=sys_dept&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {

View File

@ -1,405 +1,419 @@
<template>
<div class="app-container">
<buttons funid="sys_dept" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
<el-row>
<el-col :span="5">
<el-card>
<el-tree :data="treeData" default-expand-all :props="defaultProps" @node-click="handleNodeClick" />
</el-card>
</el-col>
<el-col :span="19">
<el-card>
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
stripe
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else
:key="i"
:prop="d.prop"
:label="d.label"
>
<template slot-scope="scope">
<div v-if="d.label==='是否注销'">
{{
scope.row.sys_dept__is_novalid == 0 ? '否' : '是'
}}
</div>
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
</el-col>
</el-row>
<el-dialog v-if="dialogFormVisible" title="新增部门" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="所属部门" :label-width="formLabelWidth">
<el-select v-model="dept_id" placeholder="请选择">
<el-option
v-for="item in data"
:key="item.sys_dept__dept_id"
:label="item.sys_dept__dept_name"
:value="item.sys_dept__dept_id"
/>
</el-select>
</el-form-item>
<el-form-item label="部门编码" :label-width="formLabelWidth" prop="dept_code">
<el-input v-model="form.dept_code" />
</el-form-item>
<el-form-item label="部门名称" :label-width="formLabelWidth" prop="dept_name">
<el-input v-model="form.dept_name" />
</el-form-item>
<el-form-item label="备注" :label-width="formLabelWidth" prop="memo">
<el-input v-model="form.memo" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
<el-dialog v-if="dialogEditVisible" title="部门" :visible.sync="dialogEditVisible" @close="closeDialog">
<AdutiDept :id="parent_id" ref="auditForm" :audit-form="auditForm" :data="deptTree" @change="auditFormChange" />
<div slot="footer" class="dialog-footer">
<el-button @click="dialogEditVisible = false"> </el-button>
<el-button type="primary" @click="save"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import buttons from '@/components/Buttons'
import AdutiDept from './components/auditDept'
export default {
name: 'Guide',
components: {
buttons,
AdutiDept
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'sys_dept__dept_code',
label: '组织编码'
}, {
prop: 'sys_dept__dept_name',
label: '组织名称'
}, {
prop: 'sys_dept__memo',
label: '备注'
}, {
prop: 'sys_dept__is_novalid',
label: '是否注销'
},
{
prop: 'opration',
label: '操作',
width: '70px',
fixed: 'right',
minWidth: '70px',
show: true
}],
value: '',
dept_id: '',
level: '',
id: '',
parent_id: '',
form: {
dept_name: '',
dept_code: '',
memo: ''
},
rules: {
dept_code: [
{ required: true, message: '请输入部门编码', trigger: 'blur' }
],
dept_name: [
{ required: true, message: '请输入部门名称', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: false,
whereValue: ''
}
},
created() {
this.getList()
this.transitionTree()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDept(
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
async transitionTree() {
await api.getDeptTree().then(data => {
if (data.success) {
this.deptTree = data.data.root
} else {
this.$message.error(data.message)
}
})
this.treeData = []
let data = []
data = this.deptTree.sort((a, b) => {
return a.sys_dept__dept_id - b.sys_dept__dept_id
})
const oneTreeList = data.filter(d => {
return d.sys_dept__dept_level === '1'
})
for (let i = 0; i < oneTreeList.length; i++) {
const treeList = data.filter(d => {
return d.sys_dept__dept_id.substring(0, 4).indexOf(oneTreeList[i].sys_dept__dept_id) > -1
})
treeList.forEach(d => {
d.children = []
if (d.sys_dept__dept_level === '1') {
this.treeData.push(d)
} else if (d.sys_dept__dept_level === '2') {
this.treeData[i].children.push(d)
} else if (d.sys_dept__dept_level === '3') {
this.treeData[i].children.forEach((threeVal, three) => {
if (d.sys_dept__dept_id.substring(0, 8).indexOf(threeVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children.push(d)
}
})
} else if (d.sys_dept__dept_level === '4') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
if (d.sys_dept__dept_id.substring(0, 12).indexOf(fourVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children.push(d)
}
})
})
} else if (d.sys_dept__dept_level === '5') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
if (d.sys_dept__dept_id.substring(0, 16).indexOf(fiveVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children.push(d)
}
})
})
})
} else if (d.sys_dept__dept_level === '6') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
fiveVal.children.forEach((sixVal, six) => {
if (d.sys_dept__dept_id.substring(0, 20).indexOf(sixVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children[six].children.push(d)
}
})
})
})
})
}
})
console.log(this.treeData, 'this.treeData')
}
},
editCreate() {
if (this.ids === null) {
this.$message.warning('请选择一个组织再添加下属组织')
} else if (this.ids.length !== 1) {
this.$message.warning('请选择一个组织再添加下属组织')
} else {
this.dialogFormVisible = true
this.dept_id = this.ids[0]
this.level = this.levels[0]
}
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=sys_dept&parentId=${this.dept_id}&levelCol=sys_dept.dept_level&keyid=&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.form.dept_code}&sys_dept__dept_name=${this.form.dept_name}&sys_dept__memo=${this.form.memo}&sys_dept__is_novalid=0&sys_dept__dept_id=&sys_dept__dept_level=${Number(this.level) + 1}&user_id=administrator&dataType= json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.transitionTree()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
this.$message.success('新增成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.sys_dept__dept_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除部门?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
edit(row) {
this.id = row.sys_dept__dept_id
this.parent_id = this.id.substring(0, this.id.length - 4)
console.log(this.parent_id, this.id)
this.auditForm = row
this.dialogEditVisible = true
},
auditFormChange(form) {
this.saveFrom = form
},
save() {
console.log(this.saveFrom, 'this.saveFrom')
console.log(this.auditForm, 'this.auditForm')
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = false
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
this.dialogEditVisible = false
} else {
this.$message.error(data.message)
}
})
}
})
},
cellDblclick(row) {
console.log(row, 'row')
this.id = row.sys_dept__dept_id
this.parent_id = this.id.substring(0, this.id.length - 4)
this.auditForm = row
this.saveFrom = []
this.dialogEditVisible = true
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.sys_dept__dept_id)
this.levels = val.map(d => d.sys_dept__dept_level)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
this.pager.pageNo = 0
this.pager.pageSize = 10
this.pager.total = 0
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.el-card {
margin-top: 10px;
}
</style>
<template>
<div class="app-container">
<div class="head">
<div>
<buttons funid="sys_dept" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
</div>
<Search funid="sys_dept" @search="search" />
</div>
<el-row>
<el-col :span="5">
<el-card>
<el-tree :data="treeData" default-expand-all :props="defaultProps" @node-click="handleNodeClick" />
</el-card>
</el-col>
<el-col :span="19">
<el-card>
<el-table
ref="deptTable"
v-loading="loading"
:data="data"
style="width: 100%"
stripe
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<el-table-column type="index" fixed="left" width="35px" />
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
v-else
:key="i"
:prop="d.prop"
:label="d.label"
>
<template slot-scope="scope">
<div v-if="d.label==='是否注销'">
{{
scope.row.sys_dept__is_novalid == 0 ? '否' : '是'
}}
</div>
<div v-else-if="d.label === '操作'">
<el-button icon="el-icon-view" type="text" title="编辑" @click="edit(scope.row)" />
<el-button v-if="scope.row.status !== 'NULLIFY'" icon="el-icon-delete" style="color:#F56C6C" type="text" title="删除" @click="Delete(scope.row)" />
</div>
<div v-else>{{ scope.row[d.prop] }}</div>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
:current-page="pager.pageNo"
:page-sizes="[10, 30, 50, 100, 500]"
:page-size="pager.pageSize"
:total="pager.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="sizeChange"
@current-change="pageChange"
/>
</el-card>
</el-col>
</el-row>
<el-dialog v-if="dialogFormVisible" title="新增部门" :visible.sync="dialogFormVisible" @close="closeDialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="所属部门" :label-width="formLabelWidth">
<el-select v-model="dept_id" placeholder="请选择">
<el-option
v-for="item in data"
:key="item.sys_dept__dept_id"
:label="item.sys_dept__dept_name"
:value="item.sys_dept__dept_id"
/>
</el-select>
</el-form-item>
<el-form-item label="部门编码" :label-width="formLabelWidth" prop="dept_code">
<el-input v-model="form.dept_code" />
</el-form-item>
<el-form-item label="部门名称" :label-width="formLabelWidth" prop="dept_name">
<el-input v-model="form.dept_name" />
</el-form-item>
<el-form-item label="备注" :label-width="formLabelWidth" prop="memo">
<el-input v-model="form.memo" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</div>
</el-dialog>
<el-dialog v-if="dialogEditVisible" title="部门" :visible.sync="dialogEditVisible" @close="closeDialog">
<AdutiDept :id="parent_id" ref="auditForm" :audit-form="auditForm" :data="deptTree" @change="auditFormChange" />
<div slot="footer" class="dialog-footer">
<el-button @click="dialogEditVisible = false"> </el-button>
<el-button type="primary" @click="save"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import AdutiDept from './components/auditDept'
export default {
name: 'Guide',
components: {
buttons,
Search,
AdutiDept
},
data() {
return {
loading: false,
data: [],
deptTree: [],
ids: [],
levels: [],
pager: {
pageNo: 0,
pageSize: 10,
total: 0
},
tableHeader: [
{
prop: 'selection',
type: 'selection',
fixed: 'left'
}, {
prop: 'sys_dept__dept_code',
label: '组织编码'
}, {
prop: 'sys_dept__dept_name',
label: '组织名称'
}, {
prop: 'sys_dept__memo',
label: '备注'
}, {
prop: 'sys_dept__is_novalid',
label: '是否注销'
},
{
prop: 'opration',
label: '操作',
width: '70px',
fixed: 'right',
minWidth: '70px',
show: true
}],
value: '',
dept_id: '',
level: '',
id: '',
parent_id: '',
form: {
dept_name: '',
dept_code: '',
memo: ''
},
rules: {
dept_code: [
{ required: true, message: '请输入部门编码', trigger: 'blur' }
],
dept_name: [
{ required: true, message: '请输入部门名称', trigger: 'blur' }
]
},
dialogFormVisible: false,
dialogEditVisible: false,
formLabelWidth: '120px',
auditForm: {},
saveFrom: {},
treeData: [],
defaultProps: {
children: 'children',
label: 'sys_dept__dept_name'
},
treeList: [],
whereSql: '',
whereValue: ''
}
},
created() {
this.getList()
this.transitionTree()
},
mounted() {
},
methods: {
getList() {
this.loading = true
let pageNo = this.pager.pageNo * this.pager.pageSize - this.pager.pageSize
if (pageNo < 0) {
pageNo = 0
}
api.getDept(
this.pager.pageSize,
pageNo,
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
this.pager.total = data.data.total
setTimeout(() => {
this.loading = false
}, 200)
} else {
this.$message.error(data.message)
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
async transitionTree() {
await api.getDeptTree().then(data => {
if (data.success) {
this.deptTree = data.data.root
} else {
this.$message.error(data.message)
}
})
this.treeData = []
let data = []
data = this.deptTree.sort((a, b) => {
return a.sys_dept__dept_id - b.sys_dept__dept_id
})
const oneTreeList = data.filter(d => {
return d.sys_dept__dept_level === '1'
})
for (let i = 0; i < oneTreeList.length; i++) {
const treeList = data.filter(d => {
return d.sys_dept__dept_id.substring(0, 4).indexOf(oneTreeList[i].sys_dept__dept_id) > -1
})
treeList.forEach(d => {
d.children = []
if (d.sys_dept__dept_level === '1') {
this.treeData.push(d)
} else if (d.sys_dept__dept_level === '2') {
this.treeData[i].children.push(d)
} else if (d.sys_dept__dept_level === '3') {
this.treeData[i].children.forEach((threeVal, three) => {
if (d.sys_dept__dept_id.substring(0, 8).indexOf(threeVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children.push(d)
}
})
} else if (d.sys_dept__dept_level === '4') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
if (d.sys_dept__dept_id.substring(0, 12).indexOf(fourVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children.push(d)
}
})
})
} else if (d.sys_dept__dept_level === '5') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
if (d.sys_dept__dept_id.substring(0, 16).indexOf(fiveVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children.push(d)
}
})
})
})
} else if (d.sys_dept__dept_level === '6') {
this.treeData[i].children.forEach((threeVal, three) => {
threeVal.children.forEach((fourVal, four) => {
fourVal.children.forEach((fiveVal, five) => {
fiveVal.children.forEach((sixVal, six) => {
if (d.sys_dept__dept_id.substring(0, 20).indexOf(sixVal.sys_dept__dept_id) > -1) {
this.treeData[i].children[three].children[four].children[five].children[six].children.push(d)
}
})
})
})
})
}
})
console.log(this.treeData, 'this.treeData')
}
},
editCreate() {
if (this.ids === null) {
this.$message.warning('请选择一个组织再添加下属组织')
} else if (this.ids.length !== 1) {
this.$message.warning('请选择一个组织再添加下属组织')
} else {
this.dialogFormVisible = true
this.dept_id = this.ids[0]
this.level = this.levels[0]
}
},
create() {
this.$refs['form'].validate((valid) => {
if (valid) {
const data = `funid=sys_dept&parentId=${this.dept_id}&levelCol=sys_dept.dept_level&keyid=&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.form.dept_code}&sys_dept__dept_name=${this.form.dept_name}&sys_dept__memo=${this.form.memo}&sys_dept__is_novalid=0&sys_dept__dept_id=&sys_dept__dept_level=${Number(this.level) + 1}&user_id=administrator&dataType= json`
api.Crerte(data).then(data => {
if (data.success) {
this.getList()
this.transitionTree()
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
this.$message.success('新增成功!')
} else {
this.$message.error(data.message)
}
})
}
})
},
Delete(row) {
this.ids = []
this.ids.push(row.sys_dept__dept_id)
this.editDelete()
},
editDelete() {
if (this.ids && this.ids.length > 0) {
this.$confirm('确认删除部门?').then(() => {
api.Delete(this.ids).then(data => {
if (data.success) {
this.getList()
this.$message.success('删除成功!')
} else {
this.$message.error(data.message)
}
})
}).catch(() => {})
} else {
this.$message.warning('请选择数据进行删除')
}
},
editSave() {
console.log('editSave')
},
upload() {
console.log('upload')
},
edit(row) {
this.id = row.sys_dept__dept_id
this.parent_id = this.id.substring(0, this.id.length - 4)
console.log(this.parent_id, this.id)
this.auditForm = row
this.dialogEditVisible = true
},
auditFormChange(form) {
this.saveFrom = form
},
save() {
console.log(this.saveFrom, 'this.saveFrom')
console.log(this.auditForm, 'this.auditForm')
if (Object.keys(this.saveFrom).length === 0) {
this.saveFrom = this.auditForm
}
this.$refs.auditForm.$refs.auditForm.validate(valid => {
if (valid) {
const _form = `funid=sys_dept&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_dept__dept_code=${this.saveFrom.sys_dept__dept_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_dept__memo=${this.saveFrom.sys_dept__memo}&sys_dept__is_novalid=${this.saveFrom.sys_dept__is_novalid}&sys_dept__dept_id=${this.id}&sys_dept__dept_level=${this.saveFrom.sys_dept__dept_level}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = ''
this.getList()
this.$message.success('保存成功!')
this.dialogEditVisible = false
} else {
this.$message.error(data.message)
}
})
}
})
},
cellDblclick(row) {
console.log(row, 'row')
this.id = row.sys_dept__dept_id
this.parent_id = this.id.substring(0, this.id.length - 4)
this.auditForm = row
this.saveFrom = []
this.dialogEditVisible = true
},
sizeChange(size) {
this.pager.pageSize = size
this.getList()
},
pageChange(page) {
this.pager.pageNo = page
this.getList()
},
handleSelectionChange(val) {
this.ids = val.map(d => d.sys_dept__dept_id)
this.levels = val.map(d => d.sys_dept__dept_level)
},
closeDialog() {
this.dialogFormVisible = false
this.$refs['form'].resetFields()
this.form.dept_name = ''
this.form.dept_code = ''
},
handleNodeClick(data) {
this.pager.pageNo = 0
this.pager.pageSize = 10
this.pager.total = 0
this.whereValue = encodeURI(`\%${data.sys_dept__dept_id}\%`)
this.whereSql = `where_sql=sys_dept.dept_id like ?&where_value=${this.whereValue}&where_type=String`
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}
</style>

View File

@ -3,17 +3,11 @@ import store from '@/store/modules/user'
var roles = store.state.roles.replace(/;/g, '')
export default {
getUser(pageSize, pageNo, isWhereSql, whereValue) {
let whereSql = ''
let whereType = ''
if (isWhereSql) {
whereSql = `sys_dept.dept_id like ?`
whereType = 'string'
}
getUser(pageSize, pageNo, whereSql) {
return request({
url: `/commonAction.do?eventcode=query_data&funid=queryevent&pagetype=editgrid&query_funid=sys_user&user_id=${roles}`,
method: 'post',
data: `start=${pageNo}&limit=${pageSize}&where_sql=${whereSql}&where_value=${whereValue}&where_type=${whereType}&is_query=1&query_type=0`
data: `start=${pageNo}&limit=${pageSize}&${whereSql}&is_query=1&query_type=0`
}).then(response => response.data)
},
getDeptTree() {

View File

@ -1,6 +1,11 @@
<template>
<div class="app-container">
<buttons funid="sys_dept" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
<div class="head">
<div>
<buttons funid="sys_dept" @editCreate="editCreate" @editDelete="editDelete" @editSave="editSave" @upload="upload" />
</div>
<Search funid="sys_user" @search="search" />
</div>
<el-row>
<el-col :span="3">
<el-card>
@ -19,6 +24,7 @@
@selection-change="handleSelectionChange"
@cell-dblclick="cellDblclick"
>
<el-table-column type="index" fixed="left" width="35px" />
<template v-for="(d,i) in tableHeader">
<el-table-column v-if="d.type && d.type === 'selection'" :key="i" :type="d.type" :fixed="d.fixed" />
<el-table-column
@ -112,12 +118,14 @@
<script>
import api from './api'
import buttons from '@/components/Buttons'
import Search from '@/components/Search'
import AdutiUser from './components/auditUser'
import Attach from '@/components/sys_attach'
export default {
name: 'User',
components: {
buttons,
Search,
AdutiUser,
Attach
},
@ -125,6 +133,8 @@ export default {
return {
loading: false,
data: [],
fun: [],
searchVal: '',
deptTree: [],
ids: [],
levels: [],
@ -238,8 +248,7 @@ export default {
api.getUser(
this.pager.pageSize,
pageNo,
this.whereSql,
this.whereValue
this.whereSql
).then(data => {
if (data.success) {
this.data = data.data.root
@ -252,6 +261,10 @@ export default {
}
})
},
search(sql) {
this.whereSql = sql
this.getList()
},
async transitionTree() {
await api.getDeptTree().then(data => {
if (data.success) {
@ -392,7 +405,6 @@ export default {
const _form = `funid=sys_user&parentId=&levelCol=sys_dept.dept_level&keyid=${this.id}&pagetype=editgrid&eventcode=save_eg&sys_user__user_name=${this.saveFrom.sys_user__user_name}&sys_user__user_code=${this.saveFrom.sys_user__user_code}&sys_dept__dept_name=${this.saveFrom.sys_dept__dept_name}&sys_user__is_leader=${this.saveFrom.sys_user__is_leader}&sys_user__duty=${this.saveFrom.sys_user__duty}&sys_user__phone_code=${this.saveFrom.sys_user__phone_code}&sys_user__mob_code=${this.saveFrom.sys_user__mob_code}&sys_user__sex=${this.saveFrom.sys_user__sex}&sys_user__email=${this.saveFrom.sys_user__email}&sys_user__is_novalid=${this.saveFrom.sys_user__is_novalid}&sys_user__memo=${this.saveFrom.sys_user__memo}&sys_user__user_id=${this.id}&sys_user__dept_id=${this.saveFrom.sys_user__dept_id}&user_id=administrator&dataType=json`
api.auditSave(_form).then(data => {
if (data.success) {
this.whereSql = false
this.whereValue = ''
this.getList()
this.$message.success('保存成功!')
@ -436,14 +448,18 @@ export default {
this.pager.pageNo = 0
this.pager.pageSize = 10
this.pager.total = 0
this.whereValue = encodeURI(`${data.sys_dept__dept_id}\%`)
this.whereSql = true
this.whereValue = encodeURI(`\%${data.sys_dept__dept_id}\%`)
this.whereSql = `where_sql=sys_dept.dept_id like ?&where_value=${this.whereValue}&where_type=String`
this.getList()
}
}
}
</script>
<style lang="scss" scoped>
.head {
display: flex;
justify-content: space-between;
}
.el-card {
margin-top: 10px;
}