第二版页面样式修改

This commit is contained in:
THK3121 2023-08-19 09:28:59 +08:00
parent 1b215956fb
commit d07d7d4d94
6 changed files with 995 additions and 599 deletions

View File

@ -31,9 +31,9 @@
-->
<view class="personnel_list" v-if="!skeleton">
<view class="cards">
<view class="cards_head">
<text style="font-size: 32rpx">公司基本信息</text>
</view>
<view class="cards_content">
<view class="right">
@ -58,17 +58,46 @@
</view>
<view class="cards_head">
<text style="font-size: 32rpx">公司联系人</text>
</view>
<view class="cards_content">
<view class="right">
<view class="">
<text>法人姓名 :</text>
<text> {{company.master_name}}</text>
</view>
<view class="" @click="copyPhone(company.master_email, '社会代码')">
<text>担任职务 :</text>
<text>{{company.organization_code}}</text>
</view>
<view class="" @click="copyPhone(company.master_email, '电话')">
<text>联系电话 :</text>
<text>{{company.master_phone}}</text>
</view>
<view class="" @click="copyPhone(company.master_email, '邮箱')">
<text>电子邮箱 :</text>
<text> {{company.master_email}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 合同 -->
<view class="item" v-show="skeleton||contract.status">
<u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%"
rowsHeight="56"></u-skeleton>
<!--
<block v-if="!skeleton">
<view class="title">电子合同</view>
<view class="card">
@ -80,34 +109,94 @@
<view class="info_item">合同编号{{contract.contract_no}}</view>
</view>
</view>
<u-line v-if="contract.contract_no" color="#999999FF" style="margin: 31rpx 0;"></u-line>
<view class="contract" v-if="contract.contract_no">
<view class="left">
<image class="contract_img" src="../../static/img/contract/pdf.png"></image>
<view class="text">
<view class="name">合同</view>
<view>
<!-- <text class="nickname">张郭郭</text> -->
<text>{{contract.create_time}}</text>
</view>
</view>
</view>
<view class="right" @click="navTo(contract.contract_no)">
<!-- <image class="icon"></image> -->
<uni-icons type="paperclip" color="#3274F9"></uni-icons>
<view>查看</view>
</view>
</view>
</view>
</block>
-->
<view class="personnel_list" v-if="!skeleton">
<view class="cards">
<view class="cards_head">
<text style="font-size: 32rpx">电子合同</text>
</view>
<view class="cards_content">
<view class="right">
<view class="">
<text>甲方 :</text>
<text> {{contract.party_a_name}}</text>
</view>
<view class="" @click="copyPhone(company.master_email, '社会代码')">
<text>乙方 :</text>
<text>{{contract.party_b_name}}</text>
</view>
<view class="">
<text>合同类型 :</text>
<text>{{contract.contract_type_name}}</text>
</view>
<view class="">
<text>合同编号 :</text>
<text> {{contract.contract_no}} </text>
</view>
</view>
</view>
<view style="border-top:1px dashed #0022C7;margin:20rpx 0">
</view>
<view class="contract" v-if="contract.contract_no">
<view class="left">
<image class="contract_img" src="../../static/img/contract/pdf.png"></image>
<view class="text">
<view class="name">合同</view>
<view>
<text>{{contract.create_time}}</text>
</view>
</view>
</view>
<view class="right" @click="navTo(contract.contract_no)">
<uni-icons type="paperclip" color="#3274F9"></uni-icons>
<view>查看</view>
</view>
</view>
</view>
</view>
</view>
<!--
<view class="item">
<u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%"
rowsHeight="56"></u-skeleton>
<block v-if="!skeleton">
<view class="title">
<text>联系人管理</text>
<!-- <view>新增</view> -->
</view>
<view class="card">
<view class="one">
@ -145,9 +234,12 @@
</block>
</view>
-->
<view class="item">
<u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%"
rowsHeight="56"></u-skeleton>
<!--
<block v-if="!skeleton">
<view class="title">资质信息</view>
<view class="image_box" style="background-color: #fff;border-radius: 7px 7px 7px 7px;">
@ -172,21 +264,54 @@
<u-loading-icon color="#333"></u-loading-icon>
</template>
</u--image>
<!-- <u--image class="image" v-for="item in company.qualification.bank_account" :key="item" @click="priview(item)"
:src="item" v-if="company.qualification.bank_account" :lazy-load="true">
<template v-slot:loading>
<u-loading-icon color="#333"></u-loading-icon>
</template>
</u--image>
<u--image class="image" v-for="item in company.qualification.bank_accountB" :key="item" @click="priview(item)"
:src="item" v-if="company.qualification.bank_accountB" :lazy-load="true">
<template v-slot:loading>
<u-loading-icon color="#333"></u-loading-icon>
</template>
</u--image> -->
</view>
</block>
-->
<view class="personnel_list" v-if="!skeleton">
<view class="cards">
<view class="cards_head">
<text style="font-size: 32rpx">公司资质信息</text>
</view>
<view class="cards_content">
<view class="image_box" style="background-color: #fff;border-radius: 7px 7px 7px 7px;">
<u--image class="image" @click="priview(company.qualification.business_license)"
:src="company.qualification.business_license"
v-if="company.qualification.business_license" :lazy-load="true">
<template v-slot:loading>
<u-loading-icon color="#333"></u-loading-icon>
</template>
</u--image>
<u--image class="image" @click="priview(company.qualification.business_licenseB)"
:src="company.qualification.business_licenseB"
v-if="company.qualification.business_licenseB" :lazy-load="true">
<template v-slot:loading>
<u-loading-icon color="#333"></u-loading-icon>
</template>
</u--image>
<u--image class="image" v-for="item in company.qualification.other_qualifications"
:key="item" @click="priview(item)" :src="item"
v-if="company.qualification.other_qualifications" :lazy-load="true">
<template v-slot:loading>
<u-loading-icon color="#333"></u-loading-icon>
</template>
</u--image>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
@ -329,7 +454,6 @@
<style lang="scss" scoped>
.personnel_list {
padding: 28rpx 0;
margin-bottom: 130rpx;
.cards {
margin: 0 auto;
@ -381,8 +505,11 @@
justify-content: space-between;
view {
margin-bottom: 10rpx;
text:nth-child(2) {
margin-left: 20rpx;
}
}
}
@ -396,10 +523,75 @@
transform: translate(-50%, -50%);
}
}
.contract {
display: flex;
justify-content: space-between;
padding: 0 30rpx 20rpx 30rpx;
.left {
display: flex;
.contract_img {
width: 102rpx;
height: 102rpx;
background: #F5F5F5;
border-radius: 14rpx 14rpx 14rpx 14rpx;
margin-right: 21rpx;
}
.text {
display: flex;
flex-direction: column;
justify-content: space-between;
.name {
font-size: 32rpx;
;
font-weight: 500;
color: rgba(0, 0, 0, 0.8);
line-height: 35rpx;
}
.nickname {
margin-right: 35rpx;
}
text {
height: 39rpx;
font-size: 28rpx;
font-weight: 400;
color: #666666;
line-height: 35rpx;
}
}
}
.right {
font-size: 28rpx;
font-weight: 500;
color: $theme-oa-color;
line-height: 35rpx;
display: flex;
justify-content: center;
align-items: center;
.icon {
width: 35rpx;
height: 39rpx;
background-color: $theme-oa-color;
opacity: 1;
margin-right: 10rpx
}
}
}
}
.item {
padding: 32rpx 28rpx;
padding-top: 0;
&:nth-child(1) {
@ -513,68 +705,13 @@
}
}
.contract {
display: flex;
justify-content: space-between;
.left {
display: flex;
.contract_img {
width: 102rpx;
height: 102rpx;
background: #F5F5F5;
border-radius: 14rpx 14rpx 14rpx 14rpx;
margin-right: 21rpx;
}
.text {
display: flex;
flex-direction: column;
justify-content: space-between;
.name {
font-size: 32rpx;
;
font-weight: 500;
color: rgba(0, 0, 0, 0.8);
line-height: 35rpx;
}
.nickname {
margin-right: 35rpx;
}
text {
height: 39rpx;
font-size: 28rpx;
font-weight: 400;
color: #666666;
line-height: 35rpx;
}
}
}
.right {
font-size: 28rpx;
font-weight: 500;
color: $theme-oa-color;
line-height: 35rpx;
display: flex;
justify-content: center;
align-items: center;
.icon {
width: 35rpx;
height: 39rpx;
background-color: $theme-oa-color;
opacity: 1;
margin-right: 10rpx
}
}
}
}
.image_box {
display: flex;
justify-content: space-between;

View File

@ -1,110 +1,116 @@
<template>
<view class="c_task_index">
<u-sticky bgColor="#f5f5f5" offsetTop="44px">
<!-- <u-tabs :list="tabLists" @click="changeCurrent" lineColor='#3274F9' :scrollable="false"
<view class="c_task_index">
<u-sticky bgColor="#f5f5f5" offsetTop="44px">
<!-- <u-tabs :list="tabLists" @click="changeCurrent" lineColor='#3274F9' :scrollable="false"
inactiveStyle='color:#666' activeStyle="color:#3274F9"></u-tabs> -->
<uni-segmented-control :current="current" :values="['全部','已完成']" styleType="text"
@clickItem="changeCurrent" activeColor="#3274F9"></uni-segmented-control>
</u-sticky>
<view class="c_task_index_list">
<view v-for="item in list" :key="item.id">
<taskItem :datas="item"></taskItem>
</view>
</view>
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
<!-- <u-empty icon="/static/img/empty/data.png" text="没有数据"></u-empty> -->
</view>
<uni-segmented-control :current="current" :values="['全部','已完成','未完成']" styleType="text"
@clickItem="changeCurrent" activeColor="#0022C7"></uni-segmented-control>
</u-sticky>
<view class="c_task_index_list">
<view v-for="item in list" :key="item.id">
<taskItem :datas="item"></taskItem>
</view>
</view>
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
<!-- <u-empty icon="/static/img/empty/data.png" text="没有数据"></u-empty> -->
</view>
</template>
<script>
import { Toast } from "../../libs/uniApi";
import taskItem from "./taskItem.vue";
import { taskLists } from "@/api/task.js";
export default {
name: "task",
components: { taskItem },
data() {
return {
current: 0,
status: 0,
// tabLists: [{
// name: '',
// }, {
// name: ''
// }, {
// name: ''
// }],
loadConfig: {
page: 1,
limit: 25,
loadingText: '努力加载中',
loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~',
status: 'loadmore'
},
list: []
};
},
created() {
this.initLoadConfig();
},
methods: {
navTo(url) {
url ?
uni.navigateTo({
url: url
}) : Toast('暂未开放')
},
changeCurrent(e) {
if (this.current !== e.currentIndex) {
this.current = +e.currentIndex;
switch (this.current) {
case 1:
this.status = 3;
break;
case 2:
this.status = 5;
break;
default:
this.status = 0;
}
this.initLoadConfig();
}
},
initLoadConfig() {
this.loadConfig.page = 1;
this.loadConfig.status = 'loadmore';
this.list = [];
this.loadList();
},
async loadList() {
if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "loading";
let res = await taskLists({
page: this.loadConfig.page,
status: this.status,
limit: this.loadConfig.limit
});
this.loadConfig.status = "loadmore"
if (res.data.length < this.loadConfig.limit) {
this.loadConfig.status = "nomore"
} else {
this.loadConfig.page++;
}
this.list = [...this.list, ...res.data];
}
}
}
import {
Toast
} from "../../libs/uniApi";
import taskItem from "./taskItem.vue";
import {
taskLists
} from "@/api/task.js";
export default {
name: "task",
components: {
taskItem
},
data() {
return {
current: 0,
status: 0,
// tabLists: [{
// name: '',
// }, {
// name: ''
// }, {
// name: ''
// }],
loadConfig: {
page: 1,
limit: 25,
loadingText: '努力加载中',
loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~',
status: 'loadmore'
},
list: []
};
},
created() {
this.initLoadConfig();
},
methods: {
navTo(url) {
url ?
uni.navigateTo({
url: url
}) : Toast('暂未开放')
},
changeCurrent(e) {
if (this.current !== e.currentIndex) {
this.current = +e.currentIndex;
switch (this.current) {
case 1:
this.status = 3;
break;
case 2:
this.status = 5;
break;
default:
this.status = 0;
}
this.initLoadConfig();
}
},
initLoadConfig() {
this.loadConfig.page = 1;
this.loadConfig.status = 'loadmore';
this.list = [];
this.loadList();
},
async loadList() {
if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "loading";
let res = await taskLists({
page: this.loadConfig.page,
status: this.status,
limit: this.loadConfig.limit
});
this.loadConfig.status = "loadmore"
if (res.data.length < this.loadConfig.limit) {
this.loadConfig.status = "nomore"
} else {
this.loadConfig.page++;
}
this.list = [...this.list, ...res.data];
}
}
}
</script>
<style lang="scss">
.c_task_index {
padding-bottom: 100rpx;
.c_task_index {
padding-bottom: 100rpx;
.c_task_index_list {
padding-top: 28rpx;
.c_task_index_list {
padding-top: 28rpx;
}
}
}
}
</style>

View File

@ -1,167 +1,289 @@
<template>
<view class="c_task_item" @click="clickTask">
<view class="top">
<view class="left">
<view>任务名称:</view>
<view class="text">{{datas.title}}</view>
</view>
<view class="right">
<image class="icon" src="../../static/icons/ok_c.png"></image>
<!-- <image src="../../static/icons/err_c.png"></image> -->
</view>
</view>
<view class="bottom">
<image class="b_left" src="../../static/img/task/task.png"></image>
<view class="b_right">
<view class="item">
<view class="left">
<view>任务状态:</view>
<view class="text">
<text v-if="datas.status==2||datas.status==1" style="color: #ff7c32;">
<block v-if="(datas.type==31||datas.type==32||datas.type==33)">
<block v-if="datas.extend&&datas.extend.informationg">{{(datas.extend.informationg.update?datas.extend.informationg.update:0)+'/'+(datas.extend.informationg.count?datas.extend.informationg.count:0)}}</block>
<block v-else-if="datas.extend&&datas.extend.transaction&&datas.extend.transaction.arr">{{(datas.extend.transaction.arr.total_price?datas.extend.transaction.arr.total_price:0)+'元/'+(datas.extend.transaction.arr.day_money?datas.extend.transaction.arr.day_money:0)+'元'}}</block>
<block v-else>进行中</block>
</block>
<block v-else>进行中</block>
</text>
<text v-if="datas.status==3" style="color: #46be61;">已完成</text>
<text v-if="datas.status==5">已关闭</text>
</view>
</view>
<view class="right">{{datas.money||'0.00'}}<text class="price"></text></view>
</view>
<view class="item">
<view class="left">
<view>完成时间:</view>
<view class="text">{{datas.end_time}}</view>
</view>
<view class="right">
<view>进入任务<uni-icons type="right" color="#3175f9"></uni-icons></view>
</view>
</view>
</view>
</view>
</view>
<view class="c_task_item" @click="clickTask">
<view class="personnel_list">
<view class="cards">
<view class="cards_head">
<text style="font-size: 32rpx">任务名称: {{datas.title}}</text>
<text>点击查看</text>
</view>
<view class="cards_content">
<view class="right">
<view class="">
<text>任务进度 :</text>
<text> { item.name }</text>
</view>
<view style="width: 87vw;">
<text>完成时间 :</text>
<text>{{datas.end_time}}</text>
<text v-if='0' style="background-color: #ff7c32;" class="status">已完成</text>
<text v-else style="background-color: #488F00;" class="status">未完成</text>
</view>
<view class="">
<text>任务金额 :</text>
<text> {{datas.money+'元'||'0.00'}} </text>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="top">
<view class="left">
<view>任务名称:</view>
<view class="text">{{datas.title}}</view>
</view>
<view class="right">
<image class="icon" src="../../static/icons/ok_c.png"></image>
</view>
</view>
<view class="bottom">
<image class="b_left" src="../../static/img/task/task.png"></image>
<view class="b_right">
<view class="item">
<view class="left">
<view>任务状态:</view>
<view class="text">
<text v-if="datas.status==2||datas.status==1" style="color: #ff7c32;">
<block v-if="(datas.type==31||datas.type==32||datas.type==33)">
<block v-if="datas.extend&&datas.extend.informationg">
{{(datas.extend.informationg.update?datas.extend.informationg.update:0)+'/'+(datas.extend.informationg.count?datas.extend.informationg.count:0)}}
</block>
<block
v-else-if="datas.extend&&datas.extend.transaction&&datas.extend.transaction.arr">
{{(datas.extend.transaction.arr.total_price?datas.extend.transaction.arr.total_price:0)+'元/'+(datas.extend.transaction.arr.day_money?datas.extend.transaction.arr.day_money:0)+'元'}}
</block>
<block v-else>进行中</block>
</block>
<block v-else>进行中</block>
</text>
<text v-if="datas.status==3" style="color: #46be61;">已完成</text>
<text v-if="datas.status==5">已关闭</text>
</view>
</view>
<view class="right">{{datas.money||'0.00'}}<text class="price"></text></view>
</view>
<view class="item">
<view class="left">
<view>完成时间:</view>
<view class="text">{{datas.end_time}}</view>
</view>
<view class="right">
<view>进入任务<uni-icons type="right" color="#3175f9"></uni-icons></view>
</view>
</view>
</view>
</view>
-->
</view>
</template>
<script>
import { Toast } from '../../libs/uniApi';
export default {
name: "task",
props: {
datas: {
type: Object,
default: function(){
return {}
}
}
},
data() {
return {
import {
Toast
} from '../../libs/uniApi';
export default {
name: "task",
props: {
datas: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
};
},
methods:{
navTo(url) {
url ?
uni.navigateTo({
url: url,
}) : Toast('暂未开放')
},
clickTask(){
// console.log('', this.$props.datas);
if((this.$props.datas.type!=31)&&this.$props.datas.status!==2&&this.$props.datas.status!==1){
return this.$props.datas.status==3?Toast('任务已完成!'):Toast('任务已结束!');
}
if(this.$props.datas.type==31){
// this.navTo('/subpkg/fileTask/fileTask?id=' + JSON.stringify(this.$props.datas?.extend?.informationg?.arr))
this.navTo(`/subpkg/archives/archives?task_id=${this.$props.datas?.id}`)
}else this.navTo('');
}
}
}
};
},
methods: {
navTo(url) {
url ?
uni.navigateTo({
url: url,
}) : Toast('暂未开放')
},
clickTask() {
// console.log('', this.$props.datas);
if ((this.$props.datas.type != 31) && this.$props.datas.status !== 2 && this.$props.datas.status !== 1) {
return this.$props.datas.status == 3 ? Toast('任务已完成!') : Toast('任务已结束!');
}
if (this.$props.datas.type == 31) {
// this.navTo('/subpkg/fileTask/fileTask?id=' + JSON.stringify(this.$props.datas?.extend?.informationg?.arr))
this.navTo(`/subpkg/archives/archives?task_id=${this.$props.datas?.id}`)
} else this.navTo('');
}
}
}
</script>
<style lang="scss">
.c_task_item {
margin: 0 auto;
margin-bottom: 28rpx;
width: 694rpx;
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
opacity: 1;
font-size: 25rpx;
font-weight: 400;
color: #999999;
line-height: 39rpx;
.c_task_item {
margin: 0 auto;
// margin-bottom: 28rpx;
width: 694rpx;
// background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
opacity: 1;
font-size: 25rpx;
font-weight: 400;
color: #999999;
line-height: 39rpx;
.text {
font-size: 28rpx;
font-weight: 400;
color: #333333;
line-height: 39rpx;
margin-left: 18rpx;
}
.text {
font-size: 28rpx;
font-weight: 400;
color: #333333;
line-height: 39rpx;
margin-left: 18rpx;
}
.top {
display: flex;
justify-content: space-between;
padding: 28rpx;
border-bottom: 1rpx solid #F5F5F5FF;
.top {
display: flex;
justify-content: space-between;
padding: 28rpx;
border-bottom: 1rpx solid #F5F5F5FF;
.left {
display: flex;
justify-content: left;
align-items: center;
}
.left {
display: flex;
justify-content: left;
align-items: center;
}
.right {
.icon {
width: 43rpx;
height: 43rpx;
}
}
}
.right {
.icon {
width: 43rpx;
height: 43rpx;
}
}
}
.bottom{
padding: 28rpx;
display: flex;
.b_left{
width: 103.39rpx;
height: 94.63rpx;
margin-right: 18rpx;
}
.b_right{
flex: 1;
display: flex;
justify-content: space-around;
flex-direction: column;
.item {
display: flex;
justify-content: space-between;
// margin: 18rpx 28rpx 0 28rpx;
// &:last-child {
// padding-bottom: 18rpx;
// }
.left {
display: flex;
}
.right{
font-size: 32rpx;
font-weight: 400;
color: #3274F9;
line-height: 39rpx;
.price{
font-size: 25rpx;
}
}
}
}
}
}
.bottom {
padding: 28rpx;
display: flex;
.b_left {
width: 103.39rpx;
height: 94.63rpx;
margin-right: 18rpx;
}
.b_right {
flex: 1;
display: flex;
justify-content: space-around;
flex-direction: column;
.item {
display: flex;
justify-content: space-between;
// margin: 18rpx 28rpx 0 28rpx;
// &:last-child {
// padding-bottom: 18rpx;
// }
.left {
display: flex;
}
.right {
font-size: 32rpx;
font-weight: 400;
color: #3274F9;
line-height: 39rpx;
.price {
font-size: 25rpx;
}
}
}
}
}
}
.personnel_list {
padding: 28rpx 0;
.cards {
margin: 0 auto;
// margin-bottom: 28rpx;
width: 694rpx;
background: #ffffff;
border-radius: 30rpx;
opacity: 1;
overflow: hidden;
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
.cards_head {
padding: 28rpx;
background-color: $theme-oa-color;
color: white;
height: 100rpx;
display: flex;
justify-content: space-between;
}
.cards_content {
padding: 28rpx;
display: flex;
justify-content: space-between;
.left {
text-align: center;
// padding: 15rpx 25rpx;
padding-top: 20rpx;
width: 160rpx;
background-color: $theme-oa-color;
color: white;
border-radius: 40rpx;
.cir {
width: 120rpx;
height: 120rpx;
background-color: #ffffff;
margin-left: 25rpx;
border-radius: 120rpx;
position: relative;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
view {
text:nth-child(2) {
margin-left: 20rpx;
}
.status {
display: inline-block;
float: right;
color: white;
text-align: center;
padding: 10rpx 30rpx;
border-radius: 30rpx;
}
}
}
}
.u_avatar {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
</style>

View File

@ -9,9 +9,11 @@
<!-- #endif -->
<view class="my_info ">
<view class="head_img">
<u--image :showLoading="true" style="translate:0 -10rpx ;"
:src="myOaInfo.avatar || '../../static/img/public/avatar.png'" width="150.28rpx"
height="150.28rpx" shape="circle"></u--image>
<view class="img_box">
<u--image :showLoading="true" width="150.28rpx" height="150.28rpx"
:src="myOaInfo.avatar || '../../static/img/public/avatar.png'" shape="circle"></u--image>
</view>
<text class="nickname">工作证: {{ myOaInfo.nickname }}</text>
<text>身份: {{ myOaInfo.admin_id ? "超级管理员" : "普通用户" }}</text>
@ -421,7 +423,15 @@
padding-right: 50rpx;
line-height: 130rpx;
color: white;
font-size: 30rpx;
font-size: 34rpx;
.img_box {
width: 150.28rpx;
height: 150.28rpx;
translate: -10rpx -10rpx;
border: 1px dashed #707070;
}
// font-we
}

View File

@ -1,210 +1,328 @@
<template>
<view class="">
<view class="company_list">
<view class="info_card" v-for="item in companyList" :key="item.id">
<view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)">
<view>
<view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view>
<view class="info_type">{{item.company_type_name}}</view>
</view>
<view class="btn">详情<uni-icons type="forward" color="#666666"></uni-icons></view>
</view>
<u-line></u-line>
<view class="bottom">
<image src="../../static/img/contract/company.png"></image>
<view class="text">
<view>主要联系人{{item.master_name}}</view>
<view @click="copyPhone(item.master_phone)">联系方式{{item.master_phone}}</view>
<view style="display: flex;">
<view class="">区县乡镇</view>
<view>{{c_address(item)}}</view>
</view>
<!-- <view>片区经理</view> -->
</view>
</view>
</view>
<u-empty v-if="loadConfig.status=='nomore'&& companyList.length==0" text="没有更多公司"
icon="/static/img/empty/data.png"></u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view>
</view>
<view class="">
<view class="company_list">
<!-- <view class="info_card" v-for="item in companyList" :key="item.id">
<view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)">
<view>
<view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view>
<view class="info_type">{{item.company_type_name}}</view>
</view>
<view class="btn">详情<uni-icons type="forward" color="#666666"></uni-icons></view>
</view>
<u-line></u-line>
<view class="bottom">
<image src="../../static/img/contract/company.png"></image>
<view class="text">
<view>主要联系人{{item.master_name}}</view>
<view @click="copyPhone(item.master_phone)">联系方式{{item.master_phone}}</view>
<view style="display: flex;">
<view class="">区县乡镇</view>
<view>{{c_address(item)}}</view>
</view>
</view>
</view>
</view> -->
<view class="personnel_list" v-for="item in companyList" :key="item.id">
<view class="cards">
<view class="cards_head" @click="navTo('/subpkg/companySign/companySign?id='+item.id)">
<text style="font-size: 32rpx">{{item.company_name}}</text>
<text>选择<u-icon style="display: inline-block;margin-left: 10rpx;" color="white"
name="arrow-right"></u-icon></text>
</view>
<view class="cards_content">
<view class="right">
<view class="" style="width: 80vw;">
<text>法人姓名 :</text>
<text> {{item.master_name}}</text>
<text style="float: right;">{{item.is_contract?"已签约":"未签约"}}</text>
</view>
<view class="">
<text>担任职务 :</text>
<text>{{item.master_position}}</text>
</view>
<view class="" @click="copyPhone(item.master_phone)">
<text>联系电话 :</text>
<text> {{item.master_phone}} </text>
</view>
<view class="">
<text>负责区域 :</text>
<text> {{c_address(item)}} </text>
</view>
</view>
</view>
</view>
</view>
<u-empty v-if="loadConfig.status=='nomore'&& companyList.length==0" text="没有更多公司"
icon="/static/img/empty/data.png"></u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view>
</view>
</template>
<script>
import { companyUnsigned } from "@/api/company.js"
import { Toast } from '@/libs/uniApi.js'
export default {
data() {
return {
loadConfig: {
page: 1,
limit: 15,
lastpage: '',
loadingText: '努力加载中',
loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~',
status: 'loadmore'
},
companyList: []
}
},
onShow() {
this.loadCompanyList();
},
onReachBottom() {
this.loadCompanyList();
},
methods: {
initLoad() {
this.loadConfig.page = 1;
this.loadConfig.status = "loadmore";
this.companyList = [];
this.loadCompanyList();
},
//
async loadCompanyList() {
if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "loading";
let res = await companyUnsigned({
page: this.loadConfig.page,
limit: this.loadConfig.limit
})
this.loadConfig.status = "loadmore"
if (res.data.data.length < this.loadConfig.limit) {
this.loadConfig.status = "nomore"
} else {
this.loadConfig.page++;
}
this.companyList = [...this.companyList, ...res.data?.data]
},
navTo(url) {
url ?
uni.navigateTo({
url: url
}) : Toast('暂未开放')
},
copyPhone(str = "", type = "号码") {
if (str) uni.setClipboardData({
data: str + "",
success: (e) => {
Toast(type + '已复制')
},
fail: (e) => {
Toast('复制失败')
}
})
},
//
c_address(company) {
let str = '';
if (company.company_type == 16) {
company?.province_name ? str += company?.province_name : null;
company?.city_name ? str += company?.city_name : null;
company?.area_name ? str += company?.area_name : null;
company?.street_name ? str += company?.street_name : null;
} else {
company?.street_name ? str += company?.street_name : null;
company?.village_name ? str += company?.village_name : null;
company?.brigade_name ? str += company?.brigade_name : null;
}
return str;
}
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
import {
companyUnsigned
} from "@/api/company.js"
import {
Toast
} from '@/libs/uniApi.js'
export default {
data() {
return {
loadConfig: {
page: 1,
limit: 15,
lastpage: '',
loadingText: '努力加载中',
loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~',
status: 'loadmore'
},
companyList: []
}
},
onShow() {
this.loadCompanyList();
},
onReachBottom() {
this.loadCompanyList();
},
methods: {
initLoad() {
this.loadConfig.page = 1;
this.loadConfig.status = "loadmore";
this.companyList = [];
this.loadCompanyList();
},
//
async loadCompanyList() {
if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "loading";
let res = await companyUnsigned({
page: this.loadConfig.page,
limit: this.loadConfig.limit
})
this.loadConfig.status = "loadmore"
if (res.data.data.length < this.loadConfig.limit) {
this.loadConfig.status = "nomore"
} else {
this.loadConfig.page++;
}
this.companyList = [...this.companyList, ...res.data?.data]
},
navTo(url) {
url ?
uni.navigateTo({
url: url
}) : Toast('暂未开放')
},
copyPhone(str = "", type = "号码") {
if (str) uni.setClipboardData({
data: str + "",
success: (e) => {
Toast(type + '已复制')
},
fail: (e) => {
Toast('复制失败')
}
})
},
//
c_address(company) {
let str = '';
if (company.company_type == 16) {
company?.province_name ? str += company?.province_name : null;
company?.city_name ? str += company?.city_name : null;
company?.area_name ? str += company?.area_name : null;
company?.street_name ? str += company?.street_name : null;
} else {
company?.street_name ? str += company?.street_name : null;
company?.village_name ? str += company?.village_name : null;
company?.brigade_name ? str += company?.brigade_name : null;
}
return str;
}
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
</script>
<style lang="scss">
.company_list {
padding-bottom: 32rpx;
// margin-top: 190rpx;
display: flex;
flex-direction: column;
align-items: center;
.company_list {
padding-bottom: 32rpx;
// margin-top: 190rpx;
display: flex;
flex-direction: column;
align-items: center;
.info_card {
width: 694rpx;
// height: 300rpx;
background: #FFFFFF;
border-radius: 21rpx 21rpx 21rpx 21rpx;
margin-top: 28rpx;
padding: 24rpx;
.top {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 28rpx;
.info_name {
font-size: 32rpx;
font-weight: 500;
color: #333333;
}
.have {
&::before {
content: "已签约";
border-radius: 14rpx;
border: 5rpx solid #5ac725;
color: #5ac725;
padding: 3rpx 6rpx;
font-size: 28rpx;
margin-right: 10rpx;
}
}
.no {
&::before {
content: "未签约";
border-radius: 14rpx;
border: 5rpx solid #f56c6c;
color: #f56c6c;
padding: 3rpx 6rpx;
font-size: 28rpx;
margin-right: 10rpx;
}
}
.info_type {
font-size: 25rpx;
font-weight: 500;
color: $theme-oa-color;
margin-top: 10rpx;
}
.btn {
flex-shrink: 0;
font-size: 25rpx;
font-weight: 400;
color: #666666;
display: flex;
align-items: center;
justify-content: right;
}
}
.bottom {
display: flex;
margin-top: 28rpx;
image {
height: 140rpx;
width: 140rpx;
margin-right: 28rpx;
}
.text {
display: flex;
flex-direction: column;
justify-content: space-between;
}
}
}
.personnel_list {
padding: 28rpx 0;
}
.cards {
margin: 0 auto;
margin-bottom: 28rpx;
width: 694rpx;
background: #ffffff;
border-radius: 30rpx;
opacity: 1;
overflow: hidden;
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
.cards_head {
padding: 28rpx;
background-color: $theme-oa-color;
color: white;
height: 100rpx;
display: flex;
justify-content: space-between;
}
.cards_content {
padding: 28rpx;
display: flex;
justify-content: space-between;
.left {
text-align: center;
// padding: 15rpx 25rpx;
padding-top: 20rpx;
width: 160rpx;
background-color: $theme-oa-color;
color: white;
border-radius: 40rpx;
.cir {
width: 120rpx;
height: 120rpx;
background-color: #ffffff;
margin-left: 25rpx;
border-radius: 120rpx;
position: relative;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
view {
margin: 10rpx 0;
text:nth-child(2) {
margin-left: 20rpx;
}
}
}
}
.u_avatar {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
// .info_card {
// width: 694rpx;
// // height: 300rpx;
// background: #FFFFFF;
// border-radius: 21rpx 21rpx 21rpx 21rpx;
// margin-top: 28rpx;
// padding: 24rpx;
// .top {
// display: flex;
// justify-content: space-between;
// align-items: center;
// margin-bottom: 28rpx;
// .info_name {
// font-size: 32rpx;
// font-weight: 500;
// color: #333333;
// }
// .have {
// &::before {
// content: "";
// border-radius: 14rpx;
// border: 5rpx solid #5ac725;
// color: #5ac725;
// padding: 3rpx 6rpx;
// font-size: 28rpx;
// margin-right: 10rpx;
// }
// }
// .no {
// &::before {
// content: "";
// border-radius: 14rpx;
// border: 5rpx solid #f56c6c;
// color: #f56c6c;
// padding: 3rpx 6rpx;
// font-size: 28rpx;
// margin-right: 10rpx;
// }
// }
// .info_type {
// font-size: 25rpx;
// font-weight: 500;
// color: $theme-oa-color;
// margin-top: 10rpx;
// }
// .btn {
// flex-shrink: 0;
// font-size: 25rpx;
// font-weight: 400;
// color: #666666;
// display: flex;
// align-items: center;
// justify-content: right;
// }
// }
// .bottom {
// display: flex;
// margin-top: 28rpx;
// image {
// height: 140rpx;
// width: 140rpx;
// margin-right: 28rpx;
// }
// .text {
// display: flex;
// flex-direction: column;
// justify-content: space-between;
// }
// }
// }
}
</style>

View File

@ -1,71 +1,74 @@
<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="navTo">确定</button>
</view>
</view>
<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="navTo">确定/查看</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad() {},
onShow() {},
methods: {
navTo(){
uni.navigateBack();
}
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
export default {
data() {
return {
}
},
onLoad() {},
onShow() {},
methods: {
navTo() {
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;
}
}
.body {
text-align: center;
</style>
.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: 100vw;
height: 84rpx;
line-height: 84rpx;
text-align: center;
background: #0022C7;
position: fixed;
bottom: 0;
opacity: 1;
color: #fff;
}
}
</style>