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. 112
      src/views/modules/visual/plugin/power/organization.vue

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

@ -7,7 +7,7 @@
placeholder="请选择所属组织"
:options="agencytree"
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/>
</el-form-item>
<el-form-item label="部门名称" prop="deptName">
@ -213,7 +213,7 @@ export default {
async getDataList () {
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) {
this.dataList = handleTree(data, 'id', 'pid');

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

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

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

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

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

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

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

@ -1,11 +1,38 @@
<template>
<div class="warning-box">
<cpt-card>
<div class="card-title">
<!-- <div class="card-title">
<img class="title-icon" src="../../../../../assets/img/shuju/title-tip.png" />
<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 class="card-panel">
<div class="card-left">
@ -113,6 +140,7 @@ export default {
tableData: [
// [1,'','','2',''],
],
agencytree: [],
agencyId: '',
noInit: false,
visibleLoading: false,
@ -141,12 +169,13 @@ export default {
// const { user } = this.$store.state
// this.agencyId = user.agencyId
// console.log('agencyId-------', this.agencyId)
this.agencyId = '50140d770c578100328792121aa7b3c5'
// this.agencyId = '50140d770c578100328792121aa7b3c5'
this.axisStructId = '1518062548749725697'
await nextTick(100)
this.getStructTree()
this.getCount()
this.getMapData()
await this.getAgencylist()//
await this.getStructTree()
await this.getCount()
await this.getMapData()
},
methods: {
onClickNode (e) {
@ -321,16 +350,85 @@ export default {
// 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>
<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
lang="scss"
src="@/assets/scss/modules/visual/warning.scss"
scoped
></style>
<style lang="scss" scoped>
.second-select {
margin: 0 10px 0 40px !important;
}
.card-title {
display: flex;
align-items: center;

Loading…
Cancel
Save