linwe
2024-12-24 c5c6d3881230d2402cad56ee0be67d463f70f050
企业详情接口及员工列表
3 files modified
351 ■■■■ changed files
src/api/company/company.js 14 ●●●●● patch | view | raw | blame | history
src/views/comprehensiveSearch/components/companyDetail.vue 297 ●●●● patch | view | raw | blame | history
src/views/comprehensiveSearch/components/companyList.vue 40 ●●●●● patch | view | raw | blame | history
src/api/company/company.js
@@ -23,4 +23,18 @@
            id
        }
    })
}
// &current=1&size=12
export const getPlacePractitioner = (placeId,searchKey,current,size) => {
    return request({
        url: '/api/blade-placePractitioner/placePractitioner/page',
        method: 'get',
        params: {
            placeId,
            searchKey,
            current,
            size
        }
    })
}
src/views/comprehensiveSearch/components/companyDetail.vue
@@ -8,32 +8,95 @@
    <div class="enterpriseList">
      <div class="title">企业详情</div>
      <div>
        <div class="content">
          <div class="title">企业详情</div>
          <div class="content-title">
            <div class="item-title">续存</div>
            <!-- <div class="item-title">续存</div> -->
            <div class="item-title">{{ rowData.placeName }}</div>
          </div>
          <div>
            <el-row :gutter="20" v-if="rowData.placeExtEntity">
              <el-col :span="10" style="display: flex;">
                <div class=" ">法人:</div>
                <div class=" ">{{ rowData.placeExtEntity.legalPerson }}</div>
              </el-col>
              <el-col :span="14" style="display: flex;">
                <div class=" ">法人电话:</div>
                <div class=" ">{{ rowData.placeExtEntity.legalTel }}</div>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="12" style="display: flex;">
                <div class=" ">法人代表:</div>
              <el-col :span="10" style="display: flex;">
                <div class=" ">负责人:</div>
                <div class=" ">{{ rowData.principal }}</div>
              </el-col>
              <el-col :span="12" style="display: flex;">
                <div class=" ">法人电话:</div>
              <el-col :span="14" style="display: flex;">
                <div class=" ">负责人电话:</div>
                <div class=" ">{{ rowData.principalPhone }}</div>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <!-- <el-col :span="12" style="display: flex;">
                                <div class=" ">注册时间:</div>
                                <div class=" ">2016-10-10</div>
                            </el-col> -->
              <el-col :span="24" style="display: flex;">
                <div class=" ">地址:</div>
                <div class=" ">{{ rowData.location }}</div>
              <el-col :span="10" style="display: flex;">
                <div class=" ">负责人身份证:</div>
                <div class=" ">{{ rowData.principalIdCard }}</div>
              </el-col>
              <el-col :span="14" style="display: flex;">
                <div class=" ">场所标签:</div>
                <div class=" ">{{ rowData.labelName }}</div>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="10" style="display: flex;">
                <div class=" ">九小场所:</div>
                <div class=" ">{{ rowData.isNine == 1 ? '是' : '否' }}</div>
              </el-col>
              <el-col :span="14" style="display: flex;">
                <div class=" ">九小分类:</div>
                <div class=" ">{{ getNineTypeType(rowData.nineType) }}</div>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="10" style="display: flex;">
                <div class=" ">阵地:</div>
                <div class=" ">{{ rowData.isFront == 2 ? '是' : '否' }}</div>
              </el-col>
              <el-col :span="14" style="display: flex;">
                <div class=" ">在建工地:</div>
                <div class=" ">{{ getFrontTypeType(rowData.frontType) }}</div>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="10" style="display: flex;">
                <div class=" ">无诈类型:</div>
                <div class=" ">{{ getNoFraudType(rowData.noExplosionCategory) }}</div>
              </el-col>
              <el-col :span="14" style="display: flex;">
                <div class=" ">三级消防单位:</div>
                <div class=" ">{{ rowData.threeFireProtection == 1 ? '是' : '否' }}</div>
              </el-col>
            </el-row>
            <el-row :gutter="20" v-if="rowData.imageUrls">
              <el-col :span="18">
                <div class="mini-code">
                  <el-image fit="contain" style="height: 100px;width: 100px;" :src="rowData.imageUrls"
                    :preview-src-list="[rowData.imageUrls]">
                    <div slot="error" class="image-slot"></div>
                  </el-image>
                </div>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="24">
                <div class=" ">地址:{{ rowData.location }}</div>
              </el-col>
            </el-row>
          </div>
@@ -41,19 +104,10 @@
        </div>
        <div class="item-box">
          <div class="item-title">企业人数:100 人</div>
          <div class="item-title">企业人员</div>
          <div @click="openList" class="detail">员工详情 >></div>
        </div>
        <div class="item-detail">
          <div class="item-title">企业信用代码:91440300MA5DAX598F</div>
          <div class="item-title">企业注册地址:深圳市福田区沙头街道天安社区泰然六路泰然..</div>
          <div class="item-title">企业经营地址:广东省深圳市宝安区新安街道海天路15号前海..</div>
          <div class="item-title">企业经营范围:一般经营项目是:钟表、手表、配件的研发与..</div>
          <div class="item-title">企业类型:有限责任公司</div>
          <div class="item-title">行业:批发和零售业科技型企业标签名称:</div>
          <div class="item-title">-上市板块:-</div>
        </div>
      </div>
    </div>
@@ -63,22 +117,28 @@
    <el-dialog title="提示" :modal-append-to-body="false" :visible.sync="dialogVisible" width="30%"
      :before-close="handleClose">
      <span>员工信息</span>
      <el-table :data="dataList"
      <!-- 展示员工的姓名、身份证、电话、职位信息,可以支持按这些条件搜索 -->
      <el-table :data="dataList.records"
        :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
        :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" v-loading="residentLoading"
        element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
        element-loading-background="rgba(17, 38, 163, 1)" :empty-text="residentNoDataText" style="width: 100%"
        @cell-click="cellClick" v-if="current == 1">
        <el-table-column align="center" prop="tenantName" label="租户名称"> </el-table-column>
        <el-table-column align="center" prop="phone" label="租户电话"> </el-table-column>
        <el-table-column align="center" prop="rentalTime" label="租房时间"> </el-table-column>
        <el-table-column align="center" prop="dueTime" label="到期时间"> </el-table-column>
        @cell-click="cellClick">
        <el-table-column align="center" prop="name" label="姓名"> </el-table-column>
        <el-table-column align="center" prop="telephone" label="电话"> </el-table-column>
        <el-table-column align="center" prop="gender" label="性别">
          <template slot-scope="scope">
            {{ scope.row.gender == 1 ? '男' : '女' }}
          </template>
        </el-table-column>
        <el-table-column align="center" prop="idCard" label="身份证"> </el-table-column>
        <el-table-column align="center" prop="jobNature" label="职位信息"> </el-table-column>
      </el-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
      <div class="pages">
        <el-pagination background layout="prev, pager, next" :page-size="100" :total="dataList.total"
          :current-page="currentPage4" @current-change="handleCurrentChange"></el-pagination>
      </div>
    </el-dialog>
@@ -89,9 +149,11 @@
import {
  getDetail
  getDetail,
  getPlacePractitioner
} from '@/api/company/company'
let loading = null
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -100,14 +162,59 @@
  props: {
  },
  data () {
  data() {
    //这里存放数据
    return {
      dialogVisible: false,
      dataList: [],
      dataList: {
        total: 0,
        records: []
      },
      residentLoading: false,
      residentNoDataText: '暂无数据',
      rowData: {},
      placeId: '',
      pageparm: {
        pageSize: 10,
        current: 1
      },
      // 阵地分类
      frontTypeList: [
        { label: '烟酒店', value: 1 },
        { label: '二手手机', value: 2 },
        { label: '打金店', value: 3 },
        { label: '租车行', value: 4 },
        { label: '汽车维修店', value: 5 },
        { label: '古玩市场', value: 6 },
        { label: '废品回收', value: 7 },
        { label: '电动车回收维修', value: 8 },
        { label: '其他', value: 9 },
      ],
      // 九小分类
      nineTypeList: [
        { label: '小商店', value: 1 },
        { label: '小旅馆', value: 2 },
        { label: '小学校', value: 3 },
        { label: '小医院', value: 4 },
        { label: '小网吧', value: 5 },
        { label: '小餐饮场所', value: 6 },
        { label: '小歌舞厅场所', value: 7 },
        { label: '小美容洗浴场所', value: 8 },
        { label: '小删除加工企业', value: 9 },
      ],
      // 无诈分类
      noFraudTypeList: [
        { label: '企业', value: 2 },
        { label: '工地', value: 3 },
        { label: '学校', value: 4 },
        { label: '医院', value: 5 },
        { label: '村(社区)', value: 6 },
        { label: '厂(园区)', value: 7 },
        { label: '单位', value: 8 }
      ],
    }
  },
  //监听属性 类似于data概念
@@ -116,46 +223,114 @@
  watch: {},
  //方法集合
  methods: {
    init (id) {
    init(id) {
      this.getDetailById(id)
    },
    // 获取无诈数据
    getNoFraudType(val) {
      let type = ''
      this.noFraudTypeList.forEach(item => {
        if (item.value == val) {
          type = item.label
        }
      })
      return type
    },
    getDetailById (id) {
    // 获取九小数据
    getNineTypeType(val) {
      let type = ''
      this.nineTypeList.forEach(item => {
        if (item.value == val) {
          type = item.label
        }
      })
      return type
    },
    // 获取阵地数据
    getFrontTypeType(val) {
      let type = ''
      this.frontTypeList.forEach(item => {
        if (item.value == val) {
          type = item.label
        }
      })
      return type
    },
    getDetailById(id) {
      this.loading()
      this.placeId = id
      getDetail(id).then(res => {
        this.rowData = res.data
        loading.close()
        this.rowData = res.data.data
        this.rowData.imageUrls = this.getImgUrls(this.rowData.imageUrls)
      }).catch(error => {
        loading.close()
      })
    },
    backClick () {
    backClick() {
      this.$parent.showDetailClick()
    },
    openList () {
      this.dialogVisible = true
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
      this.pageparm.current = val
      this.getPlacePractitionerList()
    },
    handleClose (done) {
      this.$confirm('确认关闭?')
        .then(_ => {
          done()
        }).catch(_ => { })
    }
    openList() {
      this.dialogVisible = true
      this.residentLoading = true
      this.getPlacePractitionerList()
    },
    getPlacePractitionerList() {
      getPlacePractitioner(this.placeId, '', this.pageparm.current, this.pageparm.pageSize).then(res => {
        this.residentLoading = false
        this.dataList = res.data.data
      }).catch(err => {
        this.residentLoading = false
      })
    },
    handleClose(done) {
      done()
    },
    // // 图片转换
    getImgUrls(imageUrls) {
      if (imageUrls && imageUrls != '' && imageUrls.length > 0) {
        imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => {
          // return 'http://10.141.11.11/place/' + ele
          return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele
        })
      }
      return imageUrls || []
    },
    // 加载动画
    loading() {
      loading = this.$loading({
        lock: true,
        text: '拼命加载中',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.5)'
      })
    },
  },
  //生命周期 - 创建完成(可以访问当前this实例)
  created () {
  created() {
  },
  //生命周期 - 挂载完成(可以访问DOM元素)
  mounted () {
  mounted() {
  },
  beforeCreate () { }, //生命周期 - 创建之前
  beforeMount () { }, //生命周期 - 挂载之前
  beforeUpdate () { }, //生命周期 - 更新之前
  updated () { }, //生命周期 - 更新之后
  beforeDestroy () { }, //生命周期 - 销毁之前
  destroyed () { }, //生命周期 - 销毁完成
  activated () { }, //如果页面有keep-alive缓存功能,这个函数会触发
  beforeCreate() { }, //生命周期 - 创建之前
  beforeMount() { }, //生命周期 - 挂载之前
  beforeUpdate() { }, //生命周期 - 更新之前
  updated() { }, //生命周期 - 更新之后
  beforeDestroy() { }, //生命周期 - 销毁之前
  destroyed() { }, //生命周期 - 销毁完成
  activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style lang='scss' scoped>
@@ -177,6 +352,10 @@
    margin: 10px;
    border-radius: 10px;
    padding: 5px;
    .title {
      text-align: center;
    }
    .content-title {
      display: flex;
@@ -212,4 +391,4 @@
  }
}
</style>
</style>
src/views/comprehensiveSearch/components/companyList.vue
@@ -44,6 +44,7 @@
import companyDetail from './companyDetail'
let loading = null
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -55,7 +56,7 @@
  props: {
  },
  data () {
  data() {
    //这里存放数据
    return {
      showDetail: false,
@@ -68,7 +69,7 @@
  watch: {},
  //方法集合
  methods: {
    showDetailClick (data = {}, flag = false) {
    showDetailClick(data = {}, flag = false) {
      this.showDetail = flag
      if (flag) {
@@ -76,30 +77,43 @@
      }
    },
    handleCurrentChange (val) {
    handleCurrentChange(val) {
      this.currentRow = val
    },
    searchBtn (params) {
    searchBtn(params) {
      // this.loading()
      searchPlaceList(params.searchContent).then(res => {
        // loading.close()
        this.dataList = res.data.data.records
      }).catch(err => {
        // loading.close()
      })
    },
  },
  // 加载动画
  loading() {
    loading = this.$loading({
      lock: true,
      text: '拼命加载中',
      spinner: 'el-icon-loading',
      background: 'rgba(0, 0, 0, 0.5)'
    })
  },
  //生命周期 - 创建完成(可以访问当前this实例)
  created () {
  created() {
  },
  //生命周期 - 挂载完成(可以访问DOM元素)
  mounted () {
  mounted() {
  },
  beforeCreate () { }, //生命周期 - 创建之前
  beforeMount () { }, //生命周期 - 挂载之前
  beforeUpdate () { }, //生命周期 - 更新之前
  updated () { }, //生命周期 - 更新之后
  beforeDestroy () { }, //生命周期 - 销毁之前
  destroyed () { }, //生命周期 - 销毁完成
  activated () { }, //如果页面有keep-alive缓存功能,这个函数会触发
  beforeCreate() { }, //生命周期 - 创建之前
  beforeMount() { }, //生命周期 - 挂载之前
  beforeUpdate() { }, //生命周期 - 更新之前
  updated() { }, //生命周期 - 更新之后
  beforeDestroy() { }, //生命周期 - 销毁之前
  destroyed() { }, //生命周期 - 销毁完成
  activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style lang='scss' scoped>