Merge remote-tracking branch 'origin/liujun-2024-04-12-一公司人员定位' into liujun-2024-04-12-一公司人员定位
commit
12195ddd0b
|
@ -0,0 +1,316 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog
|
||||||
|
v-loading="loading"
|
||||||
|
:visible.sync="visible"
|
||||||
|
:append-to-body="appendToBody"
|
||||||
|
:before-close="beforeClose"
|
||||||
|
title="审批"
|
||||||
|
width="1200px"
|
||||||
|
destroy-on-close>
|
||||||
|
<el-form ref="form" :model="material" :rules="rules" label-width="200px" label-position="right" type="flex">
|
||||||
|
<el-row :gutter="12">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item prop="typeInfo" label="映射类型: ">
|
||||||
|
<el-select v-model="material.typeInfo" filterable style="width: 300px" placeholder="请选择" @change="saveInfo">
|
||||||
|
<el-option v-for="item in dic.mapType" :key="item.value" :label="item.name" :value="JSON.stringify(item)"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="部门:" prop="departmentId">
|
||||||
|
<Treeselect
|
||||||
|
:options="dic.deptList"
|
||||||
|
:normalizer="normalizer"
|
||||||
|
v-model="material.departmentId"
|
||||||
|
placeholder="请选择部门"
|
||||||
|
no-options-text="暂无数据"
|
||||||
|
no-children-text="暂无数据"
|
||||||
|
style="width: 300px"
|
||||||
|
@select="getPeopleList($event)"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="人员:" prop="userInfo">
|
||||||
|
<el-select v-model="material.userInfo" style="width: 300px" placeholder="请选择" @change="chooseUser">
|
||||||
|
<el-option
|
||||||
|
v-for="item in dic.userList"
|
||||||
|
:key="item.USER_ID"
|
||||||
|
:value="JSON.stringify(item)"
|
||||||
|
:label="item.NAME"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="设备编号:" prop="deviceId">
|
||||||
|
<el-input v-model="material.deviceId" placeholder="请输入内容"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="设备名称:" prop="deviceName">
|
||||||
|
<el-input v-model="material.deviceName" placeholder="请输入内容"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="其他系统编号:" prop="id">
|
||||||
|
<el-input v-model="material.id" placeholder="请输入内容"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="其他系统编号备注:" prop="id_remark">
|
||||||
|
<el-input v-model="material.idRemark" placeholder="请输入内容"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="备注:" prop="id">
|
||||||
|
<el-input v-model="material.remark" placeholder="请输入内容"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="handleClose">关 闭</el-button>
|
||||||
|
<el-button type="primary" @click="sendMessage('1')">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import vueQr from 'vue-qr'
|
||||||
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
|
import { requestFN } from '@/utils/request'
|
||||||
|
import uploadFile from '../../../util/uploadFile/index.vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { uploadFile, Treeselect, vueQr },
|
||||||
|
props: {
|
||||||
|
appendToBody: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
loading: false,
|
||||||
|
material: {
|
||||||
|
typeInfo: '',
|
||||||
|
type: '',
|
||||||
|
typeName: '',
|
||||||
|
deptInfo: '',
|
||||||
|
departmentId: null,
|
||||||
|
departmentName: '',
|
||||||
|
userInfo: '',
|
||||||
|
userId: '',
|
||||||
|
userName: '',
|
||||||
|
deviceId: '',
|
||||||
|
deviceName: '',
|
||||||
|
id: '',
|
||||||
|
idRemark: '',
|
||||||
|
remark: ''
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
required: {
|
||||||
|
type: '',
|
||||||
|
typeName: '',
|
||||||
|
departmentId: '',
|
||||||
|
departmentName: '',
|
||||||
|
userId: '',
|
||||||
|
userName: '',
|
||||||
|
deviceId: '',
|
||||||
|
deviceName: '',
|
||||||
|
id: '',
|
||||||
|
idRemark: ''
|
||||||
|
},
|
||||||
|
remark: ''
|
||||||
|
},
|
||||||
|
normalizer(node) {
|
||||||
|
return {
|
||||||
|
id: node.id,
|
||||||
|
label: node.name,
|
||||||
|
children: node.nodes
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
typeInfo: [
|
||||||
|
{ required: true, message: '请选择映射类型', trigger: 'change' }
|
||||||
|
],
|
||||||
|
userInfo: [
|
||||||
|
{ required: true, message: '请选择映射人', trigger: 'change' }
|
||||||
|
],
|
||||||
|
departmentId: [
|
||||||
|
{ required: true, message: '请选择部门', trigger: 'change' }
|
||||||
|
],
|
||||||
|
deviceId: [
|
||||||
|
{ required: true, message: '请填写其他系统编号', trigger: 'change' }
|
||||||
|
],
|
||||||
|
deviceName: [
|
||||||
|
{ required: true, message: '请填写其他系统名称', trigger: 'change' }
|
||||||
|
],
|
||||||
|
id: [
|
||||||
|
{ required: true, message: '请填写其他系统编号', trigger: 'change' }
|
||||||
|
],
|
||||||
|
idRemark: [
|
||||||
|
{ required: true, message: '请填写其他系统编号备注', trigger: 'change' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
heirloom: {},
|
||||||
|
departmentTree: [],
|
||||||
|
peopleList: [],
|
||||||
|
dic: {
|
||||||
|
alarmStatus: [],
|
||||||
|
logType: [],
|
||||||
|
mapType: [],
|
||||||
|
deptList: [],
|
||||||
|
userList: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init(e) {
|
||||||
|
if (e) {
|
||||||
|
this.heirloom = e
|
||||||
|
}
|
||||||
|
this.visible = true
|
||||||
|
await this.getDepartmentTree()
|
||||||
|
this.getDict()
|
||||||
|
},
|
||||||
|
getMenu() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
requestFN(
|
||||||
|
'/flowTrain/getPintName', { FLOWS_TYPE: this.info.FLOWS_TYPE, FLOWS_STEP: this.info.FLOWS_STEP }
|
||||||
|
).then((data) => {
|
||||||
|
this.menu.department = data.Department
|
||||||
|
this.menu.user = data.User
|
||||||
|
this.menu.uploadFile = data.UploadFile
|
||||||
|
this.menu.limitFlag = data.limitFlag
|
||||||
|
resolve(true)
|
||||||
|
}).catch((e) => {
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
sendMessage(e) {
|
||||||
|
this.$refs.form.validate((valid) => {
|
||||||
|
if (!valid) {
|
||||||
|
this.$message.error('请填写完整信息')
|
||||||
|
} else {
|
||||||
|
this.form.required.type = this.material.type
|
||||||
|
this.form.required.typeName = this.material.typeName
|
||||||
|
this.form.required.departmentId = this.material.departmentId
|
||||||
|
this.form.required.departmentName = this.material.departmentName
|
||||||
|
this.form.required.userId = this.material.userId
|
||||||
|
this.form.required.userName = this.material.userName
|
||||||
|
this.form.required.deviceId = this.material.deviceId
|
||||||
|
this.form.required.deviceName = this.material.deviceName
|
||||||
|
this.form.required.id = this.material.id
|
||||||
|
this.form.required.idRemark = this.material.idRemark
|
||||||
|
this.form.remark = this.material.remark
|
||||||
|
|
||||||
|
requestFN(
|
||||||
|
'/dingWei/saveOrUpdateMap', { data: JSON.stringify(this.form) }
|
||||||
|
).then((data) => {
|
||||||
|
if (data.code === 0) {
|
||||||
|
this.$message.success('操作成功')
|
||||||
|
this.handleClose()
|
||||||
|
this.$emit('refresh')
|
||||||
|
} else {
|
||||||
|
this.$message.error(data.msg)
|
||||||
|
}
|
||||||
|
}).catch((e) => {
|
||||||
|
console.log(e)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getPeopleList(e) {
|
||||||
|
this.material.departmentName = e.name
|
||||||
|
requestFN(
|
||||||
|
'/user/listAll',
|
||||||
|
{
|
||||||
|
DEPARTMENT_ID: e.id
|
||||||
|
}
|
||||||
|
).then((data) => {
|
||||||
|
this.dic.userList = data.userList
|
||||||
|
this.material.userInfo = ''
|
||||||
|
}).catch((e) => {
|
||||||
|
console.log(e)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
chooseUser(e) {
|
||||||
|
const entity = JSON.parse(e)
|
||||||
|
this.material.userId = entity.USER_ID
|
||||||
|
this.material.userName = entity.NAME
|
||||||
|
},
|
||||||
|
handleClose() {
|
||||||
|
this.form = {
|
||||||
|
STATUS: '',
|
||||||
|
APPOINT_DEPARTMENT_ID: null,
|
||||||
|
APPOINT_DEPARTMENT_NAME: '',
|
||||||
|
APPOINT_USER_ID: '',
|
||||||
|
APPOINT_USER_NAME: '',
|
||||||
|
OPINION: '',
|
||||||
|
user: '',
|
||||||
|
list: [],
|
||||||
|
tm: new Date().getTime()
|
||||||
|
}
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
beforeClose() {
|
||||||
|
this.visible = false
|
||||||
|
this.form = {
|
||||||
|
STATUS: '',
|
||||||
|
APPOINT_DEPARTMENT_ID: null,
|
||||||
|
APPOINT_DEPARTMENT_NAME: '',
|
||||||
|
APPOINT_USER_ID: '',
|
||||||
|
APPOINT_USER_NAME: '',
|
||||||
|
OPINION: '',
|
||||||
|
user: '',
|
||||||
|
list: [],
|
||||||
|
tm: new Date().getTime()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
saveInfo(e) {
|
||||||
|
const info = JSON.parse(e)
|
||||||
|
this.material.type = info.value
|
||||||
|
this.material.typeName = info.name
|
||||||
|
},
|
||||||
|
getDict() {
|
||||||
|
requestFN('dingWei/getDictionary').then((data) => {
|
||||||
|
this.dic.alarmStatus = JSON.parse(data.AlarmStatus)
|
||||||
|
this.dic.logType = JSON.parse(data.LogType)
|
||||||
|
this.dic.mapType = JSON.parse(data.MapType)
|
||||||
|
}).catch((e) => {
|
||||||
|
this.listLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDepartmentTree() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
requestFN(
|
||||||
|
'/department/listTree',
|
||||||
|
).then((data) => {
|
||||||
|
this.dic.deptList = this.removeEmptyChildren(JSON.parse(data.zTreeNodes))
|
||||||
|
resolve(true)
|
||||||
|
}).catch((e) => {
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
</style>
|
|
@ -58,6 +58,7 @@
|
||||||
</div>
|
</div>
|
||||||
<pagination :total="listQuery.total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
|
<pagination :total="listQuery.total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
|
||||||
</div>
|
</div>
|
||||||
|
<info ref="info" @flush="getList"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -65,10 +66,11 @@
|
||||||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||||
import { requestFN } from '@/utils/request'
|
import { requestFN } from '@/utils/request'
|
||||||
import waves from '@/directive/waves' // waves directive
|
import waves from '@/directive/waves' // waves directive
|
||||||
|
import info from './info.vue'
|
||||||
import vueQr from 'vue-qr'
|
import vueQr from 'vue-qr'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination, vueQr },
|
components: { Pagination, vueQr, info },
|
||||||
directives: { waves },
|
directives: { waves },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -78,6 +80,9 @@ export default {
|
||||||
limit: 10,
|
limit: 10,
|
||||||
total: 0
|
total: 0
|
||||||
},
|
},
|
||||||
|
listLoading: false,
|
||||||
|
KEYWORDS: '',
|
||||||
|
varList: [],
|
||||||
add: false, // 新增按钮
|
add: false, // 新增按钮
|
||||||
del: false, // 删除按钮
|
del: false, // 删除按钮
|
||||||
edit: false // 修改按钮
|
edit: false // 修改按钮
|
||||||
|
@ -85,18 +90,12 @@ export default {
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getDict()
|
this.getDict()
|
||||||
this.getList()
|
// this.getList()
|
||||||
this.hasButton()
|
this.hasButton()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleSelectWithDifferentStatus(row, rowIndex) {
|
handleSelectWithDifferentStatus(row, rowIndex) {
|
||||||
if (row.STATUS === 0) {
|
|
||||||
// 不禁用
|
|
||||||
return true
|
return true
|
||||||
} else {
|
|
||||||
// 禁用
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
getQuery() {
|
getQuery() {
|
||||||
if (this.$refs.multipleTable) {
|
if (this.$refs.multipleTable) {
|
||||||
|
@ -109,54 +108,23 @@ export default {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
goKeyReset() {
|
goKeyReset() {
|
||||||
this.KEYWORDS = ''
|
|
||||||
this.STATUS = ''
|
this.STATUS = ''
|
||||||
this.getQuery()
|
this.getQuery()
|
||||||
},
|
},
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
requestFN(
|
requestFN(
|
||||||
'/dw/getMapList?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page,
|
'/dingWei/getMapList?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, {}
|
||||||
{
|
|
||||||
KEYWORDS: this.KEYWORDS,
|
|
||||||
STATUS: '1',
|
|
||||||
EMPLOY_FLAG: '1',
|
|
||||||
CHECK_STATUS: '1'
|
|
||||||
}
|
|
||||||
).then((data) => {
|
).then((data) => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
this.varList = data.list
|
this.varList = data.list
|
||||||
this.total = data.page.totalResult
|
this.total = data.page.total
|
||||||
})
|
}).catch((e) => {
|
||||||
.catch((e) => {
|
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
const _selectData = this.$refs.multipleTable.selection
|
this.$refs.info.init()
|
||||||
if (_selectData == null || _selectData.length == 0) {
|
|
||||||
this.$message({
|
|
||||||
message: '未勾选培训人员...',
|
|
||||||
type: 'error'
|
|
||||||
})
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
var users = []
|
|
||||||
_selectData.map(item => {
|
|
||||||
if (item.STATUS === 0) {
|
|
||||||
users.push(item.USER_ID)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (users == null || users.length == 0) {
|
|
||||||
this.$message({
|
|
||||||
message: '勾选人员暂无法提交申请...',
|
|
||||||
type: 'error'
|
|
||||||
})
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
this.$refs.apply.init(users)
|
|
||||||
},
|
},
|
||||||
hasButton() {
|
hasButton() {
|
||||||
var keys = 'trainingbatch:add,trainingbatch:del,trainingbatch:edit,fhSms,email,fromExcel,toExcel'
|
var keys = 'trainingbatch:add,trainingbatch:del,trainingbatch:edit,fhSms,email,fromExcel,toExcel'
|
||||||
|
@ -182,7 +150,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getDict: function() {
|
getDict: function() {
|
||||||
requestFN('dw/getDictionary').then((data) => {
|
requestFN('dingWei/getDictionary').then((data) => {
|
||||||
this.wenhuachengduList = data.list
|
this.wenhuachengduList = data.list
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
|
|
Loading…
Reference in New Issue