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>
|
||||
<pagination :total="listQuery.total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
|
||||
</div>
|
||||
<info ref="info" @flush="getList"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -65,10 +66,11 @@
|
|||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||
import { requestFN } from '@/utils/request'
|
||||
import waves from '@/directive/waves' // waves directive
|
||||
import info from './info.vue'
|
||||
import vueQr from 'vue-qr'
|
||||
|
||||
export default {
|
||||
components: { Pagination, vueQr },
|
||||
components: { Pagination, vueQr, info },
|
||||
directives: { waves },
|
||||
data() {
|
||||
return {
|
||||
|
@ -78,6 +80,9 @@ export default {
|
|||
limit: 10,
|
||||
total: 0
|
||||
},
|
||||
listLoading: false,
|
||||
KEYWORDS: '',
|
||||
varList: [],
|
||||
add: false, // 新增按钮
|
||||
del: false, // 删除按钮
|
||||
edit: false // 修改按钮
|
||||
|
@ -85,18 +90,12 @@ export default {
|
|||
},
|
||||
created() {
|
||||
this.getDict()
|
||||
this.getList()
|
||||
// this.getList()
|
||||
this.hasButton()
|
||||
},
|
||||
methods: {
|
||||
handleSelectWithDifferentStatus(row, rowIndex) {
|
||||
if (row.STATUS === 0) {
|
||||
// 不禁用
|
||||
return true
|
||||
} else {
|
||||
// 禁用
|
||||
return false
|
||||
}
|
||||
},
|
||||
getQuery() {
|
||||
if (this.$refs.multipleTable) {
|
||||
|
@ -109,54 +108,23 @@ export default {
|
|||
this.getList()
|
||||
},
|
||||
goKeyReset() {
|
||||
this.KEYWORDS = ''
|
||||
this.STATUS = ''
|
||||
this.getQuery()
|
||||
},
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
requestFN(
|
||||
'/dw/getMapList?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page,
|
||||
{
|
||||
KEYWORDS: this.KEYWORDS,
|
||||
STATUS: '1',
|
||||
EMPLOY_FLAG: '1',
|
||||
CHECK_STATUS: '1'
|
||||
}
|
||||
'/dingWei/getMapList?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, {}
|
||||
).then((data) => {
|
||||
this.listLoading = false
|
||||
this.varList = data.list
|
||||
this.total = data.page.totalResult
|
||||
})
|
||||
.catch((e) => {
|
||||
this.total = data.page.total
|
||||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
handleAdd() {
|
||||
const _selectData = this.$refs.multipleTable.selection
|
||||
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)
|
||||
this.$refs.info.init()
|
||||
},
|
||||
hasButton() {
|
||||
var keys = 'trainingbatch:add,trainingbatch:del,trainingbatch:edit,fhSms,email,fromExcel,toExcel'
|
||||
|
@ -182,7 +150,7 @@ export default {
|
|||
})
|
||||
},
|
||||
getDict: function() {
|
||||
requestFN('dw/getDictionary').then((data) => {
|
||||
requestFN('dingWei/getDictionary').then((data) => {
|
||||
this.wenhuachengduList = data.list
|
||||
}).catch((e) => {
|
||||
this.listLoading = false
|
||||
|
|
Loading…
Reference in New Issue