liujun0703-新项目开发
liy 2024-07-10 11:22:29 +08:00
parent 957ca790a6
commit c395c15a55
8 changed files with 2164 additions and 0 deletions

View File

@ -0,0 +1,246 @@
<template>
<div>
<div class="app-container">
<div class="level-title">
<h1>应急救援专家组</h1>
</div>
<div class="mb-20">
<table class="table-ui">
<tr>
<td class="tbg">专家组名称</td>
<td>{{ form.EXPERT_GROUP_NAME }}</td>
<td class="tbg">设备类型</td>
<td>{{ form.EXPERT_GROUP_TYPE }}</td>
</tr>
<tr>
<td class="tbg">专家组级别</td>
<td >{{ form.EXPERT_GROUP_LEVEL }}</td>
<td class="tbg">组建单位</td>
<td>{{ form.ESTABLISHED_UNIT }}</td>
</tr>
<tr>
<td class="tbg">联系电话</td>
<td>{{ form.CONTACT_TELEPHONE }}</td>
<td class="tbg">传真</td>
<td>{{ form.FAX }}</td>
</tr>
<tr>
<td class="tbg">人数</td>
<td>{{ form.NUMBER_OF_PEOPLE }}</td>
<td class="tbg">组建单位邮编</td>
<td>{{ form.ESTABLISHED_UNIT_POSTCODE }}</td>
</tr>
<tr>
<td class="tbg">组建单位地址</td>
<td>{{ form.ESTABLISHED_UNIT_ADDRESS }}</td>
<td class="tbg">负责人</td>
<td>{{ form.RESPONSIBLE_PERSON }}</td>
</tr>
<tr>
<td class="tbg">负责人办公电话</td>
<td>{{ form.RESPONSIBLE_OFFICE_TELEPHONE }}</td>
<td class="tbg">负责人移动电话</td>
<td>{{ form.RESPONSIBLE_MOBILE_TELEPHONE }}</td>
</tr>
<tr>
<td class="tbg">负责人住宅电话</td>
<td>{{ form.RESPONSIBLE_HOME_TELEPHONE }}</td>
<td class="tbg" >联系人</td>
<td>{{ form.CONTACT_PERSON }}</td>
</tr>
<tr>
<td class="tbg">联系人办公电话</td>
<td>{{ form.CONTACT_OFFICE_TELEPHONE }}</td>
<td class="tbg" >联系人移动电话</td>
<td>{{ form.CONTACT_MOBILE_TELEPHONE }}</td>
</tr>
<tr>
<td class="tbg">联系人住宅电话</td>
<td>{{ form.CONTACT_HOME_TELEPHONE }}</td>
<td class="tbg">联系人电子邮箱</td>
<td>{{ form.CONTACT_EMAIL }}</td>
</tr>
<tr>
<td class="tbg">排序号</td>
<td>{{ form.SORTING_NUMBER }}</td>
<td class="tbg">专家组介绍</td>
<td>{{ form.EXPERT_GROUP_INTRODUCE }}</td>
</tr>
<tr>
<td class="tbg">备注</td>
<td colspan="3">{{ form.REMARKS }}</td>
</tr>
</table>
</div>
</div>
<div class="ui-height" />
<div class="ui-foot">
<el-button type="primary" @click="goBack"></el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
export default {
data() {
return {
form: {
//
EXPERT_GROUP_NAME: '',
//
EXPERT_GROUP_TYPE: '',
//
EXPERT_GROUP_LEVEL: '',
//
CONTACT_TELEPHONE: '',
//
FAX: '',
//
NUMBER_OF_PEOPLE: '',
//
ESTABLISHED_UNIT: '',
//
ESTABLISHED_UNIT_POSTCODE: '',
//
ESTABLISHED_UNIT_ADDRESS: '',
//
RESPONSIBLE_PERSON: '',
//
RESPONSIBLE_OFFICE_TELEPHONE: '',
//
RESPONSIBLE_MOBILE_TELEPHONE: '',
//
RESPONSIBLE_HOME_TELEPHONE: '',
//
CONTACT_PERSON: '',
//
CONTACT_OFFICE_TELEPHONE: '',
//
CONTACT_MOBILE_TELEPHONE: '',
//
CONTACT_HOME_TELEPHONE: '',
//
CONTACT_EMAIL: '',
//
SORTING_NUMBER: '',
//
EXPERT_GROUP_INTRODUCE: '',
//
REMARKS: ''
},
Id: ''
}
},
created() {
if (this.$parent.CASE_ID) {
this.Id = this.$parent.CASE_ID
this.getDetail(this.Id)
}
},
methods: {
goBack() {
this.$parent.activeName = 'list'
},
//* **********************************************
download(obj) {
this.$confirm('确定要下载此文件吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.downloadUrl = config.fileUrl + obj.FILE_URL
const _this = this
setTimeout(function() {
window.open(_this.downloadUrl)
}, 200)
}).catch(() => {
})
},
//* **************************************
getDetail(id) {
const params = {
id: id
}
requestFN('/yjExpertGroup/detail', params).then((response) => {
const data = response.data
console.log(data)
this.form = {
//
EXPERT_GROUP_NAME: data.EXPERT_GROUP_NAME,
//
EXPERT_GROUP_TYPE: data.EXPERT_GROUP_TYPE,
//
EXPERT_GROUP_LEVEL: data.EXPERT_GROUP_LEVEL,
//
CONTACT_TELEPHONE: data.CONTACT_TELEPHONE,
//
FAX: data.FAX,
//
NUMBER_OF_PEOPLE: data.NUMBER_OF_PEOPLE,
//
ESTABLISHED_UNIT: data.ESTABLISHED_UNIT,
//
ESTABLISHED_UNIT_POSTCODE: data.ESTABLISHED_UNIT_POSTCODE,
//
ESTABLISHED_UNIT_ADDRESS: data.ESTABLISHED_UNIT_ADDRESS,
//
RESPONSIBLE_PERSON: data.RESPONSIBLE_PERSON,
//
RESPONSIBLE_OFFICE_TELEPHONE: data.RESPONSIBLE_OFFICE_TELEPHONE,
//
RESPONSIBLE_MOBILE_TELEPHONE: data.RESPONSIBLE_MOBILE_TELEPHONE,
//
RESPONSIBLE_HOME_TELEPHONE: data.RESPONSIBLE_HOME_TELEPHONE,
//
CONTACT_PERSON: data.CONTACT_PERSON,
//
CONTACT_OFFICE_TELEPHONE: data.CONTACT_OFFICE_TELEPHONE,
//
CONTACT_MOBILE_TELEPHONE: data.CONTACT_MOBILE_TELEPHONE,
//
CONTACT_HOME_TELEPHONE: data.CONTACT_HOME_TELEPHONE,
//
CONTACT_EMAIL: data.CONTACT_EMAIL,
//
SORTING_NUMBER: data.SORTING_NUMBER,
//
EXPERT_GROUP_INTRODUCE: data.EXPERT_GROUP_INTRODUCE,
//
REMARKS: data.REMARKS,
EXPERT_GROUP_ID: data.EXPERT_GROUP_ID
}
}).catch((e) => {
console.error('获取详情数据失败', e)
})
}
}
}
</script>
<style lang="sass" scoped>
.table-ui
td
line-height: 34px
.tbg
width: 200px
.ui-foot
text-align: center
margin-top: 20px
</style>

View File

@ -0,0 +1,144 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-input v-model="KEYWORDS" placeholder="搜索" class="filter-item" style="width: 200px;" />
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<div class="ui-foot">
<el-button type="primary" @click="goBack"></el-button>
</div>
</div>
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="EXPERT_NAME" label="专家姓名" />
<el-table-column prop="GENDER" width="180" align="center" label="性别" >
<template v-slot="{row}">
<span>{{ row.GENDER==='0'?'男':'女' }}</span>
</template>
</el-table-column>
<el-table-column prop="EXPERT_TYPE" label="专家类型" />
<el-table-column prop="OFFICE_TELEPHONE" label="办公电话" />
<el-table-column prop="MOBILE_TELEPHONE" label="移动电话" />
<el-table-column label="操作" align="center" width="300">
<template slot-scope="{row}">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.EXPERT_ID,row.EXPERT_NAME)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<template>
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>-->
</template>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination'
import { requestFN } from '@/utils/request'
import { Treeselect } from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
components: { Treeselect, Pagination },
data() {
return {
listQuery: {
page: 1,
limit: 10
},
total: 0,
varList: [],
KEYWORDS: '',
dialogFormEdit: false,
dialogFormShow: false,
dialogType: 'add',
EXPERT_GROUP_ID: ''
}
},
created() {
if (this.$parent.CASE_ID) {
this.EXPERT_GROUP_ID = this.$parent.CASE_ID
this.getList()
}
},
methods: {
goBack() {
this.$parent.activeName = 'list'
},
//* ***********************************
goList(page, CASE_ID, ticketType) {
this.$parent.activeName = page
this.$parent.CASE_ID = CASE_ID
this.$parent.ticketType = ticketType
},
//* *************************************************
getList() {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/groupExpertlist?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
name: this.KEYWORDS,
id: this.EXPERT_GROUP_ID
}
).then((data) => {
this.listISLOADing = false
this.varList = data.varList
this.total = data.page.totalResult
})
.catch((e) => {
this.listISLOADing = false
})
},
//* *************************************************************
handleAdd() {
this.$parent.activeName = 'expertselect'
this.$parent.CASE_ID = this.EXPERT_GROUP_ID
},
//* *************************************************************
handleDelete(id, name) {
this.$confirm('确定要移除[' + name + ']吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/removeRelevanceGroup',
{
EXPERT_ID: id
}
).then((data) => {
if (data.result == 'success') {
this.listISLOADing = false
this.getList()
}
}).catch((e) => {
this.listISLOADing = false
})
}).catch(() => {
})
},
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
}
}
}
</script>

View File

@ -0,0 +1,137 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-input v-model="KEYWORDS" placeholder="搜索" class="filter-item" style="width: 200px;" />
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<div class="ui-foot">
<el-button type="primary" @click="goBack"></el-button>
</div>
</div>
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="EXPERT_NAME" label="名称" />
<el-table-column prop="GENDER" width="180" align="center" label="性别" >
<template v-slot="{row}">
<span>{{ row.GENDER==='0'?'男':'女' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="300">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd(row.EXPERT_ID,row.EXPERT_NAME)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<!-- <template>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
</template>-->
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination'
import { requestFN } from '@/utils/request'
import { Treeselect } from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
components: { Treeselect, Pagination },
data() {
return {
listQuery: {
page: 1,
limit: 10
},
total: 0,
varList: [],
KEYWORDS: '',
dialogFormEdit: false,
dialogFormShow: false,
dialogType: 'add',
EXPERT_GROUP_ID: ''
}
},
created() {
if (this.$parent.CASE_ID) {
this.EXPERT_GROUP_ID = this.$parent.CASE_ID
this.getList()
}
},
methods: {
goBack() {
this.$parent.activeName = 'expertlist'
},
//* ***********************************
goList(page, CASE_ID, ticketType) {
this.$parent.activeName = page
this.$parent.CASE_ID = CASE_ID
this.$parent.ticketType = ticketType
},
//* *************************************************
getList() {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/getRelevanceNotGroupList?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
name: this.KEYWORDS,
id: this.EXPERT_GROUP_ID
}
).then((data) => {
this.listISLOADing = false
this.varList = data.varList
this.total = data.page.totalResult
})
.catch((e) => {
this.listISLOADing = false
})
},
//* *************************************************************
handleAdd(id, name) {
this.$confirm('确定要将[' + name + ']添加到专家组吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/saveRelevanceGroup',
{
EXPERT_ID: id,
EXPERT_GROUP_ID: this.EXPERT_GROUP_ID
}
).then((data) => {
if (data.result == 'success') {
this.listISLOADing = false
this.getList()
}
}).catch((e) => {
this.listISLOADing = false
})
}).catch(() => {
})
},
//* *************************************************************
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
}
}
}
</script>

View File

@ -0,0 +1,544 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-input v-model="KEYWORDS" placeholder="搜索" class="filter-item" style="width: 200px;" />
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
</div>
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="EXPERT_GROUP_NAME" label="组名称" />
<el-table-column label="操作" align="center" width="600">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-document" size="mini" @click="goList('detail', row.EXPERT_GROUP_ID, '1')">查看</el-button>
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.EXPERT_GROUP_ID)"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.EXPERT_GROUP_ID,row.EXPERT_GROUP_NAME)"></el-button>
<el-button type="primary" icon="el-icon-more-outline" size="mini" @click="handleGroupPeople(row.EXPERT_GROUP_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<template>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button type="danger" icon="el-icon-delete" plain @click="makeAll('0')"></el-button>
</template>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog :visible.sync="dialogFormEdit" :title="dialogType==='editUser'?'修改':'新增'" width="1000px">
<el-form ref="form" :rules="rules" :model="form" label-width="150px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="专家组名称" prop="EXPERT_GROUP_NAME">
<el-input v-model="form.EXPERT_GROUP_NAME" placeholder="请输入场区名称..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专家组类型" prop="EXPERT_GROUP_TYPE">
<el-input v-model="form.EXPERT_GROUP_TYPE" placeholder="专家组类型..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="专家组级别" prop="EXPERT_GROUP_NAME">
<el-input v-model="form.EXPERT_GROUP_LEVEL" placeholder="专家组级别..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="EXPERT_GROUP_NAME">
<el-input v-model="form.CONTACT_TELEPHONE" placeholder="联系电话..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="传真" prop="FAX">
<el-input v-model="form.FAX" placeholder="请输入专家类型..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="人数" prop="NUMBER_OF_PEOPLE">
<el-input v-model="form.NUMBER_OF_PEOPLE" type="number" placeholder="人数..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="组建单位" prop="ESTABLISHED_UNIT">
<el-input v-model="form.ESTABLISHED_UNIT" placeholder="组建单位..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="组建单位邮编" prop="ESTABLISHED_UNIT_POSTCODE">
<el-input v-model="form.ESTABLISHED_UNIT_POSTCODE" placeholder="组建单位邮编..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="组建单位地址" prop="ESTABLISHED_UNIT_ADDRESS">
<el-input v-model="form.ESTABLISHED_UNIT_ADDRESS" placeholder="组建单位地址..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="负责人" prop="RESPONSIBLE_PERSON">
<el-input v-model="form.RESPONSIBLE_PERSON" placeholder="负责人..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="负责人办公电话" prop="RESPONSIBLE_OFFICE_TELEPHONE">
<el-input v-model="form.RESPONSIBLE_OFFICE_TELEPHONE" placeholder="负责人办公电话..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="负责人移动电话" prop="RESPONSIBLE_MOBILE_TELEPHONE">
<el-input v-model="form.RESPONSIBLE_MOBILE_TELEPHONE" placeholder="负责人移动电话..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="负责人住宅电话" prop="RESPONSIBLE_HOME_TELEPHONE">
<el-input v-model="form.RESPONSIBLE_HOME_TELEPHONE" placeholder="负责人住宅电话..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="联系人" prop="CONTACT_PERSON">
<el-input v-model="form.CONTACT_PERSON" placeholder="联系人..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人办公电话" prop="CONTACT_OFFICE_TELEPHONE">
<el-input v-model="form.CONTACT_OFFICE_TELEPHONE" placeholder="联系人办公电话..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="联系人移动电话" prop="CONTACT_MOBILE_TELEPHONE">
<el-input v-model="form.CONTACT_MOBILE_TELEPHONE" placeholder="联系人移动电话..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人住宅电话" prop="CONTACT_HOME_TELEPHONE">
<el-input v-model="form.CONTACT_HOME_TELEPHONE" placeholder="联系人住宅电话..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="联系人电子邮箱" prop="CONTACT_EMAIL">
<el-input v-model="form.CONTACT_EMAIL" placeholder="联系人电子邮箱..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="排序号" prop="SORTING_NUMBER">
<el-input v-model="form.SORTING_NUMBER" type="number" placeholder="排序号..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="专家组介绍" prop="EXPERT_GROUP_INTRODUCE">
<el-input v-model="form.EXPERT_GROUP_INTRODUCE" type="textarea" placeholder="专家组介绍..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="REMARKS">
<el-input v-model="form.REMARKS" type="textarea" placeholder="备注..." />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormEdit = false"> </el-button>
<el-button type="primary" @click="confirm"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/Pagination'
import { requestFN } from '@/utils/request'
import { Treeselect } from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { upload } from '@/utils/upload'
export default {
components: { Treeselect, Pagination },
data() {
return {
listQuery: {
page: 1,
limit: 10
},
total: 0,
varList: [],
KEYWORDS: '',
dialogFormEdit: false,
dialogFormShow: false,
dialogType: 'add',
form: {
//
EXPERT_GROUP_NAME: '',
//
EXPERT_GROUP_TYPE: '',
//
EXPERT_GROUP_LEVEL: '',
//
CONTACT_TELEPHONE: '',
//
FAX: '',
//
NUMBER_OF_PEOPLE: '',
//
ESTABLISHED_UNIT: '',
//
ESTABLISHED_UNIT_POSTCODE: '',
//
ESTABLISHED_UNIT_ADDRESS: '',
//
RESPONSIBLE_PERSON: '',
//
RESPONSIBLE_OFFICE_TELEPHONE: '',
//
RESPONSIBLE_MOBILE_TELEPHONE: '',
//
RESPONSIBLE_HOME_TELEPHONE: '',
//
CONTACT_PERSON: '',
//
CONTACT_OFFICE_TELEPHONE: '',
//
CONTACT_MOBILE_TELEPHONE: '',
//
CONTACT_HOME_TELEPHONE: '',
//
CONTACT_EMAIL: '',
//
SORTING_NUMBER: '',
//
EXPERT_GROUP_INTRODUCE: '',
//
REMARKS: ''
},
yjyjExpertGroupData: [],
treeData: [],
DepartmentData: [],
normalizer(node) {
return {
id: node.DICTIONARIES_ID,
label: node.name,
children: node.nodes
}
},
FFILE: []
}
},
created() {
this.getList()
// this.getyjyjExpertGroupDataList()
// this.getDepartmentList()
// this.getTreeList()
},
methods: {
// *******************************************
handleEditChange(file) {
file.MATERIALS_ID = Math.random()
const is5M = file.size / 1024 / 1024 < 5
if (is5M) this.FFILE.push(file)
},
handleRemove(file, fileList) {
this.FFILE = fileList
},
upload(fun) {
const formData = new FormData()
for (let i = 0; i < this.FFILE.length; i++) {
if (this.FFILE[i].raw) {
formData.append('FFILE', this.FFILE[i].raw)
}
}
upload(
'/file/upload',
formData
).then((data) => {
fun(data.fileurl)
}).catch((e) => {
})
},
//* ****************************************
getDepartmentList() {
requestFN('/department/listAll').then((data) => {
this.DepartmentData = data.list.map(item => ({
id: item.department_ID,
label: item.name
}))
}).catch((e) => {
console.error('获取主管单位数据失败', e)
})
},
getTreeList() {
const params = {
PARENT_ID: '5a5d2809ed644aa6ba97a5240ff35484'
}
requestFN('/dictionaries/listTree', params).then((data) => {
this.treeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
console.error('获取树形数据失败', e)
})
},
getyjyjExpertGroupDataList() {
const params = {
PARENT_ID: 'd2d163a49a1842a99b28067eee05884b'
}
requestFN('/dictionaries/listTree', params).then((data) => {
this.yjyjExpertGroupData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
console.error('获取树形数据失败', e)
})
},
//* ***********************************
goList(page, CASE_ID, ticketType) {
this.$parent.activeName = page
this.$parent.CASE_ID = CASE_ID
this.$parent.ticketType = ticketType
},
//* *************************************************
getList() {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
name: this.KEYWORDS
}
).then((data) => {
this.listISLOADing = false
this.varList = data.varList
this.total = data.page.totalResult
})
.catch((e) => {
this.listISLOADing = false
})
},
//* *************************************************************
handleGroupPeople(id) {
this.$parent.activeName = 'expertlist'
this.$parent.CASE_ID = id
},
handleEdit(id) {
this.dialogFormEdit = true
this.dialogType = 'editUser'
this.getDetail(id) //
this.$refs.upISLOAD.clearFiles()
},
getDetail(id) {
const params = {
id: id
}
requestFN('/yjExpertGroup/detail', params).then((response) => {
const data = response.data
console.log(data)
this.form = {
//
EXPERT_GROUP_NAME: data.EXPERT_GROUP_NAME,
//
EXPERT_GROUP_TYPE: data.EXPERT_GROUP_TYPE,
//
EXPERT_GROUP_LEVEL: data.EXPERT_GROUP_LEVEL,
//
CONTACT_TELEPHONE: data.CONTACT_TELEPHONE,
//
FAX: data.FAX,
//
NUMBER_OF_PEOPLE: data.NUMBER_OF_PEOPLE,
//
ESTABLISHED_UNIT: data.ESTABLISHED_UNIT,
//
ESTABLISHED_UNIT_POSTCODE: data.ESTABLISHED_UNIT_POSTCODE,
//
ESTABLISHED_UNIT_ADDRESS: data.ESTABLISHED_UNIT_ADDRESS,
//
RESPONSIBLE_PERSON: data.RESPONSIBLE_PERSON,
//
RESPONSIBLE_OFFICE_TELEPHONE: data.RESPONSIBLE_OFFICE_TELEPHONE,
//
RESPONSIBLE_MOBILE_TELEPHONE: data.RESPONSIBLE_MOBILE_TELEPHONE,
//
RESPONSIBLE_HOME_TELEPHONE: data.RESPONSIBLE_HOME_TELEPHONE,
//
CONTACT_PERSON: data.CONTACT_PERSON,
//
CONTACT_OFFICE_TELEPHONE: data.CONTACT_OFFICE_TELEPHONE,
//
CONTACT_MOBILE_TELEPHONE: data.CONTACT_MOBILE_TELEPHONE,
//
CONTACT_HOME_TELEPHONE: data.CONTACT_HOME_TELEPHONE,
//
CONTACT_EMAIL: data.CONTACT_EMAIL,
//
SORTING_NUMBER: data.SORTING_NUMBER,
//
EXPERT_GROUP_INTRODUCE: data.EXPERT_GROUP_INTRODUCE,
//
REMARKS: data.REMARKS,
EXPERT_GROUP_ID: data.EXPERT_GROUP_ID
}
}).catch((e) => {
console.error('获取详情数据失败', e)
})
},
handleAdd() {
this.dialogFormEdit = true
this.form = {}
this.form.LONGITUDE = ''
this.form.LATITUDE = ''
this.dialogType = 'saveUser'
this.$refs.upISLOAD.clearFiles()
},
confirm() {
this.$refs.form.validate(valid => {
if (valid) {
if (this.FFILE.length > 0) {
this.upload((v) => {
this.form.FILE_URL = v
this.$refs.upload.clearFiles()
this.dataSave()
})
} else {
this.dataSave()
}
} else {
return false
}
})
},
dataSave() {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/save', this.form
).then((data) => {
this.listISLOADing = false
this.dialogFormEdit = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listISLOADing = false
})
},
//* *************************************************************
handleDelete(id, name) {
this.$confirm('确定要删除[' + name + ']吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/delete',
{
id: id
}
).then((data) => {
if (data.result == 'success') {
this.listISLOADing = false
this.getList()
}
}).catch((e) => {
this.listISLOADing = false
})
}).catch(() => {
})
},
makeAll() {
const _selectData = this.$refs.multipleTable.selection
console.info('_selectData')
console.info(_selectData)
if (_selectData == null || _selectData.length == 0) {
this.$message({
message: '请选中要删除的项...',
type: 'error'
})
return false
}
const ids = _selectData.map((item, index) => {
return item.EXPERT_GROUP_ID
}).join(',')
this.$confirm('确定要删除选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listISLOADing = true
requestFN(
'/yjExpertGroup/deleteAll',
{
ids: ids
}
).then(() => {
this.listISLOADing = false
this.varList = []
this.listQuery.page = 1
this.$refs.multipleTable.clearSelection()
this.getList()
}).catch((e) => {
this.listISLOADing = false
})
}).catch(() => {
})
},
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
}
}
}
</script>

View File

@ -0,0 +1,24 @@
<template>
<div>
<list v-show="activeName=='list'" ref="list" />
<detail v-if="activeName=='detail'"/>
<expertlist v-if="activeName=='expertlist'"/>
<expertselect v-if="activeName=='expertselect'"/>
</div>
</template>
<script>
import list from './components/list.vue'
import detail from './components/detail.vue'
import expertlist from './components/expertlist.vue'
import expertselect from './components/expertselect.vue'
export default {
components: { list, detail, expertlist, expertselect },
data() {
return {
activeName: 'list',
CASE_ID: ''
}
}
}
</script>

View File

@ -0,0 +1,355 @@
<template>
<div>
<div class="app-container">
<div class="level-title">
<h1>应急救援专家</h1>
</div>
<div class="mb-20">
<table class="table-ui">
<tr>
<td class="tbg">专家名称</td>
<td>{{ form.EXPERT_NAME }}</td>
<td class="tbg">性别</td>
<td>{{ form.GENDER }}</td>
</tr>
<tr>
<td class="tbg">出生日期</td>
<td >{{ form.BIRTH_DATE_STR }}</td>
<td class="tbg">身份证</td>
<td>{{ form.ID_CARD }}</td>
</tr>
<tr>
<td class="tbg">专家类型</td>
<td>{{ form.EXPERT_TYPE }}</td>
<td class="tbg">专家密级</td>
<td>{{ form.EXPERT_SECRET_LEVEL }}</td>
</tr>
<tr>
<td class="tbg">职称</td>
<td>{{ form.PROFESSIONAL_TITLE }}</td>
<td class="tbg">专业类型</td>
<td>{{ form.PROFESSIONAL_TYPE }}</td>
</tr>
<tr>
<td class="tbg">民族</td>
<td>{{ form.ETHNICITY }}</td>
<td class="tbg">政治面貌</td>
<td>{{ form.POLITICAL_STATUS }}</td>
</tr>
<tr>
<td class="tbg">最高学历</td>
<td>{{ form.HIGHEST_EDUCATION }}</td>
<td class="tbg">参加工作时间</td>
<td>{{ form.WORK_START_DATE_STR }}</td>
</tr>
<tr>
<td class="tbg">办公电话</td>
<td>{{ form.OFFICE_TELEPHONE }}</td>
<td class="tbg" >家庭电话</td>
<td>{{ form.HOME_TELEPHONE }}</td>
</tr>
<tr>
<td class="tbg">移动电话</td>
<td>{{ form.MOBILE_TELEPHONE }}</td>
<td class="tbg" >传真</td>
<td>{{ form.FAX }}</td>
</tr>
<tr>
<td class="tbg">电子邮箱</td>
<td>{{ form.EMAIL }}</td>
<td class="tbg">健康状况</td>
<td>{{ form.HEALTH_STATUS }}</td>
</tr>
<tr>
<td class="tbg">行政职务</td>
<td>{{ form.ADMINISTRATIVE_POSITION }}</td>
<td class="tbg">专家组职务</td>
<td>{{ form.EXPERT_GROUP_POSITION }}</td>
</tr>
<tr>
<td class="tbg">家庭住址</td>
<td colspan="3">{{ form.HOME_ADDRESS }}</td>
</tr>
<tr>
<td class="tbg">籍贯</td>
<td>{{ form.PLACE_OF_ORIGIN }}</td>
<td class="tbg">户籍所在地</td>
<td>{{ form.HOUSEHOLD_REGISTER_LOCATION }}</td>
</tr>
<tr>
<td class="tbg">通信地址</td>
<td>{{ form.MAILING_ADDRESS }}</td>
<td class="tbg">毕业院校</td>
<td>{{ form.GRADUATED_COLLEGE }}</td>
</tr>
<tr>
<td class="tbg">工作单位</td>
<td>{{ form.WORK_UNIT }}</td>
<td class="tbg">单位主管部门</td>
<td>{{ form.UNIT_SUPERVISOR }}</td>
</tr>
<tr>
<td class="tbg">单位邮编</td>
<td>{{ form.UNIT_POSTCODE }}</td>
<td class="tbg">排序号</td>
<td>{{ form.SORTING_NUMBER }}</td>
</tr>
<tr>
<td class="tbg">专家特长</td>
<td>{{ form.EXPERT_SPECIALTY }}</td>
<td class="tbg">工作简历概述</td>
<td>{{ form.WORK_RESUME_SUMMARY }}</td>
</tr>
<tr>
<td class="tbg">主要成果</td>
<td>{{ form.MAIN_ACHIEVEMENTS }}</td>
<td class="tbg">应急工作经历</td>
<td>{{ form.EMERGENCY_WORK_EXPERIENCE }}</td>
</tr>
<tr>
<td class="tbg">备注</td>
<td colspan="3">{{ form.REMARKS }}</td>
</tr>
</table>
</div>
</div>
<div class="ui-height" />
<div class="ui-foot">
<el-button type="primary" @click="goBack"></el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
export default {
data() {
return {
form: {
//
EXPERT_NAME: '',
//
GENDER: '',
//
BIRTH_DATE: '',
//
ID_CARD: '',
//
EXPERT_TYPE: '',
//
EXPERT_SECRET_LEVEL: '',
//
PROFESSIONAL_TITLE: '',
//
PROFESSIONAL_TYPE: '',
//
ETHNICITY: '',
//
POLITICAL_STATUS: '',
//
HIGHEST_EDUCATION: '',
//
WORK_START_DATE: '',
//
OFFICE_TELEPHONE: '',
//
HOME_TELEPHONE: '',
//
MOBILE_TELEPHONE: '',
//
FAX: '',
//
EMAIL: '',
//
HEALTH_STATUS: '',
//
ADMINISTRATIVE_POSITION: '',
//
EXPERT_GROUP_POSITION: '',
//
HOME_ADDRESS: '',
//
PLACE_OF_ORIGIN: '',
//
HOUSEHOLD_REGISTER_LOCATION: '',
//
MAILING_ADDRESS: '',
//
GRADUATED_COLLEGE: '',
//
WORK_UNIT: '',
//
UNIT_SUPERVISOR: '',
//
UNIT_POSTCODE: '',
//
SORTING_NUMBER: '',
//
EXPERT_SPECIALTY: '',
//
WORK_RESUME_SUMMARY: '',
//
MAIN_ACHIEVEMENTS: '',
//
EMERGENCY_WORK_EXPERIENCE: '',
//
REMARKS: ''
},
Id: ''
}
},
created() {
if (this.$parent.CASE_ID) {
this.Id = this.$parent.CASE_ID
this.getDetail(this.Id)
}
},
methods: {
goBack() {
this.$parent.activeName = 'list'
},
//* **********************************************
download(obj) {
this.$confirm('确定要下载此文件吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.downloadUrl = config.fileUrl + obj.FILE_URL
const _this = this
setTimeout(function() {
window.open(_this.downloadUrl)
}, 200)
}).catch(() => {
})
},
//* **************************************
getDetail(id) {
const params = {
id: id
}
requestFN('/yjexpert/detail', params).then((response) => {
const data = response.data
console.log(data)
this.form = {
//
EXPERT_NAME: data.EXPERT_NAME,
//
GENDER: data.GENDER,
//
BIRTH_DATE: data.BIRTH_DATE,
BIRTH_DATE_STR: data.BIRTH_DATE_STR,
//
ID_CARD: data.ID_CARD,
//
EXPERT_TYPE: data.EXPERT_TYPE,
//
EXPERT_SECRET_LEVEL: data.EXPERT_SECRET_LEVEL,
//
PROFESSIONAL_TITLE: data.PROFESSIONAL_TITLE,
//
PROFESSIONAL_TYPE: data.PROFESSIONAL_TYPE,
//
ETHNICITY: data.ETHNICITY,
//
POLITICAL_STATUS: data.POLITICAL_STATUS,
//
HIGHEST_EDUCATION: data.HIGHEST_EDUCATION,
//
WORK_START_DATE: data.WORK_START_DATE,
WORK_START_DATE_STR: data.WORK_START_DATE_STR,
//
OFFICE_TELEPHONE: data.OFFICE_TELEPHONE,
//
HOME_TELEPHONE: data.HOME_TELEPHONE,
//
MOBILE_TELEPHONE: data.MOBILE_TELEPHONE,
//
FAX: data.FAX,
//
EMAIL: data.EMAIL,
//
HEALTH_STATUS: data.HEALTH_STATUS,
//
ADMINISTRATIVE_POSITION: data.ADMINISTRATIVE_POSITION,
//
EXPERT_GROUP_POSITION: data.EXPERT_GROUP_POSITION,
//
HOME_ADDRESS: data.HOME_ADDRESS,
//
PLACE_OF_ORIGIN: data.PLACE_OF_ORIGIN,
//
HOUSEHOLD_REGISTER_LOCATION: data.HOUSEHOLD_REGISTER_LOCATION,
//
MAILING_ADDRESS: data.MAILING_ADDRESS,
//
GRADUATED_COLLEGE: data.GRADUATED_COLLEGE,
//
WORK_UNIT: data.WORK_UNIT,
//
UNIT_SUPERVISOR: data.UNIT_SUPERVISOR,
//
UNIT_POSTCODE: data.UNIT_POSTCODE,
//
SORTING_NUMBER: data.SORTING_NUMBER,
//
EXPERT_SPECIALTY: data.EXPERT_SPECIALTY,
//
WORK_RESUME_SUMMARY: data.WORK_RESUME_SUMMARY,
//
MAIN_ACHIEVEMENTS: data.MAIN_ACHIEVEMENTS,
//
EMERGENCY_WORK_EXPERIENCE: data.EMERGENCY_WORK_EXPERIENCE,
//
REMARKS: data.REMARKS,
EXPERT_ID: data.EXPERT_ID
}
}).catch((e) => {
console.error('获取详情数据失败', e)
})
}
}
}
</script>
<style lang="sass" scoped>
.table-ui
td
line-height: 34px
.tbg
width: 200px
.ui-foot
text-align: center
margin-top: 20px
</style>

View File

@ -0,0 +1,695 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-input v-model="KEYWORDS" placeholder="搜索" class="filter-item" style="width: 200px;" />
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
</div>
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="EXPERT_NAME" label="名称" width="180" />
<el-table-column prop="GENDER" width="180" align="center" label="性别" >
<template v-slot="{row}">
<span>{{ row.GENDER==='0'?'男':'女' }}</span>
</template>
</el-table-column>
<el-table-column prop="EXPERT_TYPE" label="专家类型" />
<el-table-column prop="OFFICE_TELEPHONE" label="办公电话" />
<el-table-column prop="MOBILE_TELEPHONE" label="移动电话" />
<el-table-column label="操作" align="center" width="300">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-document" size="mini" @click="goList('detail', row.EXPERT_ID, '1')">查看</el-button>
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.EXPERT_ID)"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.EXPERT_ID,row.EXPERT_NAME)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<template>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button type="danger" icon="el-icon-delete" plain @click="makeAll('0')"></el-button>
</template>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog :visible.sync="dialogFormEdit" :title="dialogType==='editUser'?'修改':'新增'" width="1000px">
<el-form ref="form" :rules="rules" :model="form" label-width="150px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="专家名称" prop="EXPERT_NAME">
<el-input v-model="form.EXPERT_NAME" placeholder="请输入场区名称..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" prop="form.GENDER">
<el-radio v-model="form.GENDER" label="0"></el-radio>
<el-radio v-model="form.GENDER" label="1"></el-radio>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="出生日期" prop="BIRTH_DATE">
<el-date-picker v-model="form.BIRTH_DATE" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证" prop="EXPERT_NAME">
<el-input v-model="form.ID_CARD" placeholder="身份证..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="专家类型" prop="EXPERT_NAME">
<el-input v-model="form.EXPERT_TYPE" placeholder="请输入专家类型..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专家密级" prop="EXPERT_NAME">
<el-input v-model="form.EXPERT_SECRET_LEVEL" placeholder="专家密级..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="职称" prop="EXPERT_NAME">
<el-input v-model="form.PROFESSIONAL_TITLE" placeholder="请输入职称..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业类型" prop="EXPERT_NAME">
<el-input v-model="form.PROFESSIONAL_TYPE" placeholder="专业类型..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="民族" prop="EXPERT_NAME">
<el-input v-model="form.ETHNICITY" placeholder="请输入民族..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="政治面貌" prop="EXPERT_NAME">
<el-input v-model="form.POLITICAL_STATUS" placeholder="政治面貌..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="最高学历" prop="EXPERT_NAME">
<el-input v-model="form.HIGHEST_EDUCATION" placeholder="请输入最高学历..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="参加工作时间" prop="WORK_START_DATE">
<el-date-picker v-model="form.WORK_START_DATE" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="办公电话" prop="OFFICE_TELEPHONE">
<el-input v-model="form.OFFICE_TELEPHONE" placeholder="请输入办公电话..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="家庭电话" prop="HOME_TELEPHONE">
<el-input v-model="form.HOME_TELEPHONE" placeholder="参加家庭电话..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="移动电话" prop="MOBILE_TELEPHONE">
<el-input v-model="form.MOBILE_TELEPHONE" placeholder="请输入办公电话..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="传真" prop="FAX">
<el-input v-model="form.FAX" placeholder="传真..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="电子邮箱" prop="EMAIL">
<el-input v-model="form.EMAIL" placeholder="电子邮箱..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="健康状况" prop="HEALTH_STATUS">
<el-input v-model="form.HEALTH_STATUS" placeholder="健康状况..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="行政职务" prop="ADMINISTRATIVE_POSITION">
<el-input v-model="form.ADMINISTRATIVE_POSITION" placeholder="行政职务..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专家组职务" prop="EXPERT_GROUP_POSITION">
<el-input v-model="form.EXPERT_GROUP_POSITION" placeholder="专家组职务..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="家庭住址" prop="HOME_ADDRESS">
<el-input v-model="form.HOME_ADDRESS" placeholder="行政职务..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="籍贯" prop="PLACE_OF_ORIGIN">
<el-input v-model="form.PLACE_OF_ORIGIN" placeholder="籍贯..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="户籍所在地" prop="HOUSEHOLD_REGISTER_LOCATION">
<el-input v-model="form.HOUSEHOLD_REGISTER_LOCATION" placeholder="户籍所在地..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="通信地址" prop="MAILING_ADDRESS">
<el-input v-model="form.MAILING_ADDRESS" placeholder="通信地址..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="毕业院校" prop="GRADUATED_COLLEGE">
<el-input v-model="form.GRADUATED_COLLEGE" placeholder="毕业院校..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作单位" prop="WORK_UNIT">
<el-input v-model="form.WORK_UNIT" placeholder="工作单位..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="单位主管部门" prop="UNIT_SUPERVISOR">
<el-input v-model="form.UNIT_SUPERVISOR" placeholder="单位主管部门..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位邮编" prop="UNIT_POSTCODE">
<el-input v-model="form.UNIT_POSTCODE" placeholder="单位邮编..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="排序号" prop="SORTING_NUMBER">
<el-input v-model="form.SORTING_NUMBER" type="number" placeholder="排序号..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专家特长" prop="EXPERT_SPECIALTY">
<el-input v-model="form.EXPERT_SPECIALTY" placeholder="专家特长..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="工作简历概述" prop="WORK_RESUME_SUMMARY">
<el-input v-model="form.WORK_RESUME_SUMMARY" type="textarea" placeholder="工作简历概述..." />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="主要成果" prop="MAIN_ACHIEVEMENTS">
<el-input v-model="form.MAIN_ACHIEVEMENTS" placeholder="主要成果..." />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="应急工作经历" prop="EMERGENCY_WORK_EXPERIENCE">
<el-input v-model="form.EMERGENCY_WORK_EXPERIENCE" placeholder="应急工作经历..." />
</el-form-item>
</el-col>
<el-col :span="12"/>
</el-row>
<el-row :gutter="20">
<el-form-item label="备注" prop="REMARKS">
<el-input v-model="form.REMARKS" type="textarea" placeholder="备注..." />
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormEdit = false"> </el-button>
<el-button type="primary" @click="confirm"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/Pagination'
import { requestFN } from '@/utils/request'
import { Treeselect } from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { upload } from '@/utils/upload'
export default {
components: { Treeselect, Pagination },
data() {
return {
listQuery: {
page: 1,
limit: 10
},
total: 0,
varList: [],
KEYWORDS: '',
dialogFormEdit: false,
dialogFormShow: false,
dialogType: 'add',
form: {
//
EXPERT_NAME: '',
//
GENDER: '',
//
BIRTH_DATE: '',
//
ID_CARD: '',
//
EXPERT_TYPE: '',
//
EXPERT_SECRET_LEVEL: '',
//
PROFESSIONAL_TITLE: '',
//
PROFESSIONAL_TYPE: '',
//
ETHNICITY: '',
//
POLITICAL_STATUS: '',
//
HIGHEST_EDUCATION: '',
//
WORK_START_DATE: '',
//
OFFICE_TELEPHONE: '',
//
HOME_TELEPHONE: '',
//
MOBILE_TELEPHONE: '',
//
FAX: '',
//
EMAIL: '',
//
HEALTH_STATUS: '',
//
ADMINISTRATIVE_POSITION: '',
//
EXPERT_GROUP_POSITION: '',
//
HOME_ADDRESS: '',
//
PLACE_OF_ORIGIN: '',
//
HOUSEHOLD_REGISTER_LOCATION: '',
//
MAILING_ADDRESS: '',
//
GRADUATED_COLLEGE: '',
//
WORK_UNIT: '',
//
UNIT_SUPERVISOR: '',
//
UNIT_POSTCODE: '',
//
SORTING_NUMBER: '',
//
EXPERT_SPECIALTY: '',
//
WORK_RESUME_SUMMARY: '',
//
MAIN_ACHIEVEMENTS: '',
//
EMERGENCY_WORK_EXPERIENCE: '',
//
REMARKS: ''
},
yjyjexpertData: [],
treeData: [],
DepartmentData: [],
normalizer(node) {
return {
id: node.DICTIONARIES_ID,
label: node.name,
children: node.nodes
}
},
FFILE: []
}
},
created() {
this.getList()
// this.getyjyjexpertDataList()
// this.getDepartmentList()
// this.getTreeList()
},
methods: {
// *******************************************
handleEditChange(file) {
file.MATERIALS_ID = Math.random()
const is5M = file.size / 1024 / 1024 < 5
if (is5M) this.FFILE.push(file)
},
handleRemove(file, fileList) {
this.FFILE = fileList
},
upload(fun) {
const formData = new FormData()
for (let i = 0; i < this.FFILE.length; i++) {
if (this.FFILE[i].raw) {
formData.append('FFILE', this.FFILE[i].raw)
}
}
upload(
'/file/upload',
formData
).then((data) => {
fun(data.fileurl)
}).catch((e) => {
})
},
//* ****************************************
getDepartmentList() {
requestFN('/department/listAll').then((data) => {
this.DepartmentData = data.list.map(item => ({
id: item.department_ID,
label: item.name
}))
}).catch((e) => {
console.error('获取主管单位数据失败', e)
})
},
getTreeList() {
const params = {
PARENT_ID: '5a5d2809ed644aa6ba97a5240ff35484'
}
requestFN('/dictionaries/listTree', params).then((data) => {
this.treeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
console.error('获取树形数据失败', e)
})
},
getyjyjexpertDataList() {
const params = {
PARENT_ID: 'd2d163a49a1842a99b28067eee05884b'
}
requestFN('/dictionaries/listTree', params).then((data) => {
this.yjyjexpertData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
console.error('获取树形数据失败', e)
})
},
//* ***********************************
goList(page, CASE_ID, ticketType) {
this.$parent.activeName = page
this.$parent.CASE_ID = CASE_ID
this.$parent.ticketType = ticketType
},
//* *************************************************
getList() {
this.listISLOADing = true
requestFN(
'/yjexpert/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
name: this.KEYWORDS
}
).then((data) => {
this.listISLOADing = false
this.varList = data.varList
this.total = data.page.totalResult
})
.catch((e) => {
this.listISLOADing = false
})
},
//* *************************************************************
handleEdit(id) {
this.dialogFormEdit = true
this.dialogType = 'editUser'
this.getDetail(id) //
this.$refs.upISLOAD.clearFiles()
},
getDetail(id) {
const params = {
id: id
}
requestFN('/yjexpert/detail', params).then((response) => {
const data = response.data
console.log(data)
this.form = {
//
EXPERT_NAME: data.EXPERT_NAME,
//
GENDER: data.GENDER,
//
BIRTH_DATE: data.BIRTH_DATE,
//
ID_CARD: data.ID_CARD,
//
EXPERT_TYPE: data.EXPERT_TYPE,
//
EXPERT_SECRET_LEVEL: data.EXPERT_SECRET_LEVEL,
//
PROFESSIONAL_TITLE: data.PROFESSIONAL_TITLE,
//
PROFESSIONAL_TYPE: data.PROFESSIONAL_TYPE,
//
ETHNICITY: data.ETHNICITY,
//
POLITICAL_STATUS: data.POLITICAL_STATUS,
//
HIGHEST_EDUCATION: data.HIGHEST_EDUCATION,
//
WORK_START_DATE: data.WORK_START_DATE,
//
OFFICE_TELEPHONE: data.OFFICE_TELEPHONE,
//
HOME_TELEPHONE: data.HOME_TELEPHONE,
//
MOBILE_TELEPHONE: data.MOBILE_TELEPHONE,
//
FAX: data.FAX,
//
EMAIL: data.EMAIL,
//
HEALTH_STATUS: data.HEALTH_STATUS,
//
ADMINISTRATIVE_POSITION: data.ADMINISTRATIVE_POSITION,
//
EXPERT_GROUP_POSITION: data.EXPERT_GROUP_POSITION,
//
HOME_ADDRESS: data.HOME_ADDRESS,
//
PLACE_OF_ORIGIN: data.PLACE_OF_ORIGIN,
//
HOUSEHOLD_REGISTER_LOCATION: data.HOUSEHOLD_REGISTER_LOCATION,
//
MAILING_ADDRESS: data.MAILING_ADDRESS,
//
GRADUATED_COLLEGE: data.GRADUATED_COLLEGE,
//
WORK_UNIT: data.WORK_UNIT,
//
UNIT_SUPERVISOR: data.UNIT_SUPERVISOR,
//
UNIT_POSTCODE: data.UNIT_POSTCODE,
//
SORTING_NUMBER: data.SORTING_NUMBER,
//
EXPERT_SPECIALTY: data.EXPERT_SPECIALTY,
//
WORK_RESUME_SUMMARY: data.WORK_RESUME_SUMMARY,
//
MAIN_ACHIEVEMENTS: data.MAIN_ACHIEVEMENTS,
//
EMERGENCY_WORK_EXPERIENCE: data.EMERGENCY_WORK_EXPERIENCE,
//
REMARKS: data.REMARKS,
EXPERT_ID: data.EXPERT_ID
}
}).catch((e) => {
console.error('获取详情数据失败', e)
})
},
handleAdd() {
this.dialogFormEdit = true
this.form = {}
this.form.LONGITUDE = ''
this.form.LATITUDE = ''
this.dialogType = 'saveUser'
this.$refs.upISLOAD.clearFiles()
},
confirm() {
this.$refs.form.validate(valid => {
if (valid) {
if (this.FFILE.length > 0) {
this.upload((v) => {
this.form.FILE_URL = v
this.$refs.upload.clearFiles()
this.dataSave()
})
} else {
this.dataSave()
}
} else {
return false
}
})
},
dataSave() {
this.listISLOADing = true
requestFN(
'/yjexpert/save', this.form
).then((data) => {
this.listISLOADing = false
this.dialogFormEdit = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listISLOADing = false
})
},
//* *************************************************************
handleDelete(id, name) {
this.$confirm('确定要删除[' + name + ']吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listISLOADing = true
requestFN(
'/yjexpert/delete',
{
id: id
}
).then((data) => {
if (data.result == 'success') {
this.listISLOADing = false
this.getList()
}
}).catch((e) => {
this.listISLOADing = false
})
}).catch(() => {
})
},
makeAll() {
const _selectData = this.$refs.multipleTable.selection
console.info('_selectData')
console.info(_selectData)
if (_selectData == null || _selectData.length == 0) {
this.$message({
message: '请选中要删除的项...',
type: 'error'
})
return false
}
const ids = _selectData.map((item, index) => {
return item.EXPERT_ID
}).join(',')
this.$confirm('确定要删除选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listISLOADing = true
requestFN(
'/yjexpert/deleteAll',
{
ids: ids
}
).then(() => {
this.listISLOADing = false
this.varList = []
this.listQuery.page = 1
this.$refs.multipleTable.clearSelection()
this.getList()
}).catch((e) => {
this.listISLOADing = false
})
}).catch(() => {
})
},
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
}
}
}
</script>

View File

@ -0,0 +1,19 @@
<template>
<div>
<list v-show="activeName=='list'" ref="list" />
<detail v-if="activeName=='detail'"/>
</div>
</template>
<script>
import list from './components/list.vue'
import detail from './components/detail.vue'
export default {
components: { list, detail },
data() {
return {
activeName: 'list',
CASE_ID: ''
}
}
}
</script>