hldy_app_mini/pages/procurement/common/toryitem.vue

964 lines
22 KiB
Vue
Raw Normal View History

2025-12-12 14:41:44 +08:00
<template>
2026-02-28 17:31:05 +08:00
<view @tap="onTap">
2025-12-12 14:41:44 +08:00
<scroll-view scroll-y="true" class="itembox" scroll-with-animation @scrolltolower="scrolltolower()"
enable-back-to-top enable-flex :scroll-top="scrolltop" @scroll="scroll">
2026-03-03 14:51:42 +08:00
<!-- <defaultr cont="暂无数据" v-if="pddlist.length==0 && listflag"
style="position: absolute;width: 10vw;height: 10vw;"></defaultr> -->
<view class="all-nomessage" v-if="pddlist.length==0 && listflag">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
2026-02-28 17:31:05 +08:00
<view class="items guodu" v-for="(v,i) in pddlist" :key='i'
:style="isbottom&&v.zk?{top: `-390rpx !important`,transition: `.4s !important`}:{transition: `.4s !important`}"
:class="{'itembord0':v.zk==true,'itembord1':v.zk==false,'dczk':v.dczk==true&&v.zk==true,'dczks':v.dczk==true&&v.zk==false}">
2025-12-12 14:41:44 +08:00
<view class="speitem guodu">
<view class="imgs">
2025-12-12 17:30:33 +08:00
<image :src="v?.materialImg?serverUrl+v?.materialImg:'/static/index/procurement/k.png'"
2025-12-12 14:41:44 +08:00
mode="aspectFill">
</image>
</view>
<view class="cardp">
2025-12-12 17:30:33 +08:00
<view v-if="v.categoryName">{{v.categoryName}}</view>
<view v-if="v.typeName">{{v.typeName}}</view>
2026-02-28 17:31:05 +08:00
<view v-if="v.medicationName">{{v.medicationName}}</view>
2025-12-12 14:41:44 +08:00
</view>
</view>
<view class="wuli">
2025-12-12 17:30:33 +08:00
<view class="tite">{{v?.materialName}}</view>
2025-12-12 14:41:44 +08:00
<view class="cot">
<text>物料编码</text>
2025-12-12 17:30:33 +08:00
{{v?.materialNo}}
2025-12-12 14:41:44 +08:00
</view>
<view class="cot">
<text>物料单位</text>
2025-12-12 17:30:33 +08:00
{{v?.materialUnits}}
2025-12-12 14:41:44 +08:00
</view>
2026-02-28 17:31:05 +08:00
<view class="cot"
style="white-space: nowrap;display: block;overflow: hidden;text-overflow: ellipsis;height: 1.7vw;">
2026-02-10 17:27:00 +08:00
<text style="display: inline-block;">规格型号</text>
<!-- <text style="margin-left: 10rpx;color: black;"> -->
2026-02-28 17:31:05 +08:00
{{v?.specificationModel}}
2026-02-10 17:27:00 +08:00
<!-- </text> -->
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
</view>
<view class="wltwo">
<view>
2025-12-12 17:30:33 +08:00
<view>{{v?.dqkcsl}}</view>
2025-12-12 14:41:44 +08:00
<text>库存数量</text>
</view>
<view class="dot">
2025-12-12 17:30:33 +08:00
<view style="text-align: right;">{{v?.pdsl?v?.pdsl:'--'}}</view>
2026-01-12 17:20:37 +08:00
<text style="text-align: right;">盘点数量</text>
2025-12-12 14:41:44 +08:00
</view>
</view>
</view>
<view class="chae">
2025-12-12 17:30:33 +08:00
<!-- pdType 1:b/ 2:r -->
2026-02-28 17:31:05 +08:00
<view :class="{b:v?.pdType==1,r:v?.pdType==2&&v?.cesl>0}">
{{v?.pdType==2&&v?.cesl>0?'-':''}}{{v?.cesl!=null?v?.cesl:'--'}}
</view>
<text>差额</text>
2025-12-12 14:41:44 +08:00
</view>
<view class="pandian" @click="zhankai(v,i)">
2026-02-28 17:31:05 +08:00
<image :src="v.zk?'/static/index/procurement/pd1.png':'/static/index/procurement/pd0.png'"
mode="aspectFill" v-if="v.pdType==null||v.pdType==''||v.pdType == 3"></image>
<image :src="v.zk?'/static/index/procurement/pd5.png':'/static/index/procurement/pd2.png'"
mode="aspectFill" v-if="v.pdType == 1"></image>
<image :src="v.zk?'/static/index/procurement/pd4.png':'/static/index/procurement/pd3.png'"
mode="aspectFill" v-if="v.pdType == 2"></image>
2025-12-12 14:41:44 +08:00
</view>
<view class="tan guodu" :class="v.zk?'':'itemhei0'">
<view class="tbox guodu" :class="v.zk?'':'itemhei0'" :style="v.zk?'':'overflow: hidden'">
2026-02-28 17:31:05 +08:00
<torytor :show="v.yczk" :tb="v.dqkcsl" @pddjjnum="pddjjnum" :pdsl="v.pdsl" :idex="i"
:pddType='pddType'></torytor>
2025-12-12 14:41:44 +08:00
<view class="bpq" v-show="v.yczk">
<view class="bp b" @click="v.bz = !v.bz;v.pz = false">
<image src="/static/index/procurement/th.png" mode="aspectFill"></image>
备注
2025-12-15 17:13:43 +08:00
<text :class="{r:v.pdType == 2&&v?.cesl>0,g:v.pdType == 1}" v-if="v.content">1</text>
2025-12-12 14:41:44 +08:00
</view>
<view class="bp p" @click="v.pz = !v.pz;v.bz = false">
<image src="/static/index/procurement/xj.png" mode="aspectFill"></image>
拍照
2026-02-28 17:31:05 +08:00
<text :class="{r:v.pdType == 2&&v?.cesl>0,g:v.pdType == 1}"
v-if="v.picPatharr?.length>0">{{v?.picPatharr?.length}}</text>
2025-12-12 14:41:44 +08:00
</view>
2026-02-28 17:31:05 +08:00
<view class="qued" @click="config(v,i)" v-if="pddType=='1'">
2025-12-12 14:41:44 +08:00
确定
</view>
<view class="triangle-leftbz" v-if="v.bz">
<image src="/static/index/procurement/jb.png" mode="aspectFill"></image>
</view>
<view class="triangle-leftpz" v-if="v.pz">
<image src="/static/index/procurement/jb.png" mode="aspectFill"></image>
</view>
<view class="gray-bgc guodu" :class="v.bz?'':'itemhei0'">
<view class="textare" v-if="v.bz">
2026-02-28 17:31:05 +08:00
<textarea v-model="v.content" placeholder="请输入备注" maxlength="200"
:disabled="pddType!='1'"></textarea>
2025-12-12 14:41:44 +08:00
</view>
<view class="submit" v-if="v.bz">
2025-12-15 17:13:43 +08:00
<view @click="v.bz = false">{{pddType=='1'?'取消':'关闭'}}</view>
2026-02-28 17:31:05 +08:00
<view @click="v.bz = false" v-if="pddType=='1'">确定</view>
2025-12-12 14:41:44 +08:00
</view>
</view>
<view class="gray-pgc guodu" :class="v.pz?'':'itemhei0'">
<view class="pztit" v-if="v.pz">拍照</view>
2026-03-02 17:24:43 +08:00
<scroll-view scroll-x class="scrollbgc">
<view class="zpj" v-if="v.pz">
<view class="zpk" v-for="(p,o) in v?.picPatharr" :key="o"
@click="previewImage(v,p,o)">
<image :src="serverUrl+p" mode="aspectFill"></image>
<view @click.stop="open=1;del(v,o)">
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
<image src="/static/index/keyimg/deletebutton.png" mode="aspectFill"
style="width: 75%;height: 70%;"></image>
</view>
2025-12-12 14:41:44 +08:00
</view>
2026-03-03 14:51:42 +08:00
<view class="clkpz" @click="uplod(v,i)"
v-if="v.picPatharr?.length<6&&pddType == 1">
2026-03-02 17:24:43 +08:00
<image src="/static/index/procurement/xjpz.png" mode="aspectFill"></image>
<text>点击拍照上传 </text>
</view>
<defaultr cont="暂无图片" v-if="v?.picPatharr.length==0&&pddType!='1'"
style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
2025-12-12 14:41:44 +08:00
</view>
2026-03-02 17:24:43 +08:00
</scroll-view>
2026-03-03 14:51:42 +08:00
<view class="submit" v-if="v.pz" style="height: 3.5vw;">
2025-12-15 17:13:43 +08:00
<view @click="v.pz = false">{{pddType=='1'?'取消':'关闭'}}</view>
2026-02-28 17:31:05 +08:00
<view v-if="pddType=='1'" @click="v.pz = false">确定</view>
2025-12-12 14:41:44 +08:00
</view>
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
</view>
</view>
</view>
</view>
<!-- <view class="mengban" v-if="v.zk" @click="v.zk = false"></view> -->
</view>
2025-12-12 17:30:33 +08:00
<view style="height:3vw;width: 100%;display: flex;align-items: center;justify-content: center;">
<u-loadmore :status="status" :loadText="{nomore:'暂无更多数据'}" v-if="pddlist.length>6" />
</view>
2025-12-12 14:41:44 +08:00
</scroll-view>
2025-12-15 17:13:43 +08:00
<tanchuang :show="open==1" font="是否删除此图片" @back="open = 0" @right="del1()"> </tanchuang>
2025-12-12 14:41:44 +08:00
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import { queryQld } from '../api/lunpan.js'
import torytor from './torytor.vue'
2025-12-12 17:30:33 +08:00
import defaultr from '../components/default.vue'
2025-12-12 14:41:44 +08:00
const open = ref(0)
const scrolltop = ref(0)
2025-12-12 17:30:33 +08:00
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
2026-02-28 17:31:05 +08:00
const emit = defineEmits(['scrolltolower', 'tabitem', 'right'])
2025-12-12 17:30:33 +08:00
const props = defineProps({
pddlist: {
2026-02-28 17:31:05 +08:00
type: Array
2025-12-12 17:30:33 +08:00
},
status: {
type: String
2025-12-15 17:13:43 +08:00
},
2026-02-28 17:31:05 +08:00
pddType: {
type: String
2025-12-15 17:13:43 +08:00
}
2025-12-12 17:30:33 +08:00
})
const listflag = ref(false)
2026-02-28 17:31:05 +08:00
onMounted(() => {
setTimeout(() => {
2025-12-12 17:30:33 +08:00
listflag.value = true;
2026-02-28 17:31:05 +08:00
}, 1000)
2025-12-12 14:41:44 +08:00
})
2025-12-15 17:13:43 +08:00
const valitem = ref({});
const valindex = ref(-1);
2026-02-28 17:31:05 +08:00
const havezk = ref(false)
2025-12-12 14:41:44 +08:00
const zhankai = (v, i) => {
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
let s = Math.ceil((i + 1) / 3);
2026-02-28 17:31:05 +08:00
if (valindex.value != i && valindex.value > -1 && uni.getStorageSync('valitem') && props.pddType == '1') {
emit('tabitem', valindex.value, uni.getStorageSync('valitem'))
2025-12-15 17:13:43 +08:00
}
valindex.value = i;
2025-12-12 14:41:44 +08:00
scrolltop.value = top.value;
2026-02-28 17:31:05 +08:00
// scrolltop.value = Math.ceil(i / 2) * 195;
// console.log("啥啊",i)
2025-12-12 14:41:44 +08:00
v.zk = !v.zk;
2026-02-28 17:31:05 +08:00
havezk.value = v.zk
2025-12-12 14:41:44 +08:00
if (v.zk) {
2026-02-28 17:31:05 +08:00
if (props.pddType == '1') { uni.setStorageSync('valitem', v); }
2025-12-12 14:41:44 +08:00
setTimeout(() => {
v.yczk = v.zk;
}, 200)
} else {
v.yczk = v.zk;
v.bz = false;
v.pz = false;
}
2026-02-28 17:31:05 +08:00
if (v.dczk == true) {
} else {
2025-12-16 11:26:01 +08:00
nextTick(() => {
2026-02-28 17:31:05 +08:00
// scrolltop.value = (top.value > (s - 2) * 182) ? top.value : (s - 2) * 182;
// scrolltop.value = (Math.ceil(i / 2) -1) * 200;
2025-12-16 11:26:01 +08:00
})
}
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
gb(i)
}
const gb = (i) => {
2025-12-12 17:30:33 +08:00
props.pddlist.forEach((item, k) => {
2025-12-12 14:41:44 +08:00
if (i != k) {
item.zk = false;
item.bz = false;
item.pz = false;
item.yczk = false;
}
})
}
const top = ref(0)
const scroll = (e) => {
// console.log(e.detail.scrollTop)
top.value = e.detail.scrollTop;
}
2026-02-28 17:31:05 +08:00
const pddjjnum = (e, i) => {
2025-12-12 17:30:33 +08:00
let ce = 0;
props.pddlist[i].pdsl = e;
ce = e - props.pddlist[i].dqkcsl;
2026-02-28 17:31:05 +08:00
props.pddlist[i].cesl = Math.abs(ce);
props.pddlist[i].pdType = ce == 0 ? '' : (ce > 0 ? 1 : 2)
2025-12-12 17:30:33 +08:00
}
2026-02-28 17:31:05 +08:00
const config = (e, i) => {
if ((e.content == '' || e.content == null) && e.cesl != 0) {
2025-12-15 17:13:43 +08:00
uni.showToast({
2026-02-28 17:31:05 +08:00
icon: 'error',
title: "请填写备注!"
2025-12-15 17:13:43 +08:00
})
return
}
2026-02-28 17:31:05 +08:00
emit('right', e, i)
2025-12-12 17:30:33 +08:00
}
2025-12-12 14:41:44 +08:00
const scrolltolower = () => {
2025-12-12 17:30:33 +08:00
emit('scrolltolower')
2025-12-12 14:41:44 +08:00
}
2025-12-15 17:13:43 +08:00
// 上传
const albumlist = ref([])
2026-02-28 17:31:05 +08:00
const uplod = (v, i) => {
2025-12-15 17:13:43 +08:00
uni.chooseImage({
count: 1, //默认9
sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera'], //从相册选择
success: (e) => {
let ar = JSON.stringify(e.tempFilePaths)
uni.compressImage({
src: JSON.parse(ar)[0],
quality: 60,
success: res => {
2026-02-28 17:31:05 +08:00
sxdupld(res.tempFilePath, v)
2025-12-15 17:13:43 +08:00
// v.picPatharr.push(res.tempFilePath);
// console.log(v.picPatharr)
}
})
}
});
}
2026-02-28 17:31:05 +08:00
const sxdupld = (e, v) => {
2025-12-15 17:13:43 +08:00
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
uni.uploadFile({
url: uni.getStorageSync('serverUrl') + '/sys/common/upload',
filePath: e,
name: 'file',
formData: {
biz: year + '/' + month + '/pddPic'
},
header: {
'X-Access-Token': uni.getStorageSync('token')
},
success: res => {
const data = JSON.parse(res.data);
console.log(v)
v.picPatharr.push(data.message);
shuzhi(v)
},
fail: () => {
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
}
2026-02-28 17:31:05 +08:00
const previewImage = (arr, p, i) => {
let u = []
arr.picPatharr.forEach(e => {
u.push(serverUrl.value + e)
})
uni.previewImage({
current: i,
urls: u,
showmenu: false,
longPressActions: {
itemList: [],
}
})
2025-12-15 17:13:43 +08:00
}
2026-02-28 17:31:05 +08:00
const shuzhi = (v) => {
2025-12-15 17:13:43 +08:00
v.picPath = '';
2026-02-28 17:31:05 +08:00
v.picPatharr.forEach((e, i) => {
v.picPath += e + ','
2025-12-15 17:13:43 +08:00
})
}
const picv = ref({});
const pici = ref(0);
2026-02-28 17:31:05 +08:00
const del = (v, o) => {
2025-12-15 17:13:43 +08:00
picv.value = v;
pici.value = o;
}
2026-02-28 17:31:05 +08:00
const del1 = () => {
picv.value.picPatharr.splice(pici.value, 1);
2025-12-15 17:13:43 +08:00
open.value = 0
}
2026-02-28 17:31:05 +08:00
/** 只针对 UniApp 原生 App 的最简判断函数true = 上半false = 下半null = 无法判断) */
function isTopHalfApp(e) {
if (!e) return null;
// 原生 app 常见changedTouches 或 touches
const touch = (e.changedTouches && e.changedTouches[0]) || (e.touches && e.touches[0]) || null;
const y = touch
? (typeof touch.clientY === 'number' ? touch.clientY : (typeof touch.pageY === 'number' ? touch.pageY : null))
: (e.detail && typeof e.detail.y === 'number' ? e.detail.y : null);
let h = null;
try {
h = uni.getSystemInfoSync().windowHeight; // UniApp 原生 App 推荐使用
} catch (err) {
h = null;
}
if (y == null || !h) return null;
return y <= (h * 2 / 3);
}
const isbottom = ref(false);
const clicklock = ref(false)
/** 事件处理示例 */
function onTap(e) {
const top = isTopHalfApp(e);
if (top === null) {
// uni.showToast({ title: '无法判断坐标', icon: 'none' });
return;
}
if (havezk.value) {
if (!clicklock.value) {
if (!top) {
isbottom.value = true
// console.log("开启了")
} else {
isbottom.value = false
}
clicklock.value = true
}
} else {
clicklock.value = false
}
// uni.showToast({ title: top ? '上半部分' : '下半部分', icon: 'none' });
}
2025-12-12 14:41:44 +08:00
</script>
<style scoped lang="less">
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.itembox {
width: 100%;
2026-02-28 17:31:05 +08:00
height: 56.5vw;
2025-12-12 14:41:44 +08:00
display: flex;
2026-02-10 17:27:00 +08:00
margin-top: 0.6vw;
// background-color: blue;
2026-02-28 17:31:05 +08:00
2025-12-17 15:48:36 +08:00
.itembord1 {
border-radius: 1.6vw !important;
transition: 1s;
}
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
.itembord0 {
border-radius: 1.6vw 1.6vw 0 0 !important;
z-index: 25 !important;
2025-12-17 15:48:36 +08:00
transition: .1s;
2025-12-12 14:41:44 +08:00
}
2026-02-28 17:31:05 +08:00
.dczk {
top: -405rpx !important;
2025-12-17 15:48:36 +08:00
transition: .4s !important;
}
2026-02-28 17:31:05 +08:00
.dczks {
2025-12-17 15:48:36 +08:00
transition: .4s !important;
2025-12-15 17:13:43 +08:00
}
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
.itemhei0 {
height: 0vw !important;
z-index: 27 !important;
}
.items {
2026-02-10 17:27:00 +08:00
width: 44.4vw;
2026-02-28 17:31:05 +08:00
height: 390rpx;
2025-12-12 14:41:44 +08:00
background: #FFFFFF;
border-radius: 1.6vw;
display: inline-block;
2026-02-28 17:31:05 +08:00
margin: 0 0.9vw 10rpx 0;
2025-12-12 14:41:44 +08:00
position: relative;
2026-02-25 14:38:41 +08:00
// padding-top: 3vw;
2025-12-12 14:41:44 +08:00
z-index: 20;
2025-12-15 17:13:43 +08:00
top: 0;
2025-12-12 14:41:44 +08:00
.tan {
position: absolute;
2026-02-10 17:27:00 +08:00
width: 100%;
2026-02-28 17:31:05 +08:00
height: 18.2vw;
2025-12-12 14:41:44 +08:00
background: #fff;
2026-02-28 17:31:05 +08:00
top: 390rpx;
2025-12-12 14:41:44 +08:00
left: 0;
z-index: 27;
border-radius: 0 0 1.6vw 1.6vw;
.submit {
width: 100%;
2026-03-03 14:51:42 +08:00
height: 1vw;
margin-top: 0.7vw;
2026-03-02 17:24:43 +08:00
// margin-top: 0.9vw;
2025-12-12 14:41:44 +08:00
padding-right: 2vw;
display: flex;
justify-content: flex-end;
view {
display: flex;
justify-content: center;
align-items: center;
&:nth-child(1) {
width: 5.7vw;
height: 2.3vw;
background: #F8F8F8;
border-radius: 1.2vw;
border: 1px solid #E5E5E5;
font-weight: 400;
font-size: 1.2vw;
color: #555555;
}
&:nth-child(2) {
width: 5.7vw;
height: 2.3vw;
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border-radius: 1.2vw;
border: 1px solid rgba(3, 133, 250, 0.34);
font-weight: 400;
font-size: 1.2vw;
color: #1083F8;
margin-left: 0.7vw;
}
}
}
.bpq {
2026-02-10 17:27:00 +08:00
width: 100%;
2025-12-12 14:41:44 +08:00
height: 2.6vw;
position: absolute;
display: flex;
2026-02-28 17:31:05 +08:00
bottom: 0.5vw;
2026-02-25 14:38:41 +08:00
left: 1vw;
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
.triangle-leftpz {
width: 2vw;
height: 1.5vw;
position: absolute;
bottom: 2.2vw;
left: 11vw;
z-index: 30;
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
image {
width: 100%;
height: 100%;
}
}
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
.triangle-leftbz {
width: 2vw;
height: 1.5vw;
position: absolute;
bottom: 2.2vw;
left: 4vw;
z-index: 30;
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
image {
width: 100%;
height: 100%;
}
}
.gray-pgc {
background: #fff;
2026-03-02 17:24:43 +08:00
width: 40vw;
height: 30vw;
2025-12-12 14:41:44 +08:00
border-radius: 2vw;
box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(116, 141, 164, 0.22);
position: absolute;
bottom: 3.6vw;
left: 1vw;
overflow: hidden;
2026-02-28 17:31:05 +08:00
>.submit {
2025-12-15 17:13:43 +08:00
position: absolute;
bottom: 0;
right: 0;
}
2026-03-03 14:51:42 +08:00
.scrollbgc {
2026-03-02 17:24:43 +08:00
width: 92%;
margin-left: 4%;
height: 22vw;
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
.zpj {
width: 30%;
2025-12-12 14:41:44 +08:00
display: flex;
2026-03-02 17:24:43 +08:00
flex-wrap: wrap;
flex-direction: column;
// padding: 0 1.6vw;
height: 22vw;
// background-color: red;
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
.zpk {
width: 17.8vw;
height: 10vw;
margin-top: 1vw;
border-radius: 1.1vw;
position: relative;
2025-12-12 14:41:44 +08:00
display: flex;
justify-content: center;
align-items: center;
2026-03-02 17:24:43 +08:00
background: #F9F9F9;
overflow: hidden;
margin-right: 1vw;
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
view {
width: 2vw;
height: 2vw;
z-index: 20;
position: absolute;
right: 0.8vw;
top: 0.8vw;
border-radius: 0.6vw 1.1vw 0.6vw 0.6vw;
background: rgba(255, 255, 255, 1);
display: flex;
justify-content: center;
align-items: center;
}
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
image {
width: 100%;
height: 100%;
}
2026-02-28 17:31:05 +08:00
}
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
.clkpz {
width: 17.8vw;
height: 10vw;
background: #FAFDFF;
border-radius: 1.1vw;
border: 1px solid #DDEFFF;
display: flex;
justify-content: center;
align-items: center;
margin-top: 1vw;
flex-direction: column;
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
text {
font-weight: 400;
font-size: 0.7vw;
color: #78B1EB;
}
2026-03-03 14:51:42 +08:00
2026-03-02 17:24:43 +08:00
image {
width: 2.3vw;
height: 2.3vw;
}
2025-12-12 14:41:44 +08:00
}
2026-03-03 14:51:42 +08:00
2025-12-12 14:41:44 +08:00
}
}
2026-03-03 14:51:42 +08:00
2025-12-12 14:41:44 +08:00
.pztit {
font-weight: 400;
2026-03-02 17:24:43 +08:00
font-size: 1.5vw;
2025-12-12 14:41:44 +08:00
color: #888888;
margin: 1.6vw auto 0;
width: 100%;
padding-left: 2.4vw;
}
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
}
.gray-bgc {
background: #fff;
width: 28vw;
height: 12vw;
border-radius: 2vw;
box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(116, 141, 164, 0.22);
position: absolute;
bottom: 3.6vw;
left: 1vw;
overflow: hidden;
.triangle-left {
width: 2vw;
height: 1.5vw;
position: absolute;
top: 99.5%;
left: 3vw;
image {
width: 100%;
height: 100%;
}
}
.textare {
2026-02-28 17:31:05 +08:00
width: 24vw;
2025-12-12 14:41:44 +08:00
height: 6.5vw;
2026-02-28 17:31:05 +08:00
background: #fff;
border: 4rpx solid #F5F5F5;
2025-12-12 14:41:44 +08:00
border-radius: 1vw;
margin: 1.6vw auto 0;
padding: 1vw;
textarea {
width: 100%;
height: 100%;
font-weight: 400;
2026-02-28 17:31:05 +08:00
font-size: 1.3vw;
2025-12-12 14:41:44 +08:00
color: #999999;
}
}
}
.qued {
width: 6vw;
2026-02-28 17:31:05 +08:00
height: 2.8vw;
2025-12-12 14:41:44 +08:00
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border-radius: 1.3vw;
border: 1px solid rgba(3, 133, 250, 0.34);
2026-03-02 17:24:43 +08:00
right: 3.2vw;
top: 0vw;
2025-12-12 14:41:44 +08:00
position: absolute;
font-weight: 400;
font-size: 1.4vw;
color: #0385FA;
display: flex;
align-items: center;
justify-content: center;
}
.bp {
width: 5vw;
2026-03-02 17:24:43 +08:00
height: 2.8vw;
2025-12-12 14:41:44 +08:00
display: flex;
2026-03-02 17:24:43 +08:00
align-items: flex-end;
2025-12-12 14:41:44 +08:00
font-weight: 400;
font-size: 1.2vw;
color: #555555;
margin-left: 1.5vw;
white-space: nowrap;
position: relative;
>text {
min-width: 1vw;
height: 1vw;
border-radius: 0.5vw;
font-weight: 400;
font-size: 0.8vw;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
padding: 0 0.4vw;
position: absolute;
right: -0.5vw;
top: 0;
2025-12-15 17:13:43 +08:00
background: #555555;
2025-12-12 14:41:44 +08:00
}
.g {
background: #0385FA;
border: 1px solid #0385FA;
}
.r {
background: #FF5757;
border: 1px solid #FF5757;
}
image {
width: 1.8vw;
height: 1.8vw;
margin-right: 0.4vw;
}
}
}
.tbox {
width: 100%;
height: 16vw;
position: absolute;
top: 1vw;
z-index: 28;
left: 0;
}
}
.chae {
2026-02-10 17:27:00 +08:00
width: 6vw;
height: 8vw;
2025-12-12 14:41:44 +08:00
position: absolute;
right: 0;
top: 0;
display: flex;
flex-direction: column;
align-items: center;
padding: 1vw 2vw 0 0;
view {
font-weight: bold;
font-size: 1.8vw;
}
text {
font-weight: 400;
font-size: 1vw;
color: #888888;
}
.r {
color: #FF5757;
}
.b {
color: rgba(16, 131, 248, 1);
}
}
.pandian {
2026-02-10 17:27:00 +08:00
// width: 5vw;
// height: 4.5vw;
2025-12-12 14:41:44 +08:00
position: absolute;
2026-02-10 17:27:00 +08:00
right: 2.7vw;
bottom: 2vw;
2025-12-12 14:41:44 +08:00
image {
2026-02-10 17:27:00 +08:00
width: 2.6vw;
height: 2.6vw;
2025-12-12 14:41:44 +08:00
}
}
.wuli {
width: 18vw;
height: 100%;
overflow: hidden;
position: absolute;
2026-02-25 14:38:41 +08:00
left: 18vw;
top: 0.5vw;
2025-12-12 14:41:44 +08:00
.wltwo {
width: 11vw;
height: 3.7vw;
display: flex;
2026-02-28 17:31:05 +08:00
margin-top: 1.5vw;
2025-12-12 14:41:44 +08:00
justify-content: space-between;
2026-02-10 17:27:00 +08:00
margin-left: -2vw;
2025-12-12 14:41:44 +08:00
>view {
// min-width: 5vw;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
position: relative;
align-items: left;
2026-02-10 17:27:00 +08:00
padding: 0 2vw;
2025-12-12 14:41:44 +08:00
view {
2026-02-10 17:27:00 +08:00
font-weight: 800;
font-size: 1.5vw;
2025-12-12 14:41:44 +08:00
color: #555555;
}
text {
font-weight: 400;
font-size: 1.2vw;
color: #999999;
white-space: nowrap;
display: block;
}
}
.dot::after {
content: '';
width: 1px;
height: 3.3vw;
position: absolute;
left: 0;
bottom: 0;
border-right: 1px solid rgba(230, 230, 230, 1);
}
}
.cot {
width: 18vw;
font-weight: 400;
2026-02-10 17:27:00 +08:00
font-size: 1.4vw;
2025-12-12 14:41:44 +08:00
color: rgba(85, 85, 85, 1);
2026-02-10 17:27:00 +08:00
// margin-top: 0.1vw;
2025-12-12 14:41:44 +08:00
text {
color: rgba(153, 153, 153, 1);
2026-02-10 17:27:00 +08:00
font-size: 1.3vw;
2025-12-12 14:41:44 +08:00
font-weight: 300;
2026-02-10 17:27:00 +08:00
// font-weight: 600;
2025-12-12 14:41:44 +08:00
}
}
.tite {
width: 13vw;
2026-02-10 17:27:00 +08:00
font-weight: 800;
font-size: 1.8vw;
2025-12-12 14:41:44 +08:00
color: #222222;
height: 2vw;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
2026-02-28 17:31:05 +08:00
margin: 1.5vw 0 1.5vw 0;
2025-12-12 14:41:44 +08:00
}
}
.speitem {
width: 12vw;
height: 100%;
display: flex;
flex-direction: column;
position: absolute;
2026-02-25 14:38:41 +08:00
left: 2vw;
2026-02-28 17:31:05 +08:00
top: 1.5vw;
2025-12-12 14:41:44 +08:00
.cardp {
2026-02-10 17:27:00 +08:00
width: 14vw;
2025-12-12 14:41:44 +08:00
height: 4vw;
display: flex;
flex-wrap: wrap;
margin: 0 auto;
align-items: center;
2026-02-28 17:31:05 +08:00
2025-12-12 14:41:44 +08:00
view {
2026-02-28 17:31:05 +08:00
min-width: 6.5vw;
2025-12-12 14:41:44 +08:00
height: 1.8vw;
border-radius: 0.9vw;
border: 1px solid #D2D2D2;
2026-02-28 17:31:05 +08:00
margin: 0.7vw 0 0 0.5vw;
2025-12-12 14:41:44 +08:00
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
2026-02-10 17:27:00 +08:00
font-size: 1.2vw;
2025-12-12 14:41:44 +08:00
color: #555555;
2026-02-28 17:31:05 +08:00
padding: 0 0.6vw;
2025-12-12 14:41:44 +08:00
&:nth-child(1),
&:nth-child(2) {
max-width: 5.5vw;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 1.8vw;
text-align: center;
}
}
}
.imgs {
2026-02-10 17:27:00 +08:00
width: 13vw;
2026-02-28 17:31:05 +08:00
height: 9vw;
2026-02-10 17:27:00 +08:00
// background: #F8F8F8;
2025-12-12 14:41:44 +08:00
border-radius: 1.1vw;
display: flex;
justify-content: center;
align-items: center;
2026-02-28 17:31:05 +08:00
margin-top: 1.2vw;
2026-02-10 17:27:00 +08:00
// margin: 0.8vw auto 0;
// padding: 0.5vw;
2025-12-12 14:41:44 +08:00
>image {
2026-02-10 17:27:00 +08:00
width: 9vw;
height: 9vw;
2026-02-25 14:38:41 +08:00
margin-left: 1vw;
2026-01-12 17:20:37 +08:00
border-radius: 0.4vw;
2025-12-12 14:41:44 +08:00
}
}
}
}
}
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 21;
background: RGBA(239, 240, 244, 0);
}
2026-03-03 14:51:42 +08:00
.all-nomessage {
width: 89vw;
height: 56vw;
position: fixed;
top: 5vw;
left: 9.5vw;
background-color: #fff;
border-radius: 40rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
image {
width: 13.5vw;
height: 13.5vw;
}
view {
margin-top: -40rpx;
width: 100%;
text-align: center;
font-weight: 300;
font-size: 1.4vw;
color: #555555;
}
}
2025-12-12 14:41:44 +08:00
</style>