3 changed files with 1137 additions and 0 deletions
			
			
		@ -0,0 +1,472 @@ | 
				
			|||||
 | 
					<template> | 
				
			||||
 | 
					  <div class="div_main"> | 
				
			||||
 | 
					    <div ref="searchCard" | 
				
			||||
 | 
					         class="div_search"> | 
				
			||||
 | 
					      <el-form ref="searchForm" | 
				
			||||
 | 
					               :inline="true" | 
				
			||||
 | 
					               :model="formData" | 
				
			||||
 | 
					               size="small"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <el-form-item label="统计类型" | 
				
			||||
 | 
					                      prop="name" | 
				
			||||
 | 
					                      label-width="90px"> | 
				
			||||
 | 
					          <el-radio-group v-model="formData.type"> | 
				
			||||
 | 
					            <el-radio label="0">本级工作人员</el-radio> | 
				
			||||
 | 
					            <el-radio label="1">本级及下级工作人员</el-radio> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          </el-radio-group> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </el-form-item> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <el-form-item label="组织" | 
				
			||||
 | 
					                      prop="name" | 
				
			||||
 | 
					                      label-width="90px"> | 
				
			||||
 | 
					          <el-cascader ref="myCascader" | 
				
			||||
 | 
					                       v-model="agencyIdArray" | 
				
			||||
 | 
					                       style="width:540px" | 
				
			||||
 | 
					                       :key="iscascaderShow" | 
				
			||||
 | 
					                       :options="casOptions" | 
				
			||||
 | 
					                       :props="optionProps" | 
				
			||||
 | 
					                       @change="handleChange" | 
				
			||||
 | 
					                       clearable></el-cascader> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </el-form-item> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <el-form-item label="姓名" | 
				
			||||
 | 
					                      prop="name" | 
				
			||||
 | 
					                      label-width="90px"> | 
				
			||||
 | 
					          <el-input v-model="formData.name" | 
				
			||||
 | 
					                    style="width:290px" | 
				
			||||
 | 
					                    placeholder="请输入姓名" | 
				
			||||
 | 
					                    :clearable="true"></el-input> | 
				
			||||
 | 
					        </el-form-item> | 
				
			||||
 | 
					        <el-form-item label="手机号" | 
				
			||||
 | 
					                      prop="mobile" | 
				
			||||
 | 
					                      label-width="90px"> | 
				
			||||
 | 
					          <el-input v-model="formData.mobile" | 
				
			||||
 | 
					                    style="width:290px" | 
				
			||||
 | 
					                    placeholder="请输入手机号" | 
				
			||||
 | 
					                    :clearable="true"></el-input> | 
				
			||||
 | 
					        </el-form-item> | 
				
			||||
 | 
					        <el-form-item label="状态" | 
				
			||||
 | 
					                      prop="status" | 
				
			||||
 | 
					                      label-width="90px"> | 
				
			||||
 | 
					          <el-select v-model="formData.status" | 
				
			||||
 | 
					                     style="width:290px" | 
				
			||||
 | 
					                     placeholder="选择状态" | 
				
			||||
 | 
					                     clearable> | 
				
			||||
 | 
					            <el-option v-for="item in statusList" | 
				
			||||
 | 
					                       :key="item.value" | 
				
			||||
 | 
					                       :label="item.label" | 
				
			||||
 | 
					                       :value="item.value"> | 
				
			||||
 | 
					            </el-option> | 
				
			||||
 | 
					          </el-select> | 
				
			||||
 | 
					        </el-form-item> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <el-button type="primary" | 
				
			||||
 | 
					                   size="small" | 
				
			||||
 | 
					                   class="diy-button--search" | 
				
			||||
 | 
					                   @click="handleSearch">查询</el-button> | 
				
			||||
 | 
					        <el-button class="diy-button--reset" | 
				
			||||
 | 
					                   size="small" | 
				
			||||
 | 
					                   @click="handleReset">重置</el-button> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      </el-form> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="div_table"> | 
				
			||||
 | 
					      <el-table :data="tableData" | 
				
			||||
 | 
					                ref="ref_customertable" | 
				
			||||
 | 
					                border | 
				
			||||
 | 
					                :height="tableHeight" | 
				
			||||
 | 
					                :header-cell-style="{background:'#2195FE',color:'#FFFFFF'}" | 
				
			||||
 | 
					                style="width: 100%;"> | 
				
			||||
 | 
					        <el-table-column label="所属组织" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         prop="orgName"></el-table-column> | 
				
			||||
 | 
					        <el-table-column label="姓名" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         width="120" | 
				
			||||
 | 
					                         prop="userName"></el-table-column> | 
				
			||||
 | 
					        <el-table-column label="手机号" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         width="120" | 
				
			||||
 | 
					                         prop="telephoneNumber"></el-table-column> | 
				
			||||
 | 
					        <el-table-column label="性别" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         width="80" | 
				
			||||
 | 
					                         prop="gender"> | 
				
			||||
 | 
					          <template slot-scope="scope"> | 
				
			||||
 | 
					            <span v-if="scope.row.gender==='0'">{{'未知'}}</span> | 
				
			||||
 | 
					            <span v-if="scope.row.gender==='1'">{{'男'}}</span> | 
				
			||||
 | 
					            <span v-if="scope.row.gender==='2'">{{'女'}}</span> | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					        </el-table-column> | 
				
			||||
 | 
					        <el-table-column label="状态" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         width="80" | 
				
			||||
 | 
					                         prop="status"> | 
				
			||||
 | 
					          <template slot-scope="scope"> | 
				
			||||
 | 
					            <span v-if="scope.row.status==='0'">{{'未创建'}}</span> | 
				
			||||
 | 
					            <span v-if="scope.row.status==='1'">{{'已创建'}}</span> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					        </el-table-column> | 
				
			||||
 | 
					        <el-table-column label="备注" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         prop="remark"></el-table-column> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <el-table-column :label="$t('handle')" | 
				
			||||
 | 
					                         fixed="right" | 
				
			||||
 | 
					                         header-align="center" | 
				
			||||
 | 
					                         align="center" | 
				
			||||
 | 
					                         width="200"> | 
				
			||||
 | 
					          <template slot-scope="scope"> | 
				
			||||
 | 
					            <el-button v-if="scope.row.status === '0'" | 
				
			||||
 | 
					                       type="text" | 
				
			||||
 | 
					                       size="small" | 
				
			||||
 | 
					                       @click="handleEdit(scope.row,'add')">新增</el-button> | 
				
			||||
 | 
					            <el-button v-if="scope.row.status === '1'" | 
				
			||||
 | 
					                       type="text" | 
				
			||||
 | 
					                       size="small" | 
				
			||||
 | 
					                       @click="handleEdit(scope.row,'edit')">修改</el-button> | 
				
			||||
 | 
					            <el-button v-if="scope.row.status === '1'" | 
				
			||||
 | 
					                       type="text" | 
				
			||||
 | 
					                       size="small" | 
				
			||||
 | 
					                       @click="handleDetail(scope.row)">查看</el-button> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					        </el-table-column> | 
				
			||||
 | 
					      </el-table> | 
				
			||||
 | 
					      <el-pagination :current-page="pageNo" | 
				
			||||
 | 
					                     :page-sizes="[10, 20, 50, 100]" | 
				
			||||
 | 
					                     :page-size="pageSize" | 
				
			||||
 | 
					                     layout="total, sizes, prev, pager, next, jumper" | 
				
			||||
 | 
					                     :total="total" | 
				
			||||
 | 
					                     @size-change="pageSizeChangeHandle" | 
				
			||||
 | 
					                     @current-change="pageCurrentChangeHandle"></el-pagination> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <el-dialog v-if="showEdit" | 
				
			||||
 | 
					               :title="editTitle" | 
				
			||||
 | 
					               :visible.sync="showEdit" | 
				
			||||
 | 
					               width="850" | 
				
			||||
 | 
					               :before-close="dialogCancle"> | 
				
			||||
 | 
					      <edit-form ref="ref_edit" | 
				
			||||
 | 
					                 @dialogOk="dialogOk" | 
				
			||||
 | 
					                 @dialogCancle="dialogCancle"></edit-form> | 
				
			||||
 | 
					    </el-dialog> | 
				
			||||
 | 
					    <el-dialog v-if="showDetail" | 
				
			||||
 | 
					               title="详情" | 
				
			||||
 | 
					               :visible.sync="showDetail" | 
				
			||||
 | 
					               width="850" | 
				
			||||
 | 
					               :before-close="dialogCancle"> | 
				
			||||
 | 
					      <detail-form ref="ref_detail" | 
				
			||||
 | 
					                   @dialogCancle="dialogCancle"></detail-form> | 
				
			||||
 | 
					    </el-dialog> | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script> | 
				
			||||
 | 
					import { mapGetters } from "vuex"; | 
				
			||||
 | 
					import { requestPost } from "@/js/dai/request"; | 
				
			||||
 | 
					import editForm from './editForm' | 
				
			||||
 | 
					import detailForm from './detailForm' | 
				
			||||
 | 
					export default { | 
				
			||||
 | 
					  data () { | 
				
			||||
 | 
					    return { | 
				
			||||
 | 
					      tableData: [], | 
				
			||||
 | 
					      statusList: [ | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          value: '0', | 
				
			||||
 | 
					          label: '未创建' | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          value: '1', | 
				
			||||
 | 
					          label: '已创建' | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      ], | 
				
			||||
 | 
					      selOrgId: '', | 
				
			||||
 | 
					      casOptions: [], | 
				
			||||
 | 
					      agencyIdArray: [], | 
				
			||||
 | 
					      iscascaderShow: 0, | 
				
			||||
 | 
					      optionProps: { | 
				
			||||
 | 
					        multiple: false, | 
				
			||||
 | 
					        // value: 'orgId', | 
				
			||||
 | 
					        // label: 'orgName', | 
				
			||||
 | 
					        // children: 'subAgencyList', | 
				
			||||
 | 
					        checkStrictly: true, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        lazy: true, | 
				
			||||
 | 
					        lazyLoad: this.lzayLoadAgency | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      pageNo: 1, | 
				
			||||
 | 
					      pageSize: 20, | 
				
			||||
 | 
					      total: 0, | 
				
			||||
 | 
					      formData: { | 
				
			||||
 | 
					        name: '', | 
				
			||||
 | 
					        status: '', | 
				
			||||
 | 
					        mobile: '', | 
				
			||||
 | 
					        type: '0', | 
				
			||||
 | 
					        orgId: '' | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      showEdit: false, | 
				
			||||
 | 
					      showDetail: false, | 
				
			||||
 | 
					      editTitle: '新增' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  components: { | 
				
			||||
 | 
					    editForm, detailForm | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  async created () { | 
				
			||||
 | 
					    await this.loadTable() | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  watch: { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  computed: { | 
				
			||||
 | 
					    ...mapGetters(["clientHeight", "iframeHeight"]), | 
				
			||||
 | 
					    tableHeight () { | 
				
			||||
 | 
					      const h = this.clientHeight - 360 + this.iframeHeigh; | 
				
			||||
 | 
					      const _h = this.clientHeight - 360; | 
				
			||||
 | 
					      return this.$store.state.inIframe ? h : _h; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  methods: { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    lzayLoadAgency (node, resolve) { | 
				
			||||
 | 
					      this.getAgency(node, resolve) | 
				
			||||
 | 
					      // setTimeout(() => { | 
				
			||||
 | 
					      //   this.getAgency(node, resolve) | 
				
			||||
 | 
					      // }, 200) | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    async getAgency (node, resolve) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const url = '/third/dataSync/ytorglist' | 
				
			||||
 | 
					      // const url = 'http://yapi.elinkservice.cn/mock/102/third/dataSync/ytorglist' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        orgId: node.data ? node.data.value : '0', | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        const nodes = data.map(item => ({ | 
				
			||||
 | 
					          value: item.orgId, // | 
				
			||||
 | 
					          label: item.orgName, | 
				
			||||
 | 
					          // leaf: node.level >= 2 // 5层级 | 
				
			||||
 | 
					          leaf: !item.haveChild // 5层级 | 
				
			||||
 | 
					        })) | 
				
			||||
 | 
					        resolve(nodes) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg) | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleChange (value) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (value && value.length > 0) { | 
				
			||||
 | 
					        let selAgency = this.$refs["myCascader"].getCheckedNodes()[0].data | 
				
			||||
 | 
					        console.log(selAgency) | 
				
			||||
 | 
					        this.formData.orgId = selAgency.value | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.formData.orgId = '' | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async loadTable () { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const url = "/third/dataSync/page-user" | 
				
			||||
 | 
					      // const url = "http://yapi.elinkservice.cn/mock/102/third/dataSync/page-user" | 
				
			||||
 | 
					      const params = { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        pageNo: this.pageNo, | 
				
			||||
 | 
					        pageSize: this.pageSize, | 
				
			||||
 | 
					        ...this.formData | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params) | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.tableData = data.list | 
				
			||||
 | 
					        this.total = data.total | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg) | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    handleSearch () { | 
				
			||||
 | 
					      this.loadTable() | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    async handleEdit (row, editType) { | 
				
			||||
 | 
					      this.editTitle = editType === 'edit' ? '修改' : '新增' | 
				
			||||
 | 
					      this.showEdit = true | 
				
			||||
 | 
					      this.$nextTick(() => { | 
				
			||||
 | 
					        this.$refs.ref_edit.initForm(editType, row); | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    dialogCancle () { | 
				
			||||
 | 
					      this.showEdit = false | 
				
			||||
 | 
					      this.showDetail = false | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    dialogOk () { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.showEdit = false | 
				
			||||
 | 
					      this.loadTable() | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 功能配置 | 
				
			||||
 | 
					    handleDetail (row) { | 
				
			||||
 | 
					      this.showDetail = true | 
				
			||||
 | 
					      this.$nextTick(() => { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        this.$refs.ref_detail.initForm(row.staffId, row.customerId); | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleReset () { | 
				
			||||
 | 
					      this.agencyIdArray = [] | 
				
			||||
 | 
					      this.formData = { | 
				
			||||
 | 
					        name: '', | 
				
			||||
 | 
					        status: '', | 
				
			||||
 | 
					        mobile: '', | 
				
			||||
 | 
					        type: '0', | 
				
			||||
 | 
					        orgId: '' | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    pageCurrentChangeHandle (val) { | 
				
			||||
 | 
					      this.pageNo = val | 
				
			||||
 | 
					      this.loadTable() | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    pageSizeChangeHandle (val) { | 
				
			||||
 | 
					      this.pageSize = val | 
				
			||||
 | 
					      this.loadTable() | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style lang="scss" scoped > | 
				
			||||
 | 
					.div_main { | 
				
			||||
 | 
					  width: 100%; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.div_search { | 
				
			||||
 | 
					  background: #ffffff; | 
				
			||||
 | 
					  border-radius: 4px; | 
				
			||||
 | 
					  padding: 30px 20px 5px; | 
				
			||||
 | 
					  box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1); | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.div_table { | 
				
			||||
 | 
					  background: #ffffff; | 
				
			||||
 | 
					  box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1); | 
				
			||||
 | 
					  border-radius: 4px; | 
				
			||||
 | 
					  margin-top: 15px; | 
				
			||||
 | 
					  padding: 23px 30px 10px; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  .table { | 
				
			||||
 | 
					    margin-top: 20px; | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
 | 
					<style> | 
				
			||||
 | 
					.block { | 
				
			||||
 | 
					  position: absolute; | 
				
			||||
 | 
					  left: 0px; | 
				
			||||
 | 
					  display: inline-block; | 
				
			||||
 | 
					  width: 35px; | 
				
			||||
 | 
					  height: 50px; | 
				
			||||
 | 
					  background: #fff; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.cascader-block .el-cascader-node > .el-radio { | 
				
			||||
 | 
					  display: none; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
 | 
					<style lang="scss" scoped> | 
				
			||||
 | 
					.blacklist-reason { | 
				
			||||
 | 
					  width: 100%; | 
				
			||||
 | 
					  height: 80px; | 
				
			||||
 | 
					  border: 1px solid #e4e4e4; | 
				
			||||
 | 
					  border-radius: 4px; | 
				
			||||
 | 
					  resize: none; | 
				
			||||
 | 
					  padding: 8px; | 
				
			||||
 | 
					  box-sizing: border-box; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
 | 
					<style lang="scss" scoped> | 
				
			||||
 | 
					@import "@/assets/scss/buttonstyle.scss"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.resi-container .resi-card-table { | 
				
			||||
 | 
					  ::v-deep .el-table th { | 
				
			||||
 | 
					    color: #fff; | 
				
			||||
 | 
					    background-color: rgba(33, 149, 254, 1); | 
				
			||||
 | 
					    // border-right: 1px solid rgba(33, 149, 254, 1); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.resi-table { | 
				
			||||
 | 
					  ::v-deep .el-button--text { | 
				
			||||
 | 
					    text-decoration: underline; | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					  ::v-deep .btn-color-del { | 
				
			||||
 | 
					    margin-left: 10px; | 
				
			||||
 | 
					    color: rgba(213, 16, 16, 1); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					  ::v-deep .btn-color-edit { | 
				
			||||
 | 
					    color: rgba(0, 167, 169, 1); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.form-wr { | 
				
			||||
 | 
					  .input-width { | 
				
			||||
 | 
					    width: 260px; | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					  .input-width-textarea { | 
				
			||||
 | 
					    width: 500px; | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					  .imsg-list { | 
				
			||||
 | 
					    display: flex; | 
				
			||||
 | 
					    align-items: center; | 
				
			||||
 | 
					    .imgs-item { | 
				
			||||
 | 
					      position: relative; | 
				
			||||
 | 
					      margin-right: 10px; | 
				
			||||
 | 
					      .el-icon-delete { | 
				
			||||
 | 
					        position: absolute; | 
				
			||||
 | 
					        top: 0; | 
				
			||||
 | 
					        right: 0; | 
				
			||||
 | 
					        font-size: 18px; | 
				
			||||
 | 
					        color: red; | 
				
			||||
 | 
					        z-index: 3; | 
				
			||||
 | 
					        cursor: pointer; | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.div-content { | 
				
			||||
 | 
					  width: 100%; | 
				
			||||
 | 
					  overflow: hidden; | 
				
			||||
 | 
					  text-overflow: ellipsis; | 
				
			||||
 | 
					  white-space: nowrap; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.resi-row-btn { | 
				
			||||
 | 
					  margin-bottom: 13px; | 
				
			||||
 | 
					  .upload-btn { | 
				
			||||
 | 
					    display: inline-block; | 
				
			||||
 | 
					    margin: 0 10px; | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
@ -0,0 +1,205 @@ | 
				
			|||||
 | 
					<template> | 
				
			||||
 | 
					  <div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="dialog-h-content scroll-h"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      <div class="m-row"> | 
				
			||||
 | 
					        <div class="m-info"> | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">姓名:</span> | 
				
			||||
 | 
					            <span>{{ peoForm.name||'--'  }}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">手机号:</span> | 
				
			||||
 | 
					            <span>{{ peoForm.mobile||'--' }}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">性别:</span> | 
				
			||||
 | 
					            <span v-if="peoForm.gender==='0'">{{'未知'}}</span> | 
				
			||||
 | 
					            <span v-if="peoForm.gender==='1'">{{'男'}}</span> | 
				
			||||
 | 
					            <span v-if="peoForm.gender==='2'">{{'女'}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">专兼职:</span> | 
				
			||||
 | 
					            <span v-if="peoForm.workType==='fulltime'">{{'专职'}}</span> | 
				
			||||
 | 
					            <span v-if="peoForm.workType==='parttime'">{{'兼职'}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">组织/部门:</span> | 
				
			||||
 | 
					            <span>{{peoForm.orgName||'--'}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">激活时间:</span> | 
				
			||||
 | 
					            <span>{{peoForm.activeTime||'未激活'}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">是否禁用:</span> | 
				
			||||
 | 
					            <span>{{peoForm.disableFlag||'--'}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">职责:</span> | 
				
			||||
 | 
					            <span>{{peoForm.rolesShow||''}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="info-prop"> | 
				
			||||
 | 
					            <span class="info-title-2">角色:</span> | 
				
			||||
 | 
					            <span>{{peoForm.szsqRolesShow||''}}</span> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					      </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="div-btn"> | 
				
			||||
 | 
					      <el-button size="small" | 
				
			||||
 | 
					                 @click="handleClose">关 闭</el-button> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script> | 
				
			||||
 | 
					// import ConfigItem from './ConfigItem' | 
				
			||||
 | 
					// import FootbarList from '../../productConfig/footbar/FootbarList' | 
				
			||||
 | 
					import { requestPost, requestGet } from "@/js/dai/request"; | 
				
			||||
 | 
					import { Loading } from 'element-ui' // 引入Loading服务 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					let loading // 加载动画 | 
				
			||||
 | 
					export default { | 
				
			||||
 | 
					  data () { | 
				
			||||
 | 
					    return { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      staffId: '', | 
				
			||||
 | 
					      customerId: '', | 
				
			||||
 | 
					      agencyId: '', | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      peoForm: { | 
				
			||||
 | 
					        name: "", | 
				
			||||
 | 
					        mobile: "", | 
				
			||||
 | 
					        gender: "", | 
				
			||||
 | 
					        orgId: '', | 
				
			||||
 | 
					        orgType: "", | 
				
			||||
 | 
					        orgName: "", | 
				
			||||
 | 
					        activeTime: "", | 
				
			||||
 | 
					        workType: "", | 
				
			||||
 | 
					        roles: [], | 
				
			||||
 | 
					        newRoles: [], | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  components: { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  async mounted () { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  methods: { | 
				
			||||
 | 
					    async initForm (staffId, customerId) { | 
				
			||||
 | 
					      this.startLoading() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.staffId = staffId | 
				
			||||
 | 
					      this.customerId = customerId | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      await this.lookAngency() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.endLoading() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 查看按钮 | 
				
			||||
 | 
					    async lookAngency () { | 
				
			||||
 | 
					      const url = "/data/aggregator/org/staffdetailv2"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        staffId: this.staffId, | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.peoForm = data; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        if (data.enableFlag === "enable") { | 
				
			||||
 | 
					          this.peoForm.disableFlag = "已启用"; | 
				
			||||
 | 
					        } else { | 
				
			||||
 | 
					          this.peoForm.disableFlag = "已禁用"; | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        if (this.peoForm.roles && this.peoForm.roles.length > 0) { | 
				
			||||
 | 
					          this.peoForm.rolesShow = this.peoForm.roles.join(',') | 
				
			||||
 | 
					        } else { | 
				
			||||
 | 
					          this.peoForm.rolesShow = '--' | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        if (this.peoForm.szsqRoles && this.peoForm.szsqRoles.length > 0) { | 
				
			||||
 | 
					          this.peoForm.szsqRolesShow = this.peoForm.szsqRoles.join(',') | 
				
			||||
 | 
					        } else { | 
				
			||||
 | 
					          this.peoForm.szsqRolesShow = '--' | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    resetForm () { | 
				
			||||
 | 
					      this.peoForm = { | 
				
			||||
 | 
					        name: "", | 
				
			||||
 | 
					        mobile: "", | 
				
			||||
 | 
					        gender: "", | 
				
			||||
 | 
					        orgId: '', | 
				
			||||
 | 
					        orgType: "", | 
				
			||||
 | 
					        orgName: "", | 
				
			||||
 | 
					        workType: "", | 
				
			||||
 | 
					        roles: [], | 
				
			||||
 | 
					        newRoles: [], | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    handleClose () { | 
				
			||||
 | 
					      this.resetForm() | 
				
			||||
 | 
					      this.$emit("dialogCancle") | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 开启加载动画 | 
				
			||||
 | 
					    startLoading () { | 
				
			||||
 | 
					      loading = Loading.service({ | 
				
			||||
 | 
					        lock: true, // 是否锁定 | 
				
			||||
 | 
					        text: '正在加载……', // 加载中需要显示的文字 | 
				
			||||
 | 
					        background: 'rgba(0,0,0,.7)' // 背景颜色 | 
				
			||||
 | 
					      }) | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    // 结束加载动画 | 
				
			||||
 | 
					    endLoading () { | 
				
			||||
 | 
					      // clearTimeout(timer); | 
				
			||||
 | 
					      if (loading) { | 
				
			||||
 | 
					        loading.close() | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  computed: { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style lang="scss"  scoped> | 
				
			||||
 | 
					@import "@/assets/scss/modules/management/detail-main.scss"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.div-btn { | 
				
			||||
 | 
					  margin-top: 20px; | 
				
			||||
 | 
					  display: flex; | 
				
			||||
 | 
					  justify-content: center; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
@ -0,0 +1,460 @@ | 
				
			|||||
 | 
					<template> | 
				
			||||
 | 
					  <div> | 
				
			||||
 | 
					    <el-form :model="peoForm" | 
				
			||||
 | 
					             label-width="120px" | 
				
			||||
 | 
					             ref="editPeoForm" | 
				
			||||
 | 
					             :rules="rulesPeo"> | 
				
			||||
 | 
					      <el-form-item label="姓名" | 
				
			||||
 | 
					                    prop="name"> | 
				
			||||
 | 
					        <span>{{peoForm.name}}</span> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					      <el-form-item label="手机号" | 
				
			||||
 | 
					                    prop="mobile"> | 
				
			||||
 | 
					        <span>{{peoForm.mobile}}</span> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					      <el-form-item label="性别" | 
				
			||||
 | 
					                    prop="gender"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <span v-if="peoForm.gender===0||peoForm.gender==='0'">{{'未知'}}</span> | 
				
			||||
 | 
					        <span v-if="peoForm.gender===1||peoForm.gender==='1'">{{'男'}}</span> | 
				
			||||
 | 
					        <span v-if="peoForm.gender===2||peoForm.gender==='2'">{{'女'}}</span> | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					      <el-form-item v-if="formType==='add'" | 
				
			||||
 | 
					                    label="组织/部门" | 
				
			||||
 | 
					                    prop="orgId"> | 
				
			||||
 | 
					        <el-cascader ref="myCascader" | 
				
			||||
 | 
					                     v-model="agencyIdArray" | 
				
			||||
 | 
					                     class="item-width-2" | 
				
			||||
 | 
					                     :key="iscascaderShow" | 
				
			||||
 | 
					                     :options="casOptions" | 
				
			||||
 | 
					                     :props="optionProps" | 
				
			||||
 | 
					                     @change="handleChangeAgency" | 
				
			||||
 | 
					                     clearable></el-cascader> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					      <el-form-item v-if="formType==='edit'" | 
				
			||||
 | 
					                    label="组织/部门" | 
				
			||||
 | 
					                    prop="agencyName"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <span>{{peoForm.agencyName||'--'}}</span> | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					      <el-form-item label="专兼职" | 
				
			||||
 | 
					                    prop="workType"> | 
				
			||||
 | 
					        <el-select v-model="peoForm.workType" | 
				
			||||
 | 
					                   clearable | 
				
			||||
 | 
					                   placeholder="专兼职"> | 
				
			||||
 | 
					          <el-option v-for="item in postList" | 
				
			||||
 | 
					                     :key="item.value" | 
				
			||||
 | 
					                     :label="item.label" | 
				
			||||
 | 
					                     :value="item.value"> | 
				
			||||
 | 
					          </el-option> | 
				
			||||
 | 
					        </el-select> | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      <el-form-item label="职责" | 
				
			||||
 | 
					                    prop="roles"> | 
				
			||||
 | 
					        <el-select v-model="peoForm.roles" | 
				
			||||
 | 
					                   class="item-width-2" | 
				
			||||
 | 
					                   multiple | 
				
			||||
 | 
					                   @change="$forceUpdate()" | 
				
			||||
 | 
					                   placeholder="请选择"> | 
				
			||||
 | 
					          <el-option v-for="item in dutyList" | 
				
			||||
 | 
					                     :key="item.roleId" | 
				
			||||
 | 
					                     :label="item.roleName" | 
				
			||||
 | 
					                     :value="item.roleId" | 
				
			||||
 | 
					                     :disabled="item.disabled"> | 
				
			||||
 | 
					          </el-option> | 
				
			||||
 | 
					        </el-select> | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					      <el-form-item label="角色" | 
				
			||||
 | 
					                    prop="newRoles"> | 
				
			||||
 | 
					        <el-select v-model="peoForm.newRoles" | 
				
			||||
 | 
					                   class="item-width-2" | 
				
			||||
 | 
					                   multiple | 
				
			||||
 | 
					                   @change="$forceUpdate()" | 
				
			||||
 | 
					                   placeholder="请选择"> | 
				
			||||
 | 
					          <el-option v-for="item in roleList" | 
				
			||||
 | 
					                     :key="item.id" | 
				
			||||
 | 
					                     :label="item.name" | 
				
			||||
 | 
					                     :value="item.id"> | 
				
			||||
 | 
					          </el-option> | 
				
			||||
 | 
					        </el-select> | 
				
			||||
 | 
					      </el-form-item> | 
				
			||||
 | 
					    </el-form> | 
				
			||||
 | 
					    <div class="div-btn"> | 
				
			||||
 | 
					      <el-button size="small" | 
				
			||||
 | 
					                 @click="handleClose">取 消</el-button> | 
				
			||||
 | 
					      <el-button size="small" | 
				
			||||
 | 
					                 type="primary" | 
				
			||||
 | 
					                 @click="handleConfirm">确 定</el-button> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script> | 
				
			||||
 | 
					// import ConfigItem from './ConfigItem' | 
				
			||||
 | 
					// import FootbarList from '../../productConfig/footbar/FootbarList' | 
				
			||||
 | 
					import { requestPost, requestGet } from "@/js/dai/request"; | 
				
			||||
 | 
					import { Loading } from 'element-ui' // 引入Loading服务 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					let loading // 加载动画 | 
				
			||||
 | 
					export default { | 
				
			||||
 | 
					  data () { | 
				
			||||
 | 
					    return { | 
				
			||||
 | 
					      formType: 'add', | 
				
			||||
 | 
					      staffId: '', | 
				
			||||
 | 
					      customerId: '', | 
				
			||||
 | 
					      agencyId: '', | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      agencyIdArray: [], | 
				
			||||
 | 
					      casOptions: [], | 
				
			||||
 | 
					      iscascaderShow: 0, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      optionProps: { | 
				
			||||
 | 
					        multiple: false, | 
				
			||||
 | 
					        value: 'agencyId', | 
				
			||||
 | 
					        label: 'agencyName', | 
				
			||||
 | 
					        children: 'subAgencyList', | 
				
			||||
 | 
					        checkStrictly: true | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      peoForm: { | 
				
			||||
 | 
					        name: "", | 
				
			||||
 | 
					        mobile: "", | 
				
			||||
 | 
					        gender: "", | 
				
			||||
 | 
					        orgId: '', | 
				
			||||
 | 
					        orgType: "", | 
				
			||||
 | 
					        orgName: "", | 
				
			||||
 | 
					        workType: "", | 
				
			||||
 | 
					        roles: [], | 
				
			||||
 | 
					        newRoles: [], | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					      // 职责字典 | 
				
			||||
 | 
					      dutyList: [], | 
				
			||||
 | 
					      // 专兼职字典 | 
				
			||||
 | 
					      postList: [ | 
				
			||||
 | 
					        { value: "fulltime", label: "专职" }, | 
				
			||||
 | 
					        { value: "parttime", label: "兼职" }, | 
				
			||||
 | 
					      ], | 
				
			||||
 | 
					      genderList: [ | 
				
			||||
 | 
					        { value: 1, label: "男" }, | 
				
			||||
 | 
					        { value: 2, label: "女" }, | 
				
			||||
 | 
					        { value: 0, label: "未知" }, | 
				
			||||
 | 
					      ], | 
				
			||||
 | 
					      editAgencyIdArray: [], | 
				
			||||
 | 
					      roleList: [], | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  components: { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  async mounted () { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  methods: { | 
				
			||||
 | 
					    async initForm (formType, row) { | 
				
			||||
 | 
					      this.startLoading() | 
				
			||||
 | 
					      this.formType = formType | 
				
			||||
 | 
					      this.customerId = row.customerId | 
				
			||||
 | 
					      this.getDutyList() | 
				
			||||
 | 
					      this.getRoleList() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (formType === 'edit') { | 
				
			||||
 | 
					        this.staffId = row.staffId | 
				
			||||
 | 
					        await this.xiuGridPeo() | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      if (formType === 'add') { | 
				
			||||
 | 
					        this.peoForm.name = row.userName | 
				
			||||
 | 
					        this.peoForm.mobile = row.telephoneNumber | 
				
			||||
 | 
					        this.peoForm.gender = row.gender | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (formType === 'add') { | 
				
			||||
 | 
					        await this.getAgencyList() | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.endLoading() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleChangeAgency (value) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (value && value.length > 0) { | 
				
			||||
 | 
					        let selAgency = this.$refs["myCascader"].getCheckedNodes()[0].data | 
				
			||||
 | 
					        this.peoForm.orgName = selAgency.agencyName | 
				
			||||
 | 
					        this.peoForm.orgType = selAgency.level === 'grid' || selAgency.level === 'dept' ? selAgency.level : 'agency' | 
				
			||||
 | 
					        this.peoForm.orgId = selAgency.agencyId | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.peoForm.orgName = '' | 
				
			||||
 | 
					        this.peoForm.orgType = '' | 
				
			||||
 | 
					        this.peoForm.orgId = '' | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleConfirm () { | 
				
			||||
 | 
					      if (this.formType === 'add') { | 
				
			||||
 | 
					        this.submitPeoDo() | 
				
			||||
 | 
					      } else if (this.formType === 'edit') { | 
				
			||||
 | 
					        this.updatePeoDo() | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 添加人员 | 
				
			||||
 | 
					    async submitPeoDo () { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.$refs['editPeoForm'].validate((valid, messageObj) => { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        if (!valid) { | 
				
			||||
 | 
					          app.util.validateRule(messageObj) | 
				
			||||
 | 
					        } else { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          this.addPeo() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      }) | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async addPeo () { | 
				
			||||
 | 
					      if (this.peoForm.roles.length === 0) { | 
				
			||||
 | 
					        this.$message.error("请选择职责"); | 
				
			||||
 | 
					        return false | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      if (this.peoForm.newRoles.length === 0) { | 
				
			||||
 | 
					        this.$message.error("请选择角色"); | 
				
			||||
 | 
					        return false | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      const url = "/gov/org/staff/addstaffv2"; | 
				
			||||
 | 
					      // console.log('this.peoForm', this.peoForm) | 
				
			||||
 | 
					      // return false | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        customerId: this.customerId, | 
				
			||||
 | 
					        ...this.peoForm | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.$message.success("操作成功"); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        this.peoForm = []; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        this.dialogOk() | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 人员修改 | 
				
			||||
 | 
					    async updatePeoDo () { | 
				
			||||
 | 
					      this.$refs['editPeoForm'].validate((valid, messageObj) => { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        if (!valid) { | 
				
			||||
 | 
					          app.util.validateRule(messageObj) | 
				
			||||
 | 
					        } else { | 
				
			||||
 | 
					          this.editPeo() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      }) | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async editPeo () { | 
				
			||||
 | 
					      if (this.peoForm.roles.length === 0) { | 
				
			||||
 | 
					        this.$message.error("请选择职责"); | 
				
			||||
 | 
					        return false | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      if (this.peoForm.newRoles.length === 0) { | 
				
			||||
 | 
					        this.$message.error("请选择角色"); | 
				
			||||
 | 
					        return false | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      const url = "/gov/org/staff/editstaff"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        staffId: this.staffId, | 
				
			||||
 | 
					        agencyId: this.agencyId, | 
				
			||||
 | 
					        customerId: this.customerId, | 
				
			||||
 | 
					        ...this.peoForm | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      // console.log('params', params) | 
				
			||||
 | 
					      // return false | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.$message.success("操作成功"); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        this.dialogOk() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 修改网格人员初始化 | 
				
			||||
 | 
					    async xiuGridPeo () { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.peoForm.orgType = "grid"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const url = "/gov/org/staff/editstaffinit"; | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        staffId: this.staffId, | 
				
			||||
 | 
					        customerId: this.customerId, | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.agencyId = data.agencyId | 
				
			||||
 | 
					        this.peoForm = { ...data }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        // 已有的权限(职责) | 
				
			||||
 | 
					        let existedDutyArr = []; | 
				
			||||
 | 
					        data.roleList.forEach(function (sysDuty) { | 
				
			||||
 | 
					          if (sysDuty.selected === true) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            existedDutyArr.push(sysDuty.roleId); | 
				
			||||
 | 
					          } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        this.peoForm.roles = existedDutyArr; | 
				
			||||
 | 
					        // 已有的权限(角色) | 
				
			||||
 | 
					        let existedRoleArr = []; | 
				
			||||
 | 
					        data.newRoleList.forEach(function (sysRole) { | 
				
			||||
 | 
					          if (sysRole.selected === true) { | 
				
			||||
 | 
					            existedRoleArr.push(sysRole.roleId); | 
				
			||||
 | 
					          } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        this.peoForm.newRoles = existedRoleArr; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async getAgencyList () { | 
				
			||||
 | 
					      const url = '/gov/org/customeragency/agencylist' | 
				
			||||
 | 
					      // const url = 'http://yapi.elinkservice.cn/mock/102/gov/org/agency/agencylist' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const params = { | 
				
			||||
 | 
					        customerId: this.customerId | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params) | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        ++this.iscascaderShow | 
				
			||||
 | 
					        this.casOptions = [] | 
				
			||||
 | 
					        this.agencyIdArray.length = [] | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        if (data) { | 
				
			||||
 | 
					          this.casOptions.push(data) | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg) | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    /** 查询系统工作人员角色(职责) */ | 
				
			||||
 | 
					    async getDutyList () { | 
				
			||||
 | 
					      const url = "/gov/org/staff/rolelist"; | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        customerId: this.customerId, | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.dutyList = data; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    /** 查询系统工作人员角色(职责) */ | 
				
			||||
 | 
					    async getRoleList () { | 
				
			||||
 | 
					      this.tableLoading = true; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const url = "/gov/access/govrole/list"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      let params = {}; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestGet(url, params); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.roleList = data; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      this.tableLoading = false; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    resetForm () { | 
				
			||||
 | 
					      this.peoForm = { | 
				
			||||
 | 
					        name: "", | 
				
			||||
 | 
					        mobile: "", | 
				
			||||
 | 
					        gender: "", | 
				
			||||
 | 
					        orgId: '', | 
				
			||||
 | 
					        orgType: "", | 
				
			||||
 | 
					        orgName: "", | 
				
			||||
 | 
					        workType: "", | 
				
			||||
 | 
					        roles: [], | 
				
			||||
 | 
					        newRoles: [], | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    handleClose () { | 
				
			||||
 | 
					      this.resetForm() | 
				
			||||
 | 
					      this.$emit("dialogCancle") | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    dialogOk () { | 
				
			||||
 | 
					      this.resetForm() | 
				
			||||
 | 
					      this.$emit("dialogOk") | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 开启加载动画 | 
				
			||||
 | 
					    startLoading () { | 
				
			||||
 | 
					      loading = Loading.service({ | 
				
			||||
 | 
					        lock: true, // 是否锁定 | 
				
			||||
 | 
					        text: '正在加载……', // 加载中需要显示的文字 | 
				
			||||
 | 
					        background: 'rgba(0,0,0,.7)' // 背景颜色 | 
				
			||||
 | 
					      }) | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    // 结束加载动画 | 
				
			||||
 | 
					    endLoading () { | 
				
			||||
 | 
					      // clearTimeout(timer); | 
				
			||||
 | 
					      if (loading) { | 
				
			||||
 | 
					        loading.close() | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  computed: { | 
				
			||||
 | 
					    rulesPeo () { | 
				
			||||
 | 
					      return { | 
				
			||||
 | 
					        // name: [{ required: true, message: "姓名必填", trigger: "change" }], | 
				
			||||
 | 
					        // mobile: [{ required: true, message: "手机号必填", trigger: "change" }], | 
				
			||||
 | 
					        // gender: [{ required: true, message: "性别必填", trigger: "change" }], | 
				
			||||
 | 
					        // gender: [{ required: true, message: "性别必填", trigger: "change" }], | 
				
			||||
 | 
					        orgId: [{ required: true, message: "组织/部门必填", trigger: "change" }], | 
				
			||||
 | 
					        workType: [{ required: true, message: "专兼职必填", trigger: "change" }], | 
				
			||||
 | 
					        roles: [{ required: true, message: "职责必填", trigger: "change" }], | 
				
			||||
 | 
					        newRoles: [{ required: true, message: "角色必填", trigger: "change" }], | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style scoped> | 
				
			||||
 | 
					.item-width-1 { | 
				
			||||
 | 
					  width: 200px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.item-width-2 { | 
				
			||||
 | 
					  width: 400px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.div-btn { | 
				
			||||
 | 
					  margin-top: 20px; | 
				
			||||
 | 
					  display: flex; | 
				
			||||
 | 
					  justify-content: center; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
					Loading…
					
					
				
		Reference in new issue