第二版页面样式修改

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="personnel_list" v-if="!skeleton">
<view class="cards"> <view class="cards">
<view class="cards_head"> <view class="cards_head">
<text style="font-size: 32rpx">公司基本信息</text> <text style="font-size: 32rpx">公司基本信息</text>
</view> </view>
<view class="cards_content"> <view class="cards_content">
<view class="right"> <view class="right">
@ -58,17 +58,46 @@
</view> </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>
</view> </view>
<!-- 合同 -->
<view class="item" v-show="skeleton||contract.status"> <view class="item" v-show="skeleton||contract.status">
<u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%" <u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%"
rowsHeight="56"></u-skeleton> rowsHeight="56"></u-skeleton>
<!--
<block v-if="!skeleton"> <block v-if="!skeleton">
<view class="title">电子合同</view> <view class="title">电子合同</view>
<view class="card"> <view class="card">
@ -80,34 +109,94 @@
<view class="info_item">合同编号{{contract.contract_no}}</view> <view class="info_item">合同编号{{contract.contract_no}}</view>
</view> </view>
</view> </view>
<u-line v-if="contract.contract_no" color="#999999FF" style="margin: 31rpx 0;"></u-line> <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="contract" v-if="contract.contract_no">
<view class="left"> <view class="left">
<image class="contract_img" src="../../static/img/contract/pdf.png"></image> <image class="contract_img" src="../../static/img/contract/pdf.png"></image>
<view class="text"> <view class="text">
<view class="name">合同</view> <view class="name">合同</view>
<view> <view>
<!-- <text class="nickname">张郭郭</text> -->
<text>{{contract.create_time}}</text> <text>{{contract.create_time}}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="right" @click="navTo(contract.contract_no)"> <view class="right" @click="navTo(contract.contract_no)">
<!-- <image class="icon"></image> -->
<uni-icons type="paperclip" color="#3274F9"></uni-icons> <uni-icons type="paperclip" color="#3274F9"></uni-icons>
<view>查看</view> <view>查看</view>
</view> </view>
</view> </view>
</view> </view>
</block> </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>
<!--
<view class="item"> <view class="item">
<u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%" <u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%"
rowsHeight="56"></u-skeleton> rowsHeight="56"></u-skeleton>
<block v-if="!skeleton"> <block v-if="!skeleton">
<view class="title"> <view class="title">
<text>联系人管理</text> <text>联系人管理</text>
<!-- <view>新增</view> -->
</view> </view>
<view class="card"> <view class="card">
<view class="one"> <view class="one">
@ -145,9 +234,12 @@
</block> </block>
</view> </view>
-->
<view class="item"> <view class="item">
<u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%" <u-skeleton :loading="skeleton" :animate="true" title rows="2" rows-width="100%"
rowsHeight="56"></u-skeleton> rowsHeight="56"></u-skeleton>
<!--
<block v-if="!skeleton"> <block v-if="!skeleton">
<view class="title">资质信息</view> <view class="title">资质信息</view>
<view class="image_box" style="background-color: #fff;border-radius: 7px 7px 7px 7px;"> <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> <u-loading-icon color="#333"></u-loading-icon>
</template> </template>
</u--image> </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> </view>
</block> </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>
</view> </view>
</template> </template>
@ -329,7 +454,6 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.personnel_list { .personnel_list {
padding: 28rpx 0; padding: 28rpx 0;
margin-bottom: 130rpx;
.cards { .cards {
margin: 0 auto; margin: 0 auto;
@ -381,8 +505,11 @@
justify-content: space-between; justify-content: space-between;
view { view {
margin-bottom: 10rpx;
text:nth-child(2) { text:nth-child(2) {
margin-left: 20rpx; margin-left: 20rpx;
} }
} }
} }
@ -396,10 +523,75 @@
transform: translate(-50%, -50%); 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 { .item {
padding: 32rpx 28rpx;
padding-top: 0; padding-top: 0;
&:nth-child(1) { &: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 { .image_box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

View File

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

View File

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

View File

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

View File

@ -1,210 +1,328 @@
<template> <template>
<view class=""> <view class="">
<view class="company_list"> <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_card" v-for="item in companyList" :key="item.id">
<view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view> <view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)">
<view class="info_type">{{item.company_type_name}}</view> <view>
</view> <view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view>
<view class="btn">详情<uni-icons type="forward" color="#666666"></uni-icons></view> <view class="info_type">{{item.company_type_name}}</view>
</view> </view>
<u-line></u-line> <view class="btn">详情<uni-icons type="forward" color="#666666"></uni-icons></view>
<view class="bottom"> </view>
<image src="../../static/img/contract/company.png"></image> <u-line></u-line>
<view class="text"> <view class="bottom">
<view>主要联系人{{item.master_name}}</view> <image src="../../static/img/contract/company.png"></image>
<view @click="copyPhone(item.master_phone)">联系方式{{item.master_phone}}</view> <view class="text">
<view style="display: flex;"> <view>主要联系人{{item.master_name}}</view>
<view class="">区县乡镇</view> <view @click="copyPhone(item.master_phone)">联系方式{{item.master_phone}}</view>
<view>{{c_address(item)}}</view> <view style="display: flex;">
</view> <view class="">区县乡镇</view>
<!-- <view>片区经理</view> --> <view>{{c_address(item)}}</view>
</view> </view>
</view>
</view> </view>
<u-empty v-if="loadConfig.status=='nomore'&& companyList.length==0" text="没有更多公司" </view>
icon="/static/img/empty/data.png"></u-empty> </view> -->
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view> <view class="personnel_list" v-for="item in companyList" :key="item.id">
</view> <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> </template>
<script> <script>
import { companyUnsigned } from "@/api/company.js" import {
import { Toast } from '@/libs/uniApi.js' companyUnsigned
export default { } from "@/api/company.js"
data() { import {
return { Toast
loadConfig: { } from '@/libs/uniApi.js'
page: 1, export default {
limit: 15, data() {
lastpage: '', return {
loadingText: '努力加载中', loadConfig: {
loadmoreText: '轻轻上拉', page: 1,
nomoreText: '我也是有底线的~~', limit: 15,
status: 'loadmore' lastpage: '',
}, loadingText: '努力加载中',
companyList: [] loadmoreText: '轻轻上拉',
} nomoreText: '我也是有底线的~~',
}, status: 'loadmore'
onShow() { },
this.loadCompanyList(); companyList: []
}, }
onReachBottom() { },
this.loadCompanyList(); onShow() {
}, this.loadCompanyList();
methods: { },
initLoad() { onReachBottom() {
this.loadConfig.page = 1; this.loadCompanyList();
this.loadConfig.status = "loadmore"; },
this.companyList = []; methods: {
this.loadCompanyList(); initLoad() {
}, this.loadConfig.page = 1;
// this.loadConfig.status = "loadmore";
async loadCompanyList() { this.companyList = [];
if (this.loadConfig.status == "nomore") return; this.loadCompanyList();
this.loadConfig.status = "loading"; },
let res = await companyUnsigned({ //
page: this.loadConfig.page, async loadCompanyList() {
limit: this.loadConfig.limit if (this.loadConfig.status == "nomore") return;
}) this.loadConfig.status = "loading";
this.loadConfig.status = "loadmore" let res = await companyUnsigned({
if (res.data.data.length < this.loadConfig.limit) { page: this.loadConfig.page,
this.loadConfig.status = "nomore" limit: this.loadConfig.limit
} else { })
this.loadConfig.page++; this.loadConfig.status = "loadmore"
} if (res.data.data.length < this.loadConfig.limit) {
this.companyList = [...this.companyList, ...res.data?.data] this.loadConfig.status = "nomore"
}, } else {
navTo(url) { this.loadConfig.page++;
url ? }
uni.navigateTo({ this.companyList = [...this.companyList, ...res.data?.data]
url: url },
}) : Toast('暂未开放') navTo(url) {
}, url ?
copyPhone(str = "", type = "号码") { uni.navigateTo({
if (str) uni.setClipboardData({ url: url
data: str + "", }) : Toast('暂未开放')
success: (e) => { },
Toast(type + '已复制') copyPhone(str = "", type = "号码") {
}, if (str) uni.setClipboardData({
fail: (e) => { data: str + "",
Toast('复制失败') 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; c_address(company) {
company?.area_name ? str += company?.area_name : null; let str = '';
company?.street_name ? str += company?.street_name : null; if (company.company_type == 16) {
} else { company?.province_name ? str += company?.province_name : null;
company?.street_name ? str += company?.street_name : null; company?.city_name ? str += company?.city_name : null;
company?.village_name ? str += company?.village_name : null; company?.area_name ? str += company?.area_name : null;
company?.brigade_name ? str += company?.brigade_name : null; company?.street_name ? str += company?.street_name : null;
} } else {
return str; company?.street_name ? str += company?.street_name : null;
} company?.village_name ? str += company?.village_name : null;
}, company?.brigade_name ? str += company?.brigade_name : null;
onPullDownRefresh() { }
uni.stopPullDownRefresh() return str;
} }
} },
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
.company_list { .company_list {
padding-bottom: 32rpx; padding-bottom: 32rpx;
// margin-top: 190rpx; // margin-top: 190rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
.info_card { .personnel_list {
width: 694rpx; padding: 28rpx 0;
// 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;
}
}
}
} .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> </style>

View File

@ -1,71 +1,74 @@
<template> <template>
<view class=""> <view class="">
<view class="body"> <view class="body">
<image class="icon" src="../../static/img/contract/ok_b.png"></image> <image class="icon" src="../../static/img/contract/ok_b.png"></image>
<view class="text">合同生成提交成功</view> <view class="text">合同生成提交成功</view>
<view class="tips"> <view class="tips">
<view>您的签约请求已提交正在生成合同</view> <view>您的签约请求已提交正在生成合同</view>
<view>请耐心等待合同生成完毕后将会以短信方式通知您</view> <view>请耐心等待合同生成完毕后将会以短信方式通知您</view>
</view> </view>
<button class="btn" @click="navTo">确定</button> <button class="btn" @click="navTo">确定/查看</button>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
} }
}, },
onLoad() {}, onLoad() {},
onShow() {}, onShow() {},
methods: { methods: {
navTo(){ navTo() {
uni.navigateBack(); uni.navigateBack();
} }
}, },
onPullDownRefresh() { onPullDownRefresh() {
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
} }
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.body{ .body {
text-align: center; 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;
}
}
.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> </style>