Browse Source

Merge branch 'dev_pli_power_axis' into test

test
YUJT 4 years ago
parent
commit
fa22d978ec
  1. 4
      src/views/modules/plugins/power/poweraxis.vue
  2. 41
      src/views/modules/plugins/power/poweraxis_add_leader.vue
  3. 2
      src/views/modules/visual/basicinfo/cpts/people-more.vue
  4. 19
      src/views/modules/visual/plugin/power/components/house-dialog.vue
  5. 110
      src/views/modules/visual/plugin/power/organization.vue

4
src/views/modules/plugins/power/poweraxis.vue

@ -7,7 +7,7 @@
placeholder="请选择所属组织" placeholder="请选择所属组织"
:options="agencytree" :options="agencytree"
v-model="dataForm.agencyId" v-model="dataForm.agencyId"
:props="{ expandTrigger: 'hover', label: 'orgName', value: 'orgId', children: 'subOrgList' }" :props="{ expandTrigger: 'hover', emitPath: false, label: 'orgName', value: 'orgId', children: 'subOrgList' }"
clearable/> clearable/>
</el-form-item> </el-form-item>
<el-form-item label="部门名称" prop="deptName"> <el-form-item label="部门名称" prop="deptName">
@ -213,7 +213,7 @@ export default {
async getDataList () { async getDataList () {
const url = '/pli/power/axisStruct/list4Tree' const url = '/pli/power/axisStruct/list4Tree'
const { data, code, msg } = await requestPost(url, this.queryParams) const { data, code, msg } = await requestPost(url, this.dataForm)
if (code === 0) { if (code === 0) {
this.dataList = handleTree(data, 'id', 'pid'); this.dataList = handleTree(data, 'id', 'pid');

41
src/views/modules/plugins/power/poweraxis_add_leader.vue

@ -31,13 +31,13 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" prop="mobile" label-width="150px"> <el-form-item label="联系方式" label-width="150px">
<el-input class="item_width_1" v-model="dataForm.mobile" placeholder="联系方式"></el-input> <el-input class="item_width_1" v-model="dataForm.mobile" placeholder="联系方式"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="简介" prop="interoduction" label-width="150px"> <el-form-item label="简介" prop="interoduction" label-width="150px">
<el-input class="item_width_1" v-model="dataForm.interoduction" placeholder="简介"></el-input> <el-input type="textarea" class="item_width_1" v-model="dataForm.interoduction" placeholder="简介"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="头像" prop="avatar" label-width="150px"> <el-form-item label="头像" label-width="150px">
<el-upload class="avatar-uploader" <el-upload class="avatar-uploader"
:data="{customerId:customerId}" :data="{customerId:customerId}"
:action="uploadUlr" :action="uploadUlr"
@ -52,8 +52,8 @@
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</div> </div>
<div v-else> <div v-if="tagTab === 'choose'">
<el-form-item label="负责人" label-width="150px"> <el-form-item label="负责人" label-width="150px" prop="selectleaderId">
<el-select class="item_width_1" v-model="dataForm.selectleaderId" clearable placeholder="请选择负责人"> <el-select class="item_width_1" v-model="dataForm.selectleaderId" clearable placeholder="请选择负责人">
<el-option <el-option
v-for="item in listbriefArr" v-for="item in listbriefArr"
@ -124,13 +124,16 @@ export default {
gender: [ gender: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' }
], ],
mobile: [ // mobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } // { required: true, message: this.$t('validate.required'), trigger: 'blur' }
], // ],
interoduction: [ interoduction: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' }
], ],
avatar: [ // avatar: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
selectleaderId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' }
] ]
} }
@ -138,7 +141,18 @@ export default {
}, },
methods: { methods: {
initForm(agencyObj) { initForm(agencyObj) {
this.$refs.ref_leader.resetFields(); // this.$refs.ref_leader.resetFields();
this.dataForm = {
name: '',
gender: '',
mobile: '',
interoduction: '',
categoryCode: '',
avatar: '',
structReferenceId: '', // ID
leaderId: '',
selectleaderId: ''
},
this.dataForm.structReferenceId = agencyObj.axisStructId this.dataForm.structReferenceId = agencyObj.axisStructId
this.dataForm.leaderId = agencyObj.leaderId this.dataForm.leaderId = agencyObj.leaderId
this.structLevel = agencyObj.structLevel this.structLevel = agencyObj.structLevel
@ -204,8 +218,9 @@ export default {
app.util.validateRule(messageObj) app.util.validateRule(messageObj)
this.btnDisable = false this.btnDisable = false
} else { } else {
this.btnDisable = false
if (this.dataForm.leaderId) { if (this.dataForm.leaderId) {
if (this.dataForm.selectleaderId) { if (this.tagTab === 'choose') {
this.bindLeader() this.bindLeader()
} else { } else {
this.updateLeader() this.updateLeader()
@ -218,6 +233,7 @@ export default {
}, },
async addLeader() { async addLeader() {
this.dataForm.categoryCode = this.leaderCategoryCodeArr[this.structLevel].categoryCode this.dataForm.categoryCode = this.leaderCategoryCodeArr[this.structLevel].categoryCode
this.dataForm.id = ''
const url = '/pli/power/axisLeader/save/' const url = '/pli/power/axisLeader/save/'
const { data, code, msg } = await requestPost(url, this.dataForm) const { data, code, msg } = await requestPost(url, this.dataForm)
if (code === 0) { if (code === 0) {
@ -251,6 +267,9 @@ export default {
} }
}, },
async bindLeader() { async bindLeader() {
if (!this.dataForm.selectleaderId) {
return this.$message.error('请选择负责人')
}
let params = { let params = {
categoryCode: this.leaderCategoryCodeArr[this.structLevel].categoryCode, categoryCode: this.leaderCategoryCodeArr[this.structLevel].categoryCode,
axisStructId: this.dataForm.structReferenceId, axisStructId: this.dataForm.structReferenceId,

2
src/views/modules/visual/basicinfo/cpts/people-more.vue

@ -16,7 +16,7 @@
v-for="(fieldSubList, index) in fieldList"> v-for="(fieldSubList, index) in fieldList">
<div class="list"> <div class="list">
<div class="item" <div class="item"
v-if="index == 0"> v-if="index == 0 && gridName">
<span class="item-field">所属网格</span> <span class="item-field">所属网格</span>
<span>{{ gridName }}</span> <span>{{ gridName }}</span>
</div> </div>

19
src/views/modules/visual/plugin/power/components/house-dialog.vue

@ -12,16 +12,22 @@
:tableContentStyle="headerStyle" :tableContentStyle="headerStyle"
:tableData="tableData" :tableData="tableData"
:visibleLoading="visibleLoading" :visibleLoading="visibleLoading"
:operate="false" :operate="true"
@look="handleLook"></screen-table> @look="handleLook"></screen-table>
</div> </div>
</div> </div>
<people-more v-show="showedMoreInfo"
v-if="info.id"
:userId="info.id"
:gridName="''"
@close="showedMoreInfo = false" />
</div> </div>
</template> </template>
<script> <script>
import screenTable from "../../../components/screen-table/index" import screenTable from "../../../components/screen-table/index"
import { requestPost } from "@/js/dai/request" import { requestPost } from "@/js/dai/request"
import peopleMore from "@/views/modules/visual/basicinfo/cpts/people-more";
export default { export default {
name: 'info-dialog', name: 'info-dialog',
props: { props: {
@ -36,10 +42,12 @@ export default {
} }
}, },
components: { components: {
screenTable screenTable,
peopleMore
}, },
data () { data () {
return { return {
showedMoreInfo: false,
headerList: [ headerList: [
{ title: "序号", coulmn: 'index' }, { title: "序号", coulmn: 'index' },
{ title: "家庭成员", coulmn: 'name' }, { title: "家庭成员", coulmn: 'name' },
@ -59,7 +67,8 @@ export default {
{ width: '240px' } { width: '240px' }
], ],
tableData: [], tableData: [],
visibleLoading: true visibleLoading: true,
info: {}
} }
}, },
created () { created () {
@ -70,7 +79,9 @@ export default {
this.$emit('close') this.$emit('close')
}, },
async handleLook (val) { async handleLook (val) {
console.log(val) this.info = { ...val }
console.log(JSON.stringify(val))
this.showedMoreInfo = true
}, },
async getInfo () { async getInfo () {
this.visibleLoading = true this.visibleLoading = true

110
src/views/modules/visual/plugin/power/organization.vue

@ -1,11 +1,38 @@
<template> <template>
<div class="warning-box"> <div class="warning-box">
<cpt-card> <cpt-card>
<div class="card-title"> <!-- <div class="card-title">
<img class="title-icon" src="../../../../../assets/img/shuju/title-tip.png" /> <img class="title-icon" src="../../../../../assets/img/shuju/title-tip.png" />
<div class="title-label"> <div class="title-label">
组织架构 组织架构
</div> </div>
</div> -->
<div class="title">
<img src="../../../../../assets/img/shuju/title-tip.png" />
<span>组织架构</span>
<div class="second-select cascader">
<el-cascader class="customer_cascader"
ref="myCascader"
placeholder="请选择所属组织"
:options="agencytree"
v-model="agencyId"
:show-all-levels="false"
:props="{ expandTrigger: 'hover', emitPath: false, label: 'orgName', value: 'orgId', children: 'subOrgList' }"
clearable/>
</div>
<!-- <div class="second-select ">
<el-date-picker v-model="dateIdShow"
type="date"
:clearable="false"
@change="handleChangeDate"
:picker-options="pickerOptions"
prefix-icon="el-icon-caret-bottom"
placeholder="选择日期"
value-format="yyyy-MM-dd">
</el-date-picker>
</div> -->
</div> </div>
<div class="card-panel"> <div class="card-panel">
<div class="card-left"> <div class="card-left">
@ -113,6 +140,7 @@ export default {
tableData: [ tableData: [
// [1,'','','2',''], // [1,'','','2',''],
], ],
agencytree: [],
agencyId: '', agencyId: '',
noInit: false, noInit: false,
visibleLoading: false, visibleLoading: false,
@ -141,12 +169,13 @@ export default {
// const { user } = this.$store.state // const { user } = this.$store.state
// this.agencyId = user.agencyId // this.agencyId = user.agencyId
// console.log('agencyId-------', this.agencyId) // console.log('agencyId-------', this.agencyId)
this.agencyId = '50140d770c578100328792121aa7b3c5' // this.agencyId = '50140d770c578100328792121aa7b3c5'
this.axisStructId = '1518062548749725697' this.axisStructId = '1518062548749725697'
await nextTick(100) await nextTick(100)
this.getStructTree() await this.getAgencylist()//
this.getCount() await this.getStructTree()
this.getMapData() await this.getCount()
await this.getMapData()
}, },
methods: { methods: {
onClickNode (e) { onClickNode (e) {
@ -321,16 +350,85 @@ export default {
// path: `/main-shuju/visual-basicinfo-people/${val.userId}`, // path: `/main-shuju/visual-basicinfo-people/${val.userId}`,
// }) // })
// }, // },
//
async getAgencylist () {
const url = '/data/aggregator/org/agencytree'
let params = {
agencyId: this.agencyId,
client:'gov'
}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
let _data
if (data) {
_data = this.removeByOrgType(data, 'agency')
if (_data) {
this.agencytree = this.removeEmptySubOrgList(_data)
this.agencyId = this.agencytree ? this.agencytree[0].orgId : ''
}
}
} else {
this.$message.error(msg)
}
},
removeByOrgType (orgArray, orgType) {
if (orgArray && orgArray.length > 0) {
for (let p = orgArray.length - 1; p >= 0; p--) {
let orgInfo = orgArray[p]
if (orgInfo) {
if (orgInfo.orgType !== orgType) {
orgArray.splice(p, 1)
} else {
this.removeByOrgType(orgInfo.subOrgList, orgType)
}
}
}
}
return orgArray
},
removeEmptySubOrgList (orgArray) {
orgArray.forEach((orgInfo) => {
if (orgInfo && orgInfo.subOrgList) {
if (orgInfo.subOrgList.length === 0) {
orgInfo.subOrgList = undefined
} else {
this.removeEmptySubOrgList(orgInfo.subOrgList)
}
}
})
return orgArray;
},
async handleChangeAgency (value) {
let selAgency = this.$refs["myCascader"].getCheckedNodes()[0].data
// this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label
this.agencyName = selAgency.name
this.agencyId = selAgency.agencyId
this.level = selAgency.level === 'grid' ? 'grid' : 'agency'
},
}, },
} }
</script> </script>
<style
lang="scss"
src="@/assets/scss/modules/visual/typeAnalyze.scss"
scoped
></style>
<style
lang="scss"
src="@/assets/scss/modules/visual/personCategory.scss"
scoped
></style>
<style <style
lang="scss" lang="scss"
src="@/assets/scss/modules/visual/warning.scss" src="@/assets/scss/modules/visual/warning.scss"
scoped scoped
></style> ></style>
<style lang="scss" scoped> <style lang="scss" scoped>
.second-select {
margin: 0 10px 0 40px !important;
}
.card-title { .card-title {
display: flex; display: flex;
align-items: center; align-items: center;

Loading…
Cancel
Save