middleground_H5/components/baseAssistant/index.vue

1252 lines
31 KiB
Vue
Raw Normal View History

2024-09-20 15:55:17 +08:00
<template>
<view class="top-level">
<view class="subsetion">
<u-subsection
:list="list"
mode="button"
:bgColor="'#fff'"
:fontSize="14"
:activeColor="'#ffffff'"
:current="currentIndex"
@change="handelrSubSectionChange"
></u-subsection>
</view>
<view v-if="currentIndex === 0">
<slot name="main"></slot>
</view>
<view v-if="currentIndex === 1" class="approveBox">
<div class="auditWork" v-if="stepList.length > 0">
<div
v-for="(item, index) in stepList"
:key="index"
style="margin-bottom: 15px"
>
<div style="display: flex">
<div class="auditWork_left">
<div
class="auditWork_left_image"
:style="{
borderColor:
item.step < stepnum
? '#5FDA1D'
: item.step == stepnum
? '#1478F6'
: '#BBBBBB',
}"
></div>
<div
class="auditWork_left_line"
v-if="item.step != stepList.length"
></div>
</div>
<div class="auditWork_right">
<div
class="auditWork_right_title"
:class="
item.step < stepnum
? 'color1'
: item.step == stepnum
? 'color2'
: 'color3'
"
>
{{ item.nodeName }}
</div>
<div class="auditWork_right_content">
<div
v-for="(el, index) in item.list"
:key="index"
style="
display: flex;
height: 100%;
width: 50%;
align-items: center;
"
:class="
el.state != 0 && item.step <= stepnum ? 'color1' : 'color3'
"
>
<div style="margin-top: 5px">
<div
class="text"
v-if="el.headImageUrl == null"
style="font-size: 24rpx; font-weight: 400"
>
{{
el.auditPersonName
? String(el.auditPersonName).slice(-2)
: String(el.name).slice(-2)
}}
</div>
<img
class="avatar"
v-else
:src="
configData.baseUrl +
`${String(el.headImageUrl).split('/wwwroot')[1]}`
"
alt=""
/>
</div>
<div>
<div>
<span style="">{{ el.auditPersonName }}</span>
<img
class="img"
alt=""
v-if="el.state == 1"
:src="require('@/static/images/audit/1.png')"
/>
<img
class="img"
alt=""
v-if="el.state == 2"
:src="require('@/static/images/audit/2.png')"
/>
<img
style="
width: 20px;
height: 20px;
cursor: pointer;
margin-left: 6px;
"
@click="handlerUrgingClick(el.id)"
alt=""
v-if="
item.step == stepnum && el.state != 2 && el.state != 1
"
:src="require('@/static/images/audit/催办.png')"
/>
</div>
<div>
<span>{{ el.auditdate | getDate }}</span>
<span>{{ !el.state ? el.name : "" }}</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-else style="text-align: center">
<u-empty mode="data" :icon="require('@/static/images/empty.png')">
</u-empty>
</div>
</view>
<view v-if="currentIndex === 2" class="approveBox">
<div v-if="auditNote.length > 0">
<div ref="auditNote">
<div
class="auditNote"
v-for="(item, index) in auditNote"
:key="index"
>
<div class="flex">
<div
class="text"
v-if="item.headImageUrl == null"
style="font-size: 24rpx; font-weight: 400"
>
{{ String(item.auditPersonName).slice(-2) }}
</div>
<img
class="avatar"
v-else
alt=""
:src="
configData.baseUrl +
`${String(item.headImageUrl).split('/wwwroot')[1]}`
"
/>
<div class="d-flex-c">
<span>{{ item.auditPersonName }}</span>
<span style="margin-top: 5px">{{ item.auditMessage }}</span>
</div>
</div>
<div class="d-flex-c" style="align-items: flex-end">
<span>{{ item.auditdate }}</span>
<span
:style="{
color: item.stateName == '同意' ? '#1478F6' : '#F51701',
marginTop: '5px',
}"
>
{{ item.stateName }}</span
>
</div>
</div>
</div>
</div>
<div v-else style="text-align: center">
<u-empty mode="data" :icon="require('@/static/images/empty.png')">
</u-empty>
</div>
</view>
<view class="bottomPage" v-if="auditData.length > 0">
<view class="disagreeContent button" v-if="isShowDisagree">
<u-button
text="不同意"
type="error"
size="normal"
@click="showBtnGroup"
></u-button>
<u-transition :show="isShowBtnGroup" mode="fade-up">
<view class="btnDisagreeBox">
<view @click="handlerDisagreeClickEvent('continue')">继续</view>
<view @click="handlerDisagreeClickEvent('back')">回退</view>
<view @click="handlerDisagreeClickEvent('termination')">终止</view>
</view>
</u-transition>
</view>
<u-button
v-if="isShowCountersign"
text="加签"
type="primary"
size="normal"
class="button"
@click="handlerCountersignClick"
style="flex: 1"
></u-button>
<u-button
v-if="isShowAgree"
text="同意"
type="primary"
class="button"
size="normal"
@click="handlerAgreeClick"
style="flex: 1"
></u-button>
<u-button
v-if="isShowRead"
text="已读"
class="button"
type="primary"
size="normal"
@click="handlerReadClick"
style="flex: 1"
></u-button>
<u-button
v-if="isShowWithdraw"
text="撤回"
type="error"
class="button"
size="normal"
@click="handlerWithdrawClick"
style="flex: 1"
></u-button>
</view>
<u-toast ref="uToast"></u-toast>
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog
:type="msgType"
cancelText="取消"
confirmText="同意"
title="提示"
content="确认开始催办吗?"
@confirm="dialogConfirm"
></uni-popup-dialog>
</uni-popup>
<!-- 加签 -->
<u-modal
title="加签审批"
:show="countersignShow"
showCancelButton
:closeOnClickOverlay="false"
@confirm="auditAddFlow"
@cancel="countersignShow = false"
@close="countersignShow = false"
>
<u-form :model="counterSignModel" :labelStyle="{ fontSize: '14px' }">
<u-form-item
label="审核类型"
prop="auditType"
ref="item1"
:borderBottom="false"
:labelWidth="'200rpx'"
>
<u-radio-group v-model="counterSignModel.auditType">
<u-radio
shape="circle"
name="1"
label="审核"
style="margin-right: 20rpx"
></u-radio>
<u-radio shape="circle" name="2" label="抄送"></u-radio>
</u-radio-group>
</u-form-item>
<u-form-item
label="加签人员"
prop="additionalPersonnel"
ref="item1"
:borderBottom="false"
:labelWidth="'200rpx'"
@click="handlerPeopelClickEvent"
>
<u--input
placeholder="请选择人员"
suffixIcon="arrow-right"
:disabled="true"
:border="'none'"
disabledColor="#fff"
></u--input>
</u-form-item>
<view v-if="selectedListBaseinfo.length > 0" style="margin: 10rpx 0"
>已关联人员</view
>
<view class="flex" style="flex-wrap: wrap">
<view
class="select-item"
v-for="(item, index) in selectedListBaseinfo"
:key="index"
>
<view class="name">
<text>{{ item.p_PersonName }}</text>
</view>
<view class="close" @click.stop="removeSelectedItem(item)">
<uni-icons type="closeempty" size="16" color="#999"></uni-icons>
</view>
</view>
</view>
</u-form>
<u-toast ref="countersignToast"></u-toast>
</u-modal>
<!-- 不同意 -->
<u-modal
:title="disagreeTitle"
:show="disagreeModalShow"
showCancelButton
closeOnClickOverlay
@confirm="disagreeConfirm"
@cancel="disagreeModalShow = false"
@close="disagreeModalShow = false"
>
<view class="reasonBox">
<text>请输入{{ disagreeTitle }}理由</text>
<u--textarea
v-model="disagreeReason"
placeholder="请输入..."
></u--textarea>
<u-toast ref="disagreeToast"></u-toast>
</view>
</u-modal>
<!-- 同意 -->
<u-modal
title="同意"
:show="agreeModalShow"
showCancelButton
closeOnClickOverlay
@confirm="agreeAudit"
@cancel="agreeModalShow = false"
@close="agreeModalShow = false"
>
<view class="reasonBox">
<text>请输入同意理由</text>
<u--textarea
v-model="agreeTextarea"
placeholder="请输入..."
></u--textarea>
</view>
</u-modal>
<!-- 已读 -->
<u-modal
title="已读"
:show="readShow"
showCancelButton
closeOnClickOverlay
@confirm="readConfirm"
@cancel="readShow = false"
@close="readShow = false"
>
<view class="reasonBox">
<text>请输入已读理由</text>
<u--textarea
v-model="readTextarea"
placeholder="请输入..."
></u--textarea>
</view>
</u-modal>
<!-- 撤回 -->
<u-modal
title="撤回"
:show="withdrawShow"
showCancelButton
closeOnClickOverlay
@confirm="withdrawConfirm"
@cancel="withdrawShow = false"
@close="withdrawShow = false"
>
<view class="reasonBox">
<text>请输入撤回理由</text>
<u--textarea
v-model="withdrawTextarea"
placeholder="请输入..."
></u--textarea>
</view>
</u-modal>
<u-loading-page
:loading="maskLoading"
:loadingText="'正在提交'"
></u-loading-page>
</view>
</template>
<script>
import localStorage from "@/utils/localStorage";
import {
getAuditList,
getAuditNote,
auditUrging,
audit,
auditAddFlow,
getAuditBtn,
removeAudit,
read,
} from "@/api/system/audit.js";
import config from "@/config";
export default {
props: {
billid: {
type: String,
required: "",
},
billKindID: {
type: String,
required: "",
},
auditType: {
type: String,
required: "",
},
},
data() {
return {
maskLoading: false,
msgType: "warn",
currentIndex: 0,
list: [
{
name: "审批详情",
},
{
name: "审批流程",
},
{
name: "审批记录",
},
],
stepList: [], //审批流程
stepnum: "",
configData: {},
auditNote: [], //审批记录
urgingBillid: "", //催办ID
countersignShow: false,
counterSignModel: {
auditType: "1",
},
isShowBtnGroup: false,
disagreeModalShow: false,
disagreeReason: "",
disagreeTitle: "",
personIDs: [],
personNames: [],
agreeModalShow: false,
agreeTextarea: "",
buttonData: [],
readShow: false,
readTextarea: "",
withdrawShow: false,
withdrawTextarea: "",
isShowAgree: false,
isShowDisagree: false,
isShowRead: false,
isShowCountersign: false,
isShowWithdraw: false,
auditData: [],
};
},
onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
},
watch: {
selectedListBaseinfo: {
deep: true,
handler(newVal, oldVal) {
if (newVal.length > 0) {
newVal.forEach((item) => {
this.personIDs.push(item.p_PersonID);
this.personNames.push(item.p_PersonName);
});
}
},
},
// 同意
agreeModalShow: {
deep: true,
handler(newVal, oldVal) {
if (newVal == false) {
this.agreeTextarea = "";
}
},
},
// 已读
readShow: {
deep: true,
handler(newVal, oldVal) {
if (newVal == false) {
this.readTextarea = "";
}
},
},
// 撤回
withdrawShow: {
deep: true,
handler(newVal, oldVal) {
if (newVal == false) {
this.withdrawTextarea = "";
}
},
},
// 不同意
disagreeModalShow: {
deep: true,
handler(newVal, oldVal) {
if (newVal == false) {
this.disagreeReason = "";
}
},
},
// 加签
countersignShow: {
deep: true,
handler(newVal, oldVal) {
if (newVal == false) {
this.counterSignModel.auditType = "1";
this.$store.commit("SET_SELECTSDATA", []);
}
},
},
},
computed: {
selectedListBaseinfo() {
return this.$store.getters.selectsdata || [];
},
},
filters: {
getDate(value) {
if (!value) {
return "";
}
return value.split(".")[0].replace("T", " ");
},
getDate1(value) {
if (!value) {
return "";
}
return value.split("T")[0];
},
},
mounted() {
this.init();
},
methods: {
init() {
this.isShowAgree = false;
this.isShowDisagree = false;
this.isShowRead = false;
this.isShowCountersign = false;
this.isShowWithdraw = false;
this.configData = config;
if (this.auditType == "audit") {
this.getAuditBtn();
}
if (
this.billid != "" &&
this.billid != null &&
this.billid != undefined &&
this.billid != "null" &&
this.billid != "undefined" &&
this.billKindID != "" &&
this.billKindID != null &&
this.billKindID != undefined &&
this.billKindID != "null" &&
this.billKindID != "undefined"
) {
this.getAuditList();
this.getAuditNote();
}
this.maskLoading = false;
},
//获取审批权限按钮
async getAuditBtn() {
let params = {
billID: this.billid,
billKindID: this.billKindID,
};
const res = await getAuditBtn(params);
let arr = res.data[0];
this.auditData = arr;
arr.forEach((el) => {
if (el == "3") {
//同意
this.isShowAgree = true;
} else if (el == "4") {
//不同意
this.isShowDisagree = true;
} else if (el == "5") {
//已读
this.isShowRead = true;
} else if (el == "6") {
//加签
this.isShowCountersign = true;
} else if (el == "7") {
//撤回
this.isShowWithdraw = true;
} else {
}
});
},
resetAudit() {
this.getAuditList();
this.getAuditNote();
},
showBtnGroup() {
this.isShowBtnGroup = !this.isShowBtnGroup;
},
handlerDisagreeClickEvent(type) {
// 继续
if (type == "continue") {
this.disagreeTitle = "继续";
this.disagreeModalShow = true;
} else if (type == "termination") {
//终止
this.disagreeTitle = "终止";
this.disagreeModalShow = true;
} else if (type == "back") {
//退回
this.disagreeTitle = "退回";
this.disagreeModalShow = true;
} else {
//do something
}
this.isShowBtnGroup = false;
},
disagreeConfirm() {
if (
this.disagreeReason == "" ||
this.disagreeReason == null ||
this.disagreeReason == undefined
) {
this.$refs.disagreeToast.show({
type: "warning",
message: "请输入" + this.disagreeTitle + "理由!",
});
return;
}
this.disagreeModalShow = false;
this.maskLoading = true;
setTimeout(() => {
this.maskLoading = false;
}, 5000);
//审批流程控制2不同意-继续3不同意-退回,不同意-终止)
if (this.disagreeTitle == "继续") {
this.handleClickAgree("2");
}
if (this.disagreeTitle == "终止") {
this.handleClickAgree("4");
}
if (this.disagreeTitle == "退回") {
this.handleClickAgree("3");
}
},
//审核不同意
async handleClickAgree(type) {
const res = await audit({
billID: this.billid,
billKindID: this.billKindID,
auditState: type,
agree: "0", //审批结果1同意0不同意
auditMessage: this.disagreeReason,
});
this.maskLoading = false;
if (res.success == true) {
this.$refs.disagreeToast.show({
type: "success",
message: "审核成功!",
});
this.init();
this.disagreeReason = "";
}
},
// 加签选择人员
handlerPeopelClickEvent() {
let url = "/components/basePeople/index";
this.$tab.navigateTo(url);
},
// 加签删除
removeSelectedItem(row) {
let arrData = this.selectedListBaseinfo.filter(
(item, index) => item.p_PersonID !== row.p_PersonID
);
this.$store.commit("SET_SELECTSDATA", arrData);
},
// 确定加签
async auditAddFlow() {
this.countersignShow = false;
this.maskLoading = true;
setTimeout(() => {
this.maskLoading = false;
}, 5000);
const res = await auditAddFlow({
billID: this.billid,
auditType: this.counterSignModel.auditType, //加签节点审核类型1、审核 2抄送
personIDs: this.personIDs.join(), //加签人ID集合多个人英文逗号隔开
personNames: this.personNames.join(), //加签人姓名集合,多个人英文逗号隔开
});
this.maskLoading = false;
if (res.success == "true") {
this.$refs.uToast.show({
type: "success",
message: "加签成功",
});
}
this.counterSignModel.auditType = "1";
this.$store.commit("SET_SELECTSDATA", []);
this.getAuditList();
},
handelrSubSectionChange(index) {
this.currentIndex = index;
},
//获取单据审批流程
async getAuditList() {
const res = await getAuditList({
billID: this.billid,
});
this.stepnum = res.data[0];
let stepList = res.data[1];
stepList.forEach((el) => {
if (res.data[2] && res.data[2].length > 0) {
res.data[2].forEach((item) => {
if (el.step == item.step) {
if (!el.list) {
el.list = [];
}
el.list.push(item);
el.list = Array.from(new Set(el.list));
}
});
}
if (res.data[3] && res.data[3].length) {
res.data[3].forEach((item) => {
if (el.step == item.step) {
if (!el.list) {
el.list = [];
}
el.list.push(item);
el.list = Array.from(new Set(el.list));
}
});
}
});
this.stepList = stepList;
},
//获取单据审批记录
async getAuditNote() {
const res = await getAuditNote({
billID: this.billid,
});
this.auditNote = res.data[0];
},
//催办
handlerUrgingClick(id) {
this.$refs.alertDialog.open();
this.urgingBillid = id;
},
async dialogConfirm(id) {
auditUrging({ id: id }).then((res) => {
if (res.code == 1) {
this.$refs.uToast.show({
type: "success",
message: res.message,
});
}
});
},
handlerCountersignClick() {
this.countersignShow = true;
},
// 同意
handlerAgreeClick() {
this.agreeModalShow = true;
},
async agreeAudit() {
this.agreeModalShow = false;
this.maskLoading = true;
setTimeout(() => {
this.maskLoading = false;
}, 5000);
const res = await audit({
billID: this.billid,
billKindID: this.billKindID,
auditState: "1", //审批流程控制2不同意-继续3不同意-退回,不同意-终止)
agree: "1", //审批结果1同意0不同意
auditMessage: this.agreeTextarea, //审批回复
});
this.maskLoading = false;
if (res.success == "true") {
this.$refs.uToast.show({
type: "success",
message: res.message,
});
this.init();
this.agreeTextarea = "";
}
},
// 已读
handlerReadClick() {
this.readShow = true;
},
async readConfirm() {
this.readShow = false;
this.maskLoading = true;
setTimeout(() => {
this.maskLoading = false;
}, 5000);
const res = await read({
billID: this.billid,
auditMessage: this.readTextarea,
});
this.maskLoading = false;
if (res.code == 1) {
this.$refs.uToast.show({
type: "success",
message: "已读成功",
});
this.init();
this.readTextarea = "";
}
},
// 撤回
handlerWithdrawClick() {
this.withdrawShow = true;
},
async withdrawConfirm() {
this.withdrawShow = false;
this.maskLoading = true;
setTimeout(() => {
this.maskLoading = false;
}, 5000);
const res = await removeAudit({
billID: this.billid,
billKindID: this.billKindID,
auditMessage: this.withdrawTextarea, //审批回复
});
if (res.success == "true") {
this.maskLoading = false;
this.$refs.uToast.show({
type: "success",
message: "撤回审核成功",
});
this.init();
this.withdrawTextarea = "";
}
},
},
};
</script>
<style scoped lang="scss">
::v-deep .u-modal__title {
font-size: 15px;
font-weight: bold;
color: #000000;
text-align: center;
padding-top: 10px;
}
.select-item {
margin: 10rpx 10rpx 10rpx 0;
padding: 10rpx 20rpx;
max-width: auto;
height: auto;
background-color: #eaeaea;
border-radius: 10rpx;
color: #333;
display: flex;
align-items: center;
font-size: 28rpx;
.name {
flex: 1;
padding-right: 10rpx;
font-size: 13px;
}
.close {
width: 18px;
height: 18px;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
}
.bottomPage {
width: 100%;
position: fixed;
bottom: 0;
padding: 20rpx 30rpx 30rpx 30rpx;
background-color: #fff;
margin-top: 15rpx;
display: flex;
border-top: 8rpx solid #f1f1f1;
.button:last-child {
margin-right: 0; /* 默认右间隙 */
}
.button:not(:last-child) {
margin-right: 10px; /* 中间按钮的右间隙 */
}
}
.plusButton {
width: 100rpx;
height: 100rpx;
background: #3c9cff;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
bottom: 200rpx;
right: 28rpx;
}
.d-flex-c {
display: flex;
flex-direction: column;
}
.disagreeContent {
position: relative;
flex: 1;
}
.btnDisagreeBox {
position: absolute;
bottom: 44px;
width: 100%;
background: #ffffff;
border: 1px solid #f1f1f1;
border-radius: 8px 8px 0 0;
text-align: center;
view {
padding: 26rpx 0;
}
view:nth-child(2) {
border-top: 1px solid #f1f1f1;
border-bottom: 1px solid #f1f1f1;
}
}
.reasonBox {
width: 100%;
text {
display: inline-block;
font-size: 14px;
color: #979797;
margin-bottom: 15px;
}
}
.top-level {
.listContent {
margin: 20rpx 24rpx 0 24rpx;
}
.swipe-action-item {
margin: 20rpx 0 20rpx 0;
}
.listData {
background-color: #fff;
border-radius: 16rpx;
padding: 20rpx 20rpx;
.head {
height: 64rpx;
border-bottom: 1px solid #f7f7f7;
justify-content: space-between;
}
.head {
display: flex;
flex-direction: column;
color: #333;
margin-bottom: 16rpx;
}
.head .itembox {
font-size: 32rpx;
font-weight: 600;
display: flex;
justify-content: space-between;
align-items: center;
.levelbox {
display: flex;
justify-content: center;
align-items: center;
border: 4rpx solid #1e9fff;
border-radius: 50%;
width: 40rpx;
height: 40rpx;
color: #1e9fff;
font-weight: 700;
font-size: 28rpx;
margin: 0 10rpx;
}
}
.head .itemName {
font-size: 24rpx;
color: #999999;
margin-left: 10px;
font-weight: 400;
text {
color: #fff;
padding: 4rpx 8rpx;
}
}
.state {
margin: 25rpx 0;
}
.time {
margin: 24rpx 0 0;
font-size: 28rpx;
flex-wrap: wrap;
line-height: 1.5;
text {
display: inline-block;
font-size: 28rpx;
color: #979797;
margin-bottom: 30rpx;
}
view {
height: 60rpx;
width: 50%;
}
view:nth-child(4) {
text:nth-child(2) {
font-size: 28rpx;
}
}
}
.content {
line-height: 1.5;
font-size: 28rpx;
margin-bottom: 20rpx;
text {
font-size: 28rpx;
color: #979797;
}
}
}
.noData {
text-align: center;
margin-top: 10px;
}
.Page_change {
width: 100%;
background-color: #fff;
padding: 10rpx 20rpx 20rpx 20rpx;
position: fixed;
top: 0;
z-index: 1;
.buttom {
justify-content: space-between;
padding-top: 30rpx;
::v-deep .u-button--circle {
width: 30%;
}
}
.input_box {
margin-top: 20rpx;
::v-deep .u-input--radius:nth-child(1) {
margin-right: 20rpx;
}
}
}
}
.approveBox {
padding: 0 20rpx 160rpx;
}
.auditWork {
background: #fcfcfc;
border-radius: 12rpx;
border: 2rpx solid #f1f1f1;
padding: 20rpx 20rpx;
display: flex;
flex-direction: column;
justify-content: flex-start;
.auditWork_left {
margin-top: 8rpx;
text-align: center;
.auditWork_left_image {
width: 16rpx;
height: 16rpx;
line-height: 16rpx;
border-radius: 50%;
text-align: center;
z-index: 10;
border-width: 4rpx;
border-style: solid;
border-color: #bbbbbb;
}
.auditWork_left_line {
background-color: #e1e1e1;
width: 1rpx;
height: 103%;
margin: 0 auto;
}
}
.auditWork_right {
width: 96%;
.auditWork_right_title {
margin-left: 20rpx;
font-weight: 600;
}
.auditWork_right_content {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
align-items: center;
padding: 10rpx 20rpx;
font-size: 24rpx;
.avatar {
width: 70rpx;
height: 70rpx;
border-radius: 50%;
margin-right: 24rpx;
}
.text {
width: 70rpx;
height: 70rpx;
margin-right: 10rpx;
line-height: 70rpx;
color: #fff;
border-radius: 50%;
text-align: center;
background: #00aaff;
}
.img {
margin-top: 12rpx;
margin-right: 60rpx;
}
}
}
.left {
// background: #dcdcdc;
}
.right {
// background: #333333bb;
}
.on {
// background: #2a6aff;
}
.color1 {
width: 100%;
line-height: 40rpx;
height: 40rpx;
// font-family: PingFangSC;
color: #999999;
}
.color2 {
// font-family: PingFangSC;
color: #1478f6;
}
.color3 {
width: 100%;
height: 40rpx;
line-height: 40rpx;
// font-family: PingFangSC;
color: #333333d9;
font-weight: 600;
}
}
.auditNote {
display: flex;
place-content: space-around space-between;
margin-bottom: 8px;
background: #fcfcfc;
border: 1px solid #f1f1f1;
font-size: 13px;
padding: 15px 10px;
border-radius: 5px;
justify-content: space-between;
align-items: center;
.avatar {
width: 70rpx;
height: 70rpx;
border-radius: 50%;
margin-right: 24rpx;
}
.text {
width: 70rpx;
height: 70rpx;
margin-right: 10rpx;
line-height: 70rpx;
color: #fff;
border-radius: 50%;
text-align: center;
background: #00aaff;
}
}
::v-deep .subsetion {
// position: fixed;
// top: 0;
// z-index: 1;
width: 100%;
padding: 10rpx;
background: #fff;
}
::v-deep .subsetion .u-subsection--button {
height: 70rpx;
margin-top: 10px;
}
::v-deep .u-subsection--button__bar {
background-color: #3c9cff;
}
</style>