移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

294 lines
7.1 KiB

<template>
<scroll-view class="view-container">
<view class="emty" v-if="list.length == 0">
<image
src="/static/images/emty.png"
style="width: 79px; height: 79px"
mode="widthFix"
></image>
<text>暂无数据</text>
</view>
<view
class="enterprise"
v-for="enterprise in list"
:key="enterprise.id"
>
<view class="info" @tap="goDetail(enterprise.id)">
<view>
{{ enterprise.enterprisesName }}
</view>
<view class="wd-flex" style="gap: 8px">
<u-avatar
:src="enterprise.files[0].url"
shape="square"
style="width: 53px; height: 53px"
></u-avatar>
<view class="">
<view class="">
<view class="wd-flex wd-pb-8px">
<u-icon name="map" size="14" color="#17C653"></u-icon>
<text class="address wd-text-12" style="margin-left: 4px">
{{
`${$dict.echoDicValue(
dictMap.enterprises_area,
enterprise.region
)} | ${enterprise.address}`
}}
</text>
</view>
<view class="tagList">
<view
class="tag"
v-for="(tag, index) in enterprise.tagList"
:key="index"
>
{{ tag }}
</view>
</view>
</view>
</view>
</view>
<view class="wd-flex" style="align-items: center">
<text class="address" style="margin-right: 8px; color: #4b5675">
环保负责人
</text>
<text style="margin-right: 16px">
{{ enterprise.contactName }}
</text>
<text class="address" style="margin-right: 8px; color: #4b5675">
联系方式
</text>
<text style="">
{{ enterprise.environmentalContactPhone }}
</text>
</view>
</view>
<view class="opera">
<button
class="box-btn red"
open-type="share"
@tap="shareEntprise(enterprise.id)"
>
变更管理人
</button>
<view class="box-btn green" @tap="editEnterprise(enterprise.id)">
编辑该企业
</view>
</view>
<view
class="audit"
v-if="!enterprise.isAudit"
style="color: #f6b100; background-color: #fff8dd"
>
待审核
</view>
</view>
<cs-bottom-wrapper v-if="inviteId">
<view class="operation">
<button class="btn green" @tap="addEnterprise">新增企业</button>
</view>
</cs-bottom-wrapper>
</scroll-view>
</template>
<script>
import { vertifyName } from '@/api/enterprise/index.js'
import { getTagData, getDictBatchByType } from '@/api/system/dict.js'
export default {
data() {
return {
inviteId: '',
list: [],
dictMap: {},
share: {
title: '企业变更管理', // 标题
path: `/sub/invite/index?inviteId=${this.$store.getters.userId}`,
imageUrl: 'https://hb.jzce.com/fx_bggl.png'
}
}
},
onShow() {
this.getList()
},
onLoad(res) {
if (res.inviteId) {
this.inviteId = res.inviteId
}
this.getDict()
this.getList()
},
onShareAppMessage() {
return this.share
},
onPullDownRefresh() {
this.getList()
},
methods: {
getList() {
uni.showLoading({
title: '加载中...'
})
vertifyName({ enterpriseUserId: this.$store.getters.userId }).then(
res => {
this.list = res.data.list
uni.stopPullDownRefresh()
uni.hideLoading()
}
)
},
async getDict() {
const tags = await getTagData(['qy', ' hy', 'st', 'wr'].join(','))
const dict = await getDictBatchByType({
type: ['user_audit_type', 'enterprises_area'].join(',')
})
let tagMap = {}
tags.data.forEach(t => {
tagMap[t.tagCode] = t.children
})
this.dictMap = {
...tagMap,
...dict.data
}
},
addEnterprise() {
uni.navigateTo({
url: `/sub/invite/addEnterprise?inviteId=${this.inviteId}`
})
},
editEnterprise(id) {
uni.navigateTo({
url: `/sub/invite/addEnterprise?inviteId=${this.inviteId}&id=${id}`
})
},
goDetail(id) {
uni.navigateTo({
url: `/sub/enterprise/detail?id=${id}&view=true`
})
},
shareEntprise(id) {
this.share = {
title: '企业变更管理', // 标题
path: `/sub/enterprise/detail?id=${id}&view=true&change=true`,
imageUrl: ''
}
}
}
}
</script>
<style lang="scss" scoped>
.view-container {
padding: 0 24rpx;
display: flex;
flex-flow: column nowrap;
position: relative;
padding-bottom: 13vh;
&::-webkit-scrollbar {
display: none;
}
}
.emty {
margin-top: 24rpx;
border-radius: 8px;
height: 550rpx;
display: flex;
flex-flow: column nowrap;
justify-content: center;
align-items: center;
background-color: #fff;
gap: 12px;
color: #99a1b7;
}
.operation {
padding: 12px;
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
.btn {
flex: 1;
border-radius: 8px;
display: flex;
padding: 12px 0;
align-items: center;
justify-content: center;
}
.green {
background-color: $cs-color-main;
color: #fff;
}
}
.enterprise {
border-radius: var(--Number-12px, 12px);
border: 1px solid var(--LightMode-Grey-Grey-200, #f1f1f4);
background: #fff;
display: flex;
padding: var(--Number-16px, 16px);
flex-direction: column;
align-items: flex-start;
gap: var(--Number-16px, 16px);
position: relative;
overflow: hidden;
margin-top: 24rpx;
.audit {
position: absolute;
right: -19px;
top: 6px;
transform: rotateZ(45deg);
transform-origin: 50% 50%;
padding: 4px 20px;
font-size: 12px;
text-align: center;
}
.info {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--Number-12px, 12px);
align-self: stretch;
overflow: hidden;
.tagList {
margin-top: 8px;
display: flex;
gap: 4px;
color: $uni-text-color-grey;
display: flex;
.tag {
font-size: 12px;
display: flex;
padding: 2px 6px;
justify-content: center;
align-items: center;
border-radius: 2px;
background: #f9f9f9;
}
}
}
.opera {
display: flex;
flex-flow: row nowrap;
gap: 16px;
width: 100%;
.box-btn {
flex: 1;
border-radius: var(--Number-8px, 8px);
display: flex;
padding: var(--Number-12px, 12px);
justify-content: center;
align-items: center;
gap: var(--Number-12px, 12px);
flex: 1 0 0;
font-size: 14px;
}
.red {
background: var(--LightMode-Orange-Orange-Light, #fff5ef);
color: var(--LightMode-Orange-Orange, #ff6f1e);
}
.green {
background: var(--LightMode-Success-Success-Light, #eafff1);
color: var(--LightMode-Success-Success, #17c653);
}
}
}
</style>