新增提交完成
This commit is contained in:
parent
ceb32c4b71
commit
9c3df416c1
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view>
|
||||
<button @click="click" class="new_btn">{{text}}</button>
|
||||
<button @click="click" :class="{'new_btn': position, 'no_positon': !position, 'disabled': disabled}">{{text}}</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -10,6 +10,14 @@
|
||||
text: {
|
||||
type: String,
|
||||
default: '新增'
|
||||
},
|
||||
position:{
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
disabled:{
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data(){
|
||||
@ -37,4 +45,16 @@
|
||||
line-height: 90rpx;
|
||||
background-color: $theme-oa-color;
|
||||
}
|
||||
.no_positon{
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
color: #fff;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $theme-oa-color;
|
||||
}
|
||||
.disabled{
|
||||
background-color: #666;
|
||||
color: #eee;
|
||||
}
|
||||
</style>
|
@ -392,6 +392,15 @@
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "submit/submit",
|
||||
"style": {
|
||||
"navigationBarTitleText": "提交审核",
|
||||
"enablePullDownRefresh": false,
|
||||
"navigationBarBackgroundColor": "#3175f9",
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
|
||||
}]
|
||||
}],
|
||||
"globalStyle": {
|
||||
|
BIN
static/img/contract/ok_b.png
Normal file
BIN
static/img/contract/ok_b.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.9 KiB |
@ -4,9 +4,11 @@
|
||||
<view class="need_contract" v-if="!company.contract||!company.contract.status">
|
||||
<picker v-if="!company.contract" :range="contractTypeList" range-key="name" @change="changeType">
|
||||
<button class="btn">发起合同</button>
|
||||
<!-- <mybtn text="发起合同" position="false"></mybtn> -->
|
||||
</picker>
|
||||
<view v-if="company.contract&&company.contract.check_status==1">
|
||||
<button class="btn tips_center">合同已发起,请等待审核</button>
|
||||
<!-- <mybtn text="发起合同" position="false" disabled></mybtn> -->
|
||||
</view>
|
||||
<view v-if="company.contract&&company.contract.check_status==2" class="card">
|
||||
<view class="contract_box send">
|
||||
@ -116,6 +118,7 @@
|
||||
});
|
||||
Toast('合同已生成');
|
||||
this.initCompany();
|
||||
this.naviTo('/subpkg/submit/submit');
|
||||
if (this.userInfo.contract.check_status == 3) {
|
||||
this.timerCount = 60;
|
||||
this.timer = setInterval(() => {
|
||||
@ -142,8 +145,15 @@
|
||||
id: this.id
|
||||
})
|
||||
Toast('短信已发送');
|
||||
this.naviTo('/subpkg/submit/submit');
|
||||
}
|
||||
},
|
||||
naviTo(url) {
|
||||
url ?
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
}) : Toast('暂未开放')
|
||||
},
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
uni.stopPullDownRefresh()
|
||||
|
@ -3,283 +3,314 @@
|
||||
<view class="personnel_list">
|
||||
<block v-for="(item, index) in userList" :key="item.id">
|
||||
<view class="personnel_item">
|
||||
<view class="type" :class="item.is_contract?'type_blue':''">
|
||||
<image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image>
|
||||
<image v-else src="../../static/icons/err_w.png"></image>
|
||||
<view class="type" :class="item.is_contract?'type_blue':''">
|
||||
<image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image>
|
||||
<image v-else src="../../static/icons/err_w.png"></image>
|
||||
</view>
|
||||
<view class="top">
|
||||
<view class="top" style="margin-bottom: 28rpx;">
|
||||
<view class="left">
|
||||
<u--image class="u_avatar" :showLoading="true" :src="item.avatar||'../../static/img/public/man.png'" width="112.28rpx" height="112.28rpx" shape="circle"></u--image>
|
||||
<u--image class="u_avatar" :showLoading="true" :src="item.avatar||'../../static/img/public/man.png'"
|
||||
width="112.28rpx" height="112.28rpx" shape="circle"></u--image>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="info_top">
|
||||
<view class="info_name">{{item.nickname}}</view>
|
||||
<text class="phone">电话:</text>
|
||||
<text class="tel">{{item.phone||item.account}}</text>
|
||||
<text class="phone">电话:</text>
|
||||
<text class="tel">{{item.phone||item.account}}</text>
|
||||
</view>
|
||||
<view class="info_bottom">
|
||||
<text class="item phone">
|
||||
分管片区:
|
||||
分管片区:
|
||||
</text>
|
||||
<view class="item">
|
||||
<view class="location">{{ item.city_name+item.area_name+item.street_name }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="company">
|
||||
<text>
|
||||
所属公司:
|
||||
</text>
|
||||
<view class="itm" v-if="item.company">{{item.company.company_name}}</view>
|
||||
</view>
|
||||
<view class="company">
|
||||
<text>
|
||||
所属公司:
|
||||
</text>
|
||||
<view class="itm" v-if="item.company">{{item.company.company_name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="center">
|
||||
<!-- <view class="center">
|
||||
<view class="top" v-for="(role, roleIndex) in item.roles" :key="roleIndex">
|
||||
{{role}}
|
||||
<!-- <text class="green">管理人</text> -->
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<u-line color="#999999FF"></u-line>
|
||||
<view class="bottom" style="margin-top: 28rpx;float: right;">
|
||||
<button class="look sign" v-if="item.is_contract==1">已签约</button>
|
||||
<button class="look red" v-else>未签约</button>
|
||||
<button class="look sign" v-if="item.is_contract==1">已签约</button>
|
||||
<button class="look red" v-else>未签约</button>
|
||||
<button class="look" @click="navTo('/subpkg/finance/finance?id='+item.id)">财务查看</button>
|
||||
<button class="look" @click="navTo('/subpkg/personnelDetails/personnelDetails?id='+item.id)">信息查看</button>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText" :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
|
||||
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText"
|
||||
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
|
||||
</view>
|
||||
<button class="new_btn" @click.stop="navTo('/subpkg/newPersonnel/newPersonnel')">创建账号</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Toast } from '@/libs/uniApi.js'
|
||||
import {companyUser} from "@/api/company.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loadConfig:{
|
||||
page: 1,
|
||||
limit: 15,
|
||||
loadingText: '努力加载中',
|
||||
loadmoreText: '轻轻上拉',
|
||||
nomoreText: '我也是有底线的~~',
|
||||
status: 'loadmore'
|
||||
},
|
||||
userList: []
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
},
|
||||
onShow() {
|
||||
this.loadUserList()
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
url ?
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
}) : Toast('暂未开放')
|
||||
},
|
||||
async loadUserList(){
|
||||
let that = this;
|
||||
if(this.loadConfig.status=="nomore")return;
|
||||
this.loadConfig.status="loading"
|
||||
let res = await companyUser({
|
||||
page: this.loadConfig.page,
|
||||
limit: this.loadConfig.limit,
|
||||
company_id: this.$store.state.app.userInfo.company_id
|
||||
})
|
||||
this.loadConfig.status="loadmore"
|
||||
if(res.data.data.length<this.loadConfig.limit){
|
||||
this.loadConfig.status="nomore"
|
||||
}else {
|
||||
this.loadConfig.page++;
|
||||
import { Toast } from '@/libs/uniApi.js'
|
||||
import { companyUser } from "@/api/company.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loadConfig: {
|
||||
page: 1,
|
||||
limit: 15,
|
||||
loadingText: '努力加载中',
|
||||
loadmoreText: '轻轻上拉',
|
||||
nomoreText: '我也是有底线的~~',
|
||||
status: 'loadmore'
|
||||
},
|
||||
userList: []
|
||||
}
|
||||
this.userList = [...this.userList, ...res.data?.data]
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
},
|
||||
onLoad() {},
|
||||
onShow() {
|
||||
this.loadUserList()
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
url ?
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
}) : Toast('暂未开放')
|
||||
},
|
||||
async loadUserList() {
|
||||
let that = this;
|
||||
if (this.loadConfig.status == "nomore") return;
|
||||
this.loadConfig.status = "loading"
|
||||
let res = await companyUser({
|
||||
page: this.loadConfig.page,
|
||||
limit: this.loadConfig.limit,
|
||||
company_id: this.$store.state.app.userInfo.company_id
|
||||
})
|
||||
this.loadConfig.status = "loadmore"
|
||||
if (res.data.data.length < this.loadConfig.limit) {
|
||||
this.loadConfig.status = "nomore"
|
||||
} else {
|
||||
this.loadConfig.page++;
|
||||
}
|
||||
this.userList = [...this.userList, ...res.data?.data]
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
uni.stopPullDownRefresh()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.personnel{
|
||||
.new_btn{
|
||||
position: fixed;
|
||||
bottom: 30rpx;
|
||||
// margin-top: 32rpx;
|
||||
// margin-bottom: 40rpx;
|
||||
left: 50%;
|
||||
transform: translate(-50%);
|
||||
z-index: 999;
|
||||
width: 694rpx;
|
||||
height: 84rpx;
|
||||
background: $theme-oa-color;
|
||||
border-radius: 42rpx 42rpx 42rpx 42rpx;
|
||||
color: #fff;
|
||||
line-height: 80rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.personnel_list{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-top: 32rpx;
|
||||
padding-bottom: 130rpx;
|
||||
.personnel_item{
|
||||
.personnel {
|
||||
.new_btn {
|
||||
position: fixed;
|
||||
bottom: 30rpx;
|
||||
// margin-top: 32rpx;
|
||||
// margin-bottom: 40rpx;
|
||||
left: 50%;
|
||||
transform: translate(-50%);
|
||||
z-index: 999;
|
||||
width: 694rpx;
|
||||
// height: 407rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 14rpx 14rpx 14rpx 14rpx;
|
||||
margin-bottom: 32rpx;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
padding: 28rpx;
|
||||
.type{
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
background-color: #F02828;
|
||||
border-radius: 50%;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
line-height: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
top: 10rpx;
|
||||
right: 10rpx;
|
||||
image{
|
||||
width: 18rpx;
|
||||
height: 18rpx;
|
||||
margin-right: 1rpx;
|
||||
}
|
||||
}
|
||||
.type_blue{
|
||||
background-color: #34A853;
|
||||
}
|
||||
.top{
|
||||
// background-color: #3274F9;
|
||||
display: flex;
|
||||
.right{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
margin-left: 28rpx;
|
||||
height: 84rpx;
|
||||
background: $theme-oa-color;
|
||||
border-radius: 42rpx 42rpx 42rpx 42rpx;
|
||||
color: #fff;
|
||||
line-height: 80rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.personnel_list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-top: 32rpx;
|
||||
padding-bottom: 130rpx;
|
||||
|
||||
.personnel_item {
|
||||
width: 694rpx;
|
||||
// height: 407rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 14rpx 14rpx 14rpx 14rpx;
|
||||
margin-bottom: 32rpx;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
padding: 28rpx;
|
||||
|
||||
.type {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
background-color: #F02828;
|
||||
border-radius: 50%;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
color: #999999;
|
||||
.info_top{
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
color: $theme-oa-color;
|
||||
.info_name{
|
||||
font-size: 32rpx;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
margin-right: 18rpx;
|
||||
}
|
||||
.phone{
|
||||
margin-left: 30rpx;
|
||||
color: #999999;
|
||||
}
|
||||
.tel{
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
.info_bottom{
|
||||
display: flex;
|
||||
.item{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.phone{
|
||||
margin-right: 28rpx;
|
||||
}
|
||||
.location{
|
||||
width: 250rpx;
|
||||
white-space: nowrap; /* 不换行 */
|
||||
overflow: hidden; /* 将超出文本隐藏 */
|
||||
text-overflow: ellipsis; /* 使用省略号表示被隐藏的文本 */
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
.company{
|
||||
display: flex;
|
||||
text{
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.itm{
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.center{
|
||||
padding: 28rpx 0;
|
||||
.top{
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
color: #666666FF;
|
||||
margin-bottom: 20rpx;
|
||||
.green{
|
||||
color: #34A853FF;
|
||||
}
|
||||
.yellow{
|
||||
color: #F9AA32FF;
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
image{
|
||||
width: 18rpx;
|
||||
height: 18rpx;
|
||||
margin-right: 9rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.look{
|
||||
width: 158rpx;
|
||||
height: 53rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 26rpx 26rpx 26rpx 26rpx;
|
||||
opacity: 1;
|
||||
border: 2rpx solid $theme-oa-color;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
margin-left: 28rpx;
|
||||
color: $theme-oa-color;
|
||||
color: #FFFFFF;
|
||||
line-height: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
top: 10rpx;
|
||||
right: 10rpx;
|
||||
|
||||
image {
|
||||
width: 18rpx;
|
||||
height: 18rpx;
|
||||
margin-right: 1rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.type_blue {
|
||||
background-color: #34A853;
|
||||
}
|
||||
|
||||
.top {
|
||||
// background-color: #3274F9;
|
||||
display: flex;
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
margin-left: 28rpx;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
color: #999999;
|
||||
|
||||
.info_top {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
color: $theme-oa-color;
|
||||
|
||||
.info_name {
|
||||
font-size: 32rpx;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
margin-right: 18rpx;
|
||||
}
|
||||
|
||||
.phone {
|
||||
margin-left: 30rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.tel {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
||||
.info_bottom {
|
||||
display: flex;
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.phone {
|
||||
margin-right: 28rpx;
|
||||
}
|
||||
|
||||
.location {
|
||||
width: 250rpx;
|
||||
white-space: nowrap;
|
||||
/* 不换行 */
|
||||
overflow: hidden;
|
||||
/* 将超出文本隐藏 */
|
||||
text-overflow: ellipsis;
|
||||
/* 使用省略号表示被隐藏的文本 */
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
||||
.company {
|
||||
display: flex;
|
||||
|
||||
text {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
|
||||
.itm {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.center {
|
||||
padding: 28rpx 0;
|
||||
|
||||
.top {
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
color: #666666FF;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
.green {
|
||||
color: #34A853FF;
|
||||
}
|
||||
|
||||
.yellow {
|
||||
color: #F9AA32FF;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
font-size: 25rpx;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
|
||||
image {
|
||||
width: 18rpx;
|
||||
height: 18rpx;
|
||||
margin-right: 9rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.look {
|
||||
width: 128rpx;
|
||||
height: 43rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 26rpx 26rpx 26rpx 26rpx;
|
||||
opacity: 1;
|
||||
// border: 2rpx solid $theme-oa-color;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
margin-left: 28rpx;
|
||||
color: $theme-oa-color;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.sign {
|
||||
color: #34A853;
|
||||
// border: 2rpx solid #34A853;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #F02828;
|
||||
// border: 2rpx solid #F02828;
|
||||
}
|
||||
}
|
||||
.sign{
|
||||
color: #34A853;
|
||||
border: 2rpx solid #34A853;
|
||||
}
|
||||
.red{
|
||||
color: #F02828;
|
||||
border: 2rpx solid #F02828;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
</style>
|
71
subpkg/submit/submit.vue
Normal file
71
subpkg/submit/submit.vue
Normal file
@ -0,0 +1,71 @@
|
||||
<template>
|
||||
<view class="">
|
||||
<view class="body">
|
||||
<image class="icon" src="../../static/img/contract/ok_b.png"></image>
|
||||
<view class="text">合同生成提交成功</view>
|
||||
<view class="tips">
|
||||
<view>您的签约请求已提交,正在生成合同。</view>
|
||||
<view>请耐心等待,合同生成完毕后将会以短信方式通知您。</view>
|
||||
</view>
|
||||
<button class="btn" @click="naviTo">确定</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
onLoad() {},
|
||||
onShow() {},
|
||||
methods: {
|
||||
naviTo(){
|
||||
uni.navigateBack();
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
uni.stopPullDownRefresh()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.body{
|
||||
text-align: center;
|
||||
.icon{
|
||||
width: 193rpx;
|
||||
height: 193rpx;
|
||||
margin-top: 177rpx;
|
||||
margin-bottom: 70rpx;
|
||||
}
|
||||
.text{
|
||||
font-size: 39rpx;
|
||||
font-weight: 600;
|
||||
color: #000000;
|
||||
line-height: 49rpx;
|
||||
margin-bottom: 42rpx;
|
||||
}
|
||||
.tips{
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
color: #000000;
|
||||
line-height: 47rpx;
|
||||
margin-bottom: 92rpx;
|
||||
}
|
||||
.btn{
|
||||
width: 694rpx;
|
||||
height: 84rpx;
|
||||
line-height: 84rpx;
|
||||
text-align: center;
|
||||
background: #3274F9;
|
||||
border-radius: 42rpx 42rpx 42rpx 42rpx;
|
||||
opacity: 1;
|
||||
margin: 0 auto;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
Loading…
x
Reference in New Issue
Block a user