修改了主页以及各类bug

This commit is contained in:
Teng 2026-04-29 17:30:41 +08:00
parent 563db5587e
commit 9d9aae9032
22 changed files with 537 additions and 361 deletions

View File

@ -112,17 +112,18 @@
即时服务指令
</view>
<view class="spiw">
<view v-for="(v,i) in typearra" :key="i" :class="i==fwzlindex?'act':''"
@click="shtab(i)">{{v.instructionName}}</view>
<view v-for="(v,i) in typearra" :key="i" :class="i==fwzlindex?'act':''" @click="shtab(i)">
{{v.instructionName}}
</view>
</view>
<scroll-view class="scrol" scroll-y="true" lower-threshold="300">
<view v-for="(v,i) in fwzlarr" :key='i' :class="i==fwzldex?'act':''" class="cdk"
@click="zldex(i)">
<image :src="serverUrl+(fwzldex!=i?v.immediateFile:v.immediateFileFocus)" mode="aspectFill">
</image>
<text style="white-space: nowrap;width: 100%;text-overflow: ellipsis;overflow: hidden;" >
<text style="white-space: nowrap;width: 100%;text-overflow: ellipsis;overflow: hidden;">
{{v.obj.mainName}}
</text>
</text>
<view v-if="v.obj.subName">( {{v.obj.subName}} )</view>
</view>
@ -182,9 +183,9 @@
<view class="top-title">
护理单元
</view>
<scroll-view class="top-list" scroll-y>
<scroll-view class="top-list" scroll-y scroll-with-animation :scroll-top="scrollTop">
<view class="list-view" :style="menutarget===index?{borderColor:`#8DD6FF`,backgroundColor:`#F7F7F9`}:{}"
v-for="(item,index) in filteredMenu('izHldy')" :key="index" @click="clickmenu(index)">
v-for="(item,index) in leftMenuArray" :key="index" @click="clickmenu(index)">
<view class="list-img">
<image :src="`/static/index/newindex/leftmenu/NU${item.elderInfo?.name?`blue`:`white`}.png`" />
<view v-if="item.readList!=null&&item.readList.length>0"></view>
@ -205,7 +206,7 @@
</view>
</scroll-view>
</view>
<view class="right-top" v-if="kf=='1'">
<view class="right-top" v-if="kf=='1'">
<view class="top-title">
库房
</view>
@ -231,15 +232,16 @@
</view>
</scroll-view>
</view>
<view class="mengban" style="background-color: transparent;" v-if="zzbqshow"
@click="zzbqshow = false;tagtarget=-1"></view>
<view class="right-bottom">
<view class="bottom-title">
<image class="bottom-carmera" src="/static/index/newindex/leftmenu/carmera.png" @click="gotolook" />
<view class="blue-button" @click="geteverything()">
<image class="blue-button-left" src="/static/index/newindex/leftmenu/zzbq.png" mode="aspectFill"></image>
<image class="blue-button-left" src="/static/index/newindex/leftmenu/zzbq.png" mode="aspectFill">
</image>
长者标签
<view class="jb" v-show="zzbqshow">
<image src="/static/index/card/bj.png" mode="aspectFill"></image>
@ -320,17 +322,23 @@
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import { onBackPress, onShow, onHide } from "@dcloudio/uni-app"
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive, onUnmounted } from 'vue';
import { onBackPress, onShow, onHide, onLoad } from "@dcloudio/uni-app"
import { queryPadPageList } from '@/pages/watch/api/lunpan.js'
import { getServiceTree0 } from '@/pages/NursingNew/component/nurse/api.js'
import { queryWorkOrderList, queryCountByType, queryAll } from './api.js'
// import {startOrder,endOrder} from './doctorask/api/api.js'
import { queryOrderList, queryOrderInfoList, startOrder, endOrder, editSubPicPath, editSubMp4, queryEmpList, transferOrder, assistOrder, generateInstant } from '../component/doctorask/api/api.js'
import { getNclist,getInstructionTag } from "./nurse/api.js";
import { getNclist, getInstructionTag } from "./nurse/api.js";
import serveswipe from './leftcontent/serveswipe.vue';
const serverUrl = ref(uni.getStorageSync('imagebase'))
const servervideoUrl = ref(uni.getStorageSync('serverUrl') + '/sys/commonVideo/staticVideo/')
const serverpicUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
onBackPress(() => {
return true; //
})
const serverUrl = uni.getStorageSync('imagebase')
const servervideoUrl = uni.getStorageSync('serverUrl') + '/sys/commonVideo/staticVideo/'
const serverpicUrl = uni.getStorageSync('serverUrl') + '/sys/common/static/'
const form = reactive({
pageNo: 1,
pageSize: 30,
@ -383,7 +391,7 @@
required: true,
},
kf: {
type: String
type: String
},
});
@ -393,10 +401,10 @@
const clickmenu = (index : number) => {
let data = null;
menutarget.value = index
if(props.kf=='0'){
if (props.kf == '0') {
data = filteredMenu('izHldy')[index]
}else{
} else {
data = filteredMenu('izKf')[index];
}
uni.setStorageSync('nuId', data.nuId);
@ -406,7 +414,7 @@
inits(data.nuId)
hlylhq(data.nuId, data.elderInfo?.id)
emit('swip')
scrollTop.value = (index - 1) * 58
}
const hldyobj = ref({})
const hlylhq = (nuId, elderId) => {
@ -429,35 +437,36 @@
instructionTagId: e
}
queryAll(data).then(res => {
// console.log("",res)
fwzlarr.value = res.result.jsList;
fwzlarr.value.forEach(item=>{
fwzlarr.value.forEach(item => {
item.obj = parseDirectiveName(item.directiveName)
})
// console.log(fwzlarr.value)
})
}
const parseDirectiveName=(directiveName)=> {
if (!directiveName) return { mainName: '', subName: '' }
const reg = /^(.+)(.+)$/
const match = directiveName.match(reg)
if (match) {
return {
mainName: match[1].trim(), //
subName: match[2].trim() //
}
} else {
return {
mainName: directiveName.trim(),
subName: ''
}
}
const parseDirectiveName = (directiveName) => {
if (!directiveName) return { mainName: '', subName: '' }
const reg = /^(.+)(.+)$/
const match = directiveName.match(reg)
if (match) {
return {
mainName: match[1].trim(), //
subName: match[2].trim() //
}
} else {
return {
mainName: directiveName.trim(),
subName: ''
}
}
}
const shtab = (e) => {
fwzlindex.value = e;
zlfunc(typearra.value[e].instructionType)
fwzldex.value = -1
}
const zldex = (e) => {
if (e > -1 && e == fwzldex.value) {
fwzldex.value = -1
@ -472,21 +481,21 @@
return
}
let obj = {
nuId:uni.getStorageSync('nuId'),
instructionId:fwzlarr.value[fwzldex.value].instructionId,
directiveId:fwzlarr.value[fwzldex.value].directiveId,
nuId: uni.getStorageSync('nuId'),
instructionId: fwzlarr.value[fwzldex.value].instructionId,
directiveId: fwzlarr.value[fwzldex.value].directiveId,
}
generateInstant(obj).then(res => {
console.log(res)
if (res.success) {
jszlshow.value = false;
uni.showToast({
title:res.message,
icon:'none'
title: res.message,
icon: 'none'
})
setTimeout(()=>{
setTimeout(() => {
inits(uni.getStorageSync('nuId'))
},1500)
}, 1500)
} else {
error.value = true;
msg.value = res.message
@ -504,10 +513,10 @@
const downArray = ref()
const scrollTop = ref(0);
function onScroll(e) {
// e.detail.scrollTop
scrollTop.value = e.detail.scrollTop
}
// function onScroll(e) {
// // e.detail.scrollTop
// scrollTop.value = e.detail.scrollTop
// }
//
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
return Array.from({ length: count }, (_, i) => {
@ -606,48 +615,29 @@
const day = now.getDate().toString().padStart(2, '0');
fullDate.value = `${year}.${month}.${day}`;
};
onMounted(() => {
transition.value = false;
setTimeout(() => {
transition.value = true;
}, 50)
name.value = uni.getStorageSync('realname')
typeNow.value = 0;
timerId = updateTime();
//
setInterval(updateTime, 1000);
let timer : any = null
getmenu();
})
// onUnmounted(() => {
// clearInterval(timer)
// })
const typearra = ref([])
onShow(() => {
getInstructionTag().then((res)=>{
// console.log(res.result)
typearra.value = res.result;
shtab(0)
})
setTimeout(() => {
photoplay.value = true;
}, 200)
})
onHide(() => {
photoplay.value = false;
})
const filteredMenu = ( code) => {
return leftMenuArray.value.filter(item => item[code] == 'Y');
const filteredMenu = (code) => {
return leftMenuArray.value.filter(item => item[code] == 'Y');
}
const getmenu = () => {
queryPadPageList().then((res => {
if(props.kf=='0'){
if (props.kf == '0') {
leftMenuArray.value = res.result.records;
// console.log(leftMenuArray.value)
filteredMenu('izHldy').forEach((element : any, index : number) => {
// console.log(``,leftMenuArray.value)
// filteredMenu('izHldy')
leftMenuArray.value.forEach((element : any, index : number) => {
if (element.nuId === uni.getStorageSync('NUall').nuId) {
menutarget.value = index;
clickmenu(menutarget.value)
}
})
}else{
} else {
leftMenuArray.value = res.result.records;
let arr = filteredMenu('izKf');
arr.forEach((element : any, index : number) => {
@ -666,20 +656,12 @@
}
})
}
}))
}
const indexmessage = ref({});
const getgif = () => {
// let data = {
// nuId: uni.getStorageSync('NUall').nuId,
// employeeId: uni.getStorageSync('userInfo').employeesId,
// workType: 5
// }
// queryWorkOrderList(data).then((res : any) => {
// indexmessage.value = res.result.records[0];
// })
}
const lanjie = ref(false);
const gotolook = () => {
@ -807,6 +789,47 @@
// bodyTagList.value = [];
// emotionTagList.value = [];
}
onMounted(() => {
transition.value = false;
setTimeout(() => {
transition.value = true;
}, 50)
name.value = uni.getStorageSync('realname')
typeNow.value = 0;
getServiceTree0('1,2,3,4,5').then((res : any) => {
uni.setStorageSync("saveTree1", res.result.fwzl[1])
uni.setStorageSync("saveTree2", res.result.fwzl[2])
uni.setStorageSync("saveTree3", res.result.fwzl[3])
uni.setStorageSync("saveTree4", res.result.fwzl[4])
uni.setStorageSync("saveTree5", res.result.fwzl[5])
})
})
onShow(() => {
// console.log("")
getInstructionTag().then((res) => {
// console.log(res.result)
typearra.value = res.result;
shtab(0)
})
setTimeout(() => {
photoplay.value = true;
}, 200)
})
onLoad(() => {
timerId = updateTime();
//
setInterval(updateTime, 1000);
getmenu();
timer = setInterval(() => {
shtab(fwzlindex.value)
//
}, 60000)
})
onHide(() => {
photoplay.value = false;
clearInterval(timer)
})
</script>
<style scoped lang="less">
@ -1200,7 +1223,8 @@
padding-left: 1.4vw;
font-size: 26rpx;
position: relative;
.blue-button-left{
.blue-button-left {
border: 2rpx solid #fff;
border-radius: 50%;
width: 2.5vw;

View File

@ -888,7 +888,7 @@
if(!uni.getStorageSync('elderId')){
res.result.forEach(item=>{
if(item.instructionType!=1&&item.instructionType!=2){
console.log(item)
// console.log(item)
typearray.value.push(item)
}
})

View File

@ -145,19 +145,19 @@
})
const listarr = ref([]);
onMounted(() => {
menuIndex.value = '';
swipedex.value = '';
// menuIndex.value = '';
// swipedex.value = '';
getNcPackagelist(`1`).then((res : any) => {
//
// console.log("", res)
uni.setStorageSync("Packagelist", res.result)
})
getNcPackagelist(`2`).then((res : any) => {
//
// console.log("", res)
uni.setStorageSync("Packagelist2", res.result)
})
// getNcPackagelist(`1`).then((res : any) => {
// //
// // console.log("", res)
// uni.setStorageSync("Packagelist", res.result)
// })
// getNcPackagelist(`2`).then((res : any) => {
// //
// // console.log("", res)
// uni.setStorageSync("Packagelist2", res.result)
// })
swip()
})
const changeNumber = (item : any) => {
@ -238,10 +238,10 @@
let results = getIntersection( tabbrarr.value,result);
arrlist.value.push(...results);
}
let back = [
{ name: '返回', url: '/static/shouye/sy/f0.png', urls: '/static/shouye/sy/f1.png', menuCode: 'back' }
]
arrlist.value.push(...back);
// let back = [
// { name: '', url: '/static/shouye/sy/f0.png', urls: '/static/shouye/sy/f1.png', menuCode: 'back' }
// ]
// arrlist.value.push(...back);
navurl(0,arrlist.value[0])
}))
}
@ -250,8 +250,8 @@
return arrA.filter(item => codeSet.has(item.menuCode));
}
//
const menuIndex = ref('jcgn_sy');
const swipedex = ref('jcgn_sy');
const menuIndex = ref('');
const swipedex = ref('');
const menuIndexshow = ref<boolean>(false);
const menuIndexshowsecond = ref<boolean>(false);
const menuIndexshowfourth = ref<boolean>(false);
@ -284,7 +284,8 @@
setTimeout(() => {
menuIndexshow.value = true
}, 50)
userInfo.value = uni.getStorageSync('userInfo');
console.log("!!!!!",`https://www.focusnu.com/media/`+userInfo.value.avatar)
});
const nomesssageshow = () => {
@ -294,9 +295,7 @@
}, 200)
}
const userInfo = ref({})
onShow(() => {
userInfo.value = uni.getStorageSync('userInfo');
})
const box = ref(null);
const boxStyle = ref({
transform: 'translate3d(-500px, -500px, 0px)',

View File

@ -4,8 +4,8 @@
<view class="input-father">
<!-- <view class="add"></view> -->
<!-- <view class="shu"></view> -->
<input style="font-size: 27rpx;height: 350rpx;padding-left: 30rpx;" type="text" v-model="form.username" maxlength="11"
placeholder="请输入账号" @blur="getImg" />
<input style="font-size: 27rpx;height: 320rpx;padding-left: 30rpx;width: 100%;" type="text"
v-model="form.username" maxlength="11" placeholder="请输入账号" @blur="getImg" />
</view>
<view class="input-father">
<input class="password" password type="text" v-model="form.password" maxlength="15" placeholder="请输入密码" />
@ -121,7 +121,7 @@
<zy-update ref="zyupgrade" :noticeflag="true" theme="blue" :h5preview="false" oldversion="1.0.0"
:appstoreflag="true" :autocheckupdate="true" @showupdateTips="canJump"></zy-update>
<view class="bg-mask" v-if="huakuaiOpen" @click="huakuaiOpen=false">
<huakuai @click.stop @success="huakuaisuccess" :show="huakuaiOpen"/>
<huakuai @click.stop @success="huakuaisuccess" :show="huakuaiOpen" />
</view>
<view class="bg-mask" v-if="selectserve">
@ -147,7 +147,8 @@
import ZyUpdate from '@/component/zy-upgrade/zy-upgrade.vue'
import oneseven from '@/pages/login/oneseven.vue'
import twoseven from '@/pages/login/twoseven.vue'
import { isRel, getLoginCode, loginApp,getPublicMediaUrl } from './api.js'
import { isRel, getLoginCode, loginApp, getPublicMediaUrl } from './api.js'
import { queryPadPageList } from '@/pages/watch/api/lunpan.js'
import huakuai from '@/component/public/huakuai.vue'
import { initWs, connectWs } from '@/common/websocketManager.js';
@ -181,7 +182,7 @@
function closePopup() {
showPopup.value = false;
}
onMounted(()=>{
onMounted(() => {
zyupgrade.value?.check_update();
uni.setStorageSync("appWgtVersion", uni.getSystemInfoSync().appWgtVersion)
if (uni.getStorageSync('appWgtVersion') != uni.getSystemInfoSync().appWgtVersion) {
@ -215,11 +216,11 @@
const time = ref(0);
const allserve = ref([])
const getImg = () => {
// if (/^\d{11}$/.test(form.username)) {
if (form.username) {
isRel(form.username).then((res : any) => {
console.log(res)
if (res.result.code == `0`) {
if(!res.result.orgList.length){
if (!res.result.orgList.length) {
uni.showToast({
title: "该账号未绑定任何机构,请绑定机构后重试",
icon: 'none', // 'success''loading''none'
@ -253,6 +254,45 @@
canclick.value = false;
}
})
}
// if (/^\d{11}$/.test(form.username)) {
// isRel(form.username).then((res : any) => {
// console.log(res)
// if (res.result.code == `0`) {
// if(!res.result.orgList.length){
// uni.showToast({
// title: "",
// icon: 'none', // 'success''loading''none'
// duration: 4000 // ms
// })
// return
// }
// uni.setStorageSync('serverUrl', res.result.orgList[0].serverUrl);
// // uni.setStorageSync('mediaUrl', 'https://www.focusnu.com/media/');
// uni.setStorageSync('orgList', res.result.orgList);
// uni.setStorageSync('orgListName', res.result.orgList[0].departName);
// uni.setStorageSync('orgListCode', res.result.orgList[0].orgCode);
// allserve.value = res.result.orgList
// time.value = Date.now();
// getLoginCode(time.value).then((res : any) => {
// form.captcha = res.message
// canclick.value = true
// })
// } else {
// uni.setStorageSync('serverUrl', "");
// uni.setStorageSync('orgList', []);
// uni.setStorageSync('orgListName', "");
// uni.setStorageSync('orgListCode', "");
// allserve.value = [];
// uni.showToast({
// title: res.result.msg,
// icon: 'none', // 'success''loading''none'
// duration: 2000 // ms
// })
// canclick.value = false;
// }
// })
// } else {
// if (form.username) {
// uni.showToast({
@ -391,12 +431,33 @@
connectWs(); // WebSocket
}
//
getPublicMediaUrl().then((res:any)=>{
getPublicMediaUrl().then((res : any) => {
uni.setStorageSync("imagebase", res.result)
})
jumpTo(`/pages/login/newanimationpage`)
}
nextTick(() => {
queryPadPageList().then((res => {
if (res.result?.records.length) {
let data = res.result.records[0];
uni.setStorageSync('nuId', data.nuId);
uni.setStorageSync('nuName', data.nuName);
uni.setStorageSync('elderId', data.elderInfo ? data.elderInfo?.id : null);
uni.setStorageSync('NUall', data);
uni.navigateTo({
url: '/pages/NursingNew/index?kf=0'
})
} else {
uni.showToast({
title: '该账号下没有护理单元或仓库',
icon: 'none', // 'success''loading''none'
duration: 2000 // ms
})
}
}))
// jumpTo(`/pages/login/newanimationpage`)
})
}
</script>
<style scoped lang="less">
@ -426,6 +487,7 @@
display: flex;
align-items: center;
position: relative;
overflow: hidden;
.input-code {
position: absolute;
@ -529,7 +591,7 @@
font-size: 27rpx;
margin-left: 30rpx;
width: 100%;
height: 100rpx;
height: 250rpx;
}
.popup-wrapper {

View File

@ -329,7 +329,7 @@
.carditem {
position: absolute;
top: 2.5vw;
top: 3vw;
left: 0;
height: 100%;
display: flex;

View File

@ -223,9 +223,10 @@
width: 86vw;
height: calc(100vh - 3vw);
margin-top: 0.3vw;
margin-left: 0.5vw;
.box {
width: 86vw;
width: 84.5vw;
display: grid;
grid-template-columns: 1fr 1fr;
}

View File

@ -7,18 +7,23 @@
出入库
</view>
<view class="sscgd">
<input type="text" placeholder="采购单号" />
<input type="text" v-model="inputValue.ddNo" maxlength="15" placeholder="采购单号" @confirm="search()" />
<image v-show="inputValue.ddNo" class="title-input-img" src="@/static/x.png" @click="inputValue.ddNo='';search()" />
</view>
<view class="sscgd">
<input type="text" placeholder="退货单号" />
<!-- <image v-show="inputValue.ddNo" class="title-input-img" src="@/static/x.png" @click="inputValue.ddNo=''" /> -->
</view>
<view class="sscgd">
<input type="text" placeholder="物料名称" />
<input type="text" v-model="inputValue.wlParamInfo" placeholder="物料名称" @confirm="search()" />
<image v-show="inputValue.wlParamInfo" class="title-input-img" src="@/static/x.png" @click="inputValue.wlParamInfo='';search()" />
</view>
<view class="sscgd">
<input type="text" placeholder="生产厂家" />
<input type="text" v-model="inputValue.manufacturer" placeholder="生产厂家" @confirm="search()" />
<image v-show="inputValue.manufacturer" class="title-input-img" src="@/static/x.png" @click="inputValue.manufacturer='';search()" />
</view>
<view class="search scr guodu">
<view class="search scr guodu" @click="search()">
<image src="/static/index/procurement/sh.png" mode="aspectFill" class="sh"></image>
<image src="/static/index/procurement/shr.png" mode="aspectFill" class="shr"></image>
检索
@ -61,11 +66,17 @@
pageNo: 1,
pageSize: 16,
nuId: uni.getStorageSync('nuId'),
wlParamInfo: ""
wlType:1,
ddNo:"",
wlParamInfo:"",
manufacturer:""
})
//
const getCardArray = () => {
inputValue.value.pageNo = 1;
inputValue.value.ddNo = "";
inputValue.value.wlParamInfo = "";
inputValue.value.manufacturer = ""
addlock.value = false
getCkWlList(inputValue.value).then((res : any) => {
// console.log("", res.result.records)
@ -75,6 +86,17 @@
}
})
}
//
const search = () => {
inputValue.value.pageNo = 1;
addlock.value = false
getCkWlList(inputValue.value).then((res : any) => {
InvoicingList.value = res.result.records
if (res.result.records.length != 16) {
addlock.value = true
}
})
}
//
const addlock = ref(false)
//
@ -166,9 +188,10 @@
border-radius: 1.5vw;
border: 1px solid #D2D2D2;
margin-right: 1.2vw;
position: relative;
input {
width: 100%;
width: 75%;
height: 100%;
padding: 0 1.2vw;
}
@ -197,4 +220,12 @@
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.title-input-img{
width: 35rpx;
height: 35rpx;
position: absolute;
right: 10rpx;
top: 50%;
transform: translateY(-50%);
}
</style>

View File

@ -4,7 +4,7 @@
<view class="topbox">
<view class="carditem guodu">
<view class="cgsl">
<text>{{ ((Number( pandiannumber|| 0) - Number(cardvalue.kcsl || 0)).toFixed(2)) }}</text>
<text :style="{ color: diffInfo.color }">{{ diffInfo.text }}</text>
<view>差额</view>
</view>
<view class="kcpdsl">
@ -31,7 +31,8 @@
</view>
<view class="msitem guodu">
<view>
<view>{{ cardvalue.materialName }}</view><text style="white-space: nowrap;">{{ cardvalue.materialNo }}</text>
<view>{{ cardvalue.materialName }}</view><text
style="white-space: nowrap;">{{ cardvalue.materialNo }}</text>
</view>
<view style="margin-top: 1.6vw;">
<text style="white-space: nowrap;"> 规格型号: {{ cardvalue.specificationModel }}</text>
@ -53,21 +54,22 @@
<view class="tan guodu">
<view class="tbox guodu">
<!-- :tb="v.dqkcsl" :pz="pz" @pddjjnum="pddjjnum" :pdsl="v.pdsl" :idex="i" -->
<torytor :show="true" :pddType='pddType' :pushnumber="pushnumber" @pddjjnum="pddjjnum" ></torytor>
<torytor :show="true" :pddType='pddType' :pushnumber="pushnumber" @pddjjnum="pddjjnum">
</torytor>
<view class="bpq">
<view class="bp b" @click="bz = !bz;pz = false">
<image src="/static/index/procurement/th.png" mode="aspectFill"></image>
<image :src="`/static/index/procurement/th${diffInfo.type}.png`" mode="aspectFill"></image>
备注
<!-- <text :class="{r:v?.pdType == 2&&v?.cesl>0,g:v.pdType == 1}" v-if="v?.content">1</text> -->
<text class="r" v-show="relcontent" >1</text>
<text :style="{ backgroundColor: diffInfo.color }" v-show="relcontent">1</text>
</view>
<view class="bp p" @click="pz = !pz;bz = false">
<image src="/static/index/procurement/xj.png" mode="aspectFill"></image>
<image :src="`/static/index/procurement/xj${diffInfo.type}.png`" mode="aspectFill"></image>
拍照
<!-- <text :class="{r:v?.pdType == 2&&v?.cesl>0,g:v.pdType == 1}"
v-if="v?.picPatharr?.length>0">{{v?.picPatharr?.length}}</text> -->
<text v-show="saveimagearray.length" class="g">{{ saveimagearray.length }}</text>
<text v-show="saveimagearray.length" :style="{ backgroundColor: diffInfo.color }">{{ saveimagearray.length }}</text>
</view>
<view class="qued same" @click="samecopy" v-if="pddType=='1'">
同步
@ -85,7 +87,8 @@
<view class="textare" v-if="bz">
<!-- <textarea v-model="v?.content" placeholder="请输入备注" maxlength="200"
:disabled="pddType!='1'"></textarea> -->
<textarea v-model="content" placeholder="请输入备注" maxlength="200" :disabled="false"></textarea>
<textarea v-model="content" placeholder="请输入备注" maxlength="200"
:disabled="false"></textarea>
</view>
<view class="submit" v-if="bz">
<view @click="bz = false;relcontent=``;content=``">{{pddType=='1'?'取消':'关闭'}}</view>
@ -94,9 +97,10 @@
</view>
<view class="gray-pgc guodu" :class="pz?'':'itemhei0'">
<view class="pztit" v-if="pz">拍照</view>
<scroll-view scroll-x class="scrollbgc">
<scroll-view scroll-y :scroll-top="scrollTop" class="scrollbgc">
<view class="zpj" v-if="pz">
<view class="zpk" v-for="(p,o) in saveimagearray" :key="o" @click="previewImage(saveimagearray,p,o)">
<view class="zpk" v-for="(p,o) in saveimagearray" :key="o"
@click="previewImage(saveimagearray,p,o)">
<image :src="serverUrl+p" mode="aspectFill"></image>
<view @click.stop="open=1;del(o)">
@ -133,8 +137,8 @@
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import torytor from './torytor.vue'
import { savePddInfo } from '../api/api.js'
const transition = ref(false)
const bz = ref(false)
const pz = ref(false)
@ -161,6 +165,23 @@
}
}
)
const diffInfo = computed(() => {
const diff = Number(pandiannumber.value || 0) - Number(props.cardvalue.kcsl || 0)
if (!Number.isFinite(diff) || diff === 0) {
return {
text: '--',
color: 'black',
type:0
}
}
return {
text: diff.toFixed(2),
color: diff > 0 ? '#0385FA' : '#FF5757',
type: diff > 0 ? 1 : 2
}
})
const open = ref(0)
const scrolltop = ref(0)
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
@ -215,14 +236,14 @@
const scroll = (e) => {
top.value = e.detail.scrollTop;
}
const inputValue = ref({
pandiannumber:0,
pandiannumber: 0,
})
const pandiannumber = ref(0)
const pddjjnum = (e:number) => {
const pddjjnum = (e : number) => {
// let ce = 0;
// props.pddlist[i].pdsl = e;
// ce = e - props.pddlist[i].dqkcsl;
@ -234,7 +255,7 @@
const config = () => {
// console.log("?")
if ( (Number(props.cardvalue.kcsl || 0) - Number(pandiannumber.value || 0)) && (relcontent.value == '' || relcontent.value == null)) {
if ((Number(props.cardvalue.kcsl || 0) - Number(pandiannumber.value || 0)) && (relcontent.value == '' || relcontent.value == null)) {
uni.showToast({
icon: 'error',
title: "请填写备注!"
@ -242,22 +263,22 @@
return
}
const diff = Number((Number(pandiannumber.value || 0) - Number(props.cardvalue.kcsl || 0)).toFixed(2))
let inputValue = {
nuId:uni.getStorageSync('nuId'),
id:props.cardvalue.id,
ckId:props.cardvalue.id,
pdsl:pandiannumber.value,
nuId: uni.getStorageSync('nuId'),
id: props.cardvalue.id,
ckId: props.cardvalue.id,
pdsl: pandiannumber.value,
pdType: diff > 0 ? 1 : diff < 0 ? 2 : 0,
cesl:diff,
content:relcontent.value,
picPath:saveimagearray.value.toString()
cesl: diff,
content: relcontent.value,
picPath: saveimagearray.value.toString()
}
// console.log("",inputValue)
savePddInfo(inputValue).then((res:any)=>{
savePddInfo(inputValue).then((res : any) => {
// console.log("",res.success)
if(res.success){
if (res.success) {
emit('finishit')
}
})
@ -289,6 +310,7 @@
}
});
}
const scrollTop = ref(0)
const sxdupld = (e) => {
let now = new Date();
let year = now.getFullYear();
@ -305,23 +327,23 @@
},
success: res => {
const data = JSON.parse(res.data);
// console.log("data",data)
saveimagearray.value.push(data.message)
// console.log(`111111111111`,saveimagearray.value)
// v.picPatharr.push(data.message);
// shuzhi(v)
scrollTop.value = 999998
nextTick(() => {
scrollTop.value = 999999 //
})
},
fail: () => {
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
}
const saveimagearray = ref([])
const previewImage = (arr, p, i) => {
let u = []
arr.picPatharr.forEach(e => {
arr.forEach(e => {
u.push(serverUrl.value + e)
})
uni.previewImage({
@ -341,8 +363,8 @@
// }
const picv = ref({});
const pici = ref(0);
const del = (index:number) => {
saveimagearray.value.splice(index,1)
const del = (index : number) => {
saveimagearray.value.splice(index, 1)
}
// const del1 = () => {
// picv.value.picPatharr.splice(pici.value, 1);
@ -395,20 +417,19 @@
const pushnumber = ref(0);
const content = ref("");
const relcontent = ref("")
const samecopy = () => {
pushnumber.value = -13.33;
nextTick(()=>{
pushnumber.value = Number(props.cardvalue.kcsl)
nextTick(() => {
pushnumber.value = Number(props.cardvalue.kcsl)
})
}
</script>
<style lang="less" scoped>
.cont {
width: 50vw;
height: 43vw;
height: 45vw;
background: #FFFFFF;
border-radius: 1.6vw;
position: fixed;
@ -419,7 +440,7 @@
.jisuansl {
width: 100%;
height: 24vw;
margin-top: 2vw;
margin-top: 1vw;
}
.topbox {
@ -819,9 +840,10 @@
.bpq {
width: 100%;
height: 2.6vw;
// background-color: red;
position: absolute;
display: flex;
bottom: 0.5vw;
bottom: -1.7vw;
left: 1vw;
.triangle-leftpz {
@ -875,16 +897,16 @@
height: 22vw;
.zpj {
width: 30%;
width: 106%;
display: flex;
flex-wrap: wrap;
flex-direction: column;
// flex-direction: column;
// padding: 0 1.6vw;
height: 22vw;
// background-color: red;
.zpk {
width: 16.4vw;
width: 30%;
height: 10vw;
margin-top: 1vw;
border-radius: 1.1vw;
@ -894,7 +916,7 @@
align-items: center;
background: #F9F9F9;
overflow: hidden;
margin-right: 1vw;
margin-right: 2%;
view {
width: 2vw;
@ -917,7 +939,7 @@
}
.clkpz {
width: 16.4vw;
width: 30%;
height: 10vw;
background: #FAFDFF;
border-radius: 1.1vw;
@ -927,6 +949,7 @@
align-items: center;
margin-top: 1vw;
flex-direction: column;
margin-right: 2%;
text {
font-weight: 400;
@ -1014,20 +1037,23 @@
align-items: center;
justify-content: center;
}
.same{
.same {
right: 10.5vw;
}
.bp {
width: 5vw;
height: 2.8vw;
display: flex;
align-items: flex-end;
align-items: center;
font-weight: 400;
font-size: 1.2vw;
color: #555555;
margin-left: 1.5vw;
white-space: nowrap;
position: relative;
margin-top: 1.2vw;
>text {
min-width: 1vw;
@ -1046,21 +1072,13 @@
background: #555555;
}
.g {
background: #0385FA;
border: 1px solid #0385FA;
}
.r {
background: #FF5757;
border: 1px solid #FF5757;
}
image {
width: 1.8vw;
height: 1.8vw;
width: 2vw;
height: 2vw;
margin-right: 0.4vw;
// padding-top: 0.4vw;
}
}
}

View File

@ -10,7 +10,7 @@
<view class="cgdh">
<view class="zc">
采购单号 {{ cardvalue.ddNo }}
<view>库存数量<text style="padding-left: 1vw;">{{ Number(cardvalue.kcsl ).toFixed(2) }}</text>
<view>库存数量<text style="padding-left: 0.5vw;">{{ Number(cardvalue.kcsl ).toFixed(2) }}</text>
</view>
</view>
<view class="sxd" @click="sxd = true">随行单</view>
@ -56,15 +56,10 @@
</view>
<view class="righs">
<view class="hezi">
<view class="hezi" style="position: relative;">
<view>
<text></text>
{{ Number(cardvalue.procurementPrice).toFixed(2) }}
</view>
<view class="jg">
采购价格
<!-- <text class="s"></text><text class="sb ss">0.26 </text> -->
<text class="s" v-if="cardvalue.procurementPrice < cardvalue.arrivalPrice"> <text
class="info-text">
{{ (cardvalue.arrivalPrice - cardvalue.procurementPrice).toFixed(2) }}</text></text>
@ -72,6 +67,12 @@
class="info-text">
{{ (cardvalue.procurementPrice - cardvalue.arrivalPrice).toFixed(2) }}</text></text>
</view>
<view class="jg">
采购价格
<!-- <text class="s"></text><text class="sb ss">0.26 </text> -->
</view>
</view>
<view class="hezi" @click="openCalcul">
<view>
@ -79,7 +80,7 @@
<!-- <image src="/static/index/material/edh.png" mode="aspectFill"></image> -->
<image src="/static/index/material/edl.png" mode="aspectFill"></image>
</view>
<view class="jg" style="margin-top: 0.5vw;">
<view class="jg">
销售价格
<!-- <text class="j"></text><text class="sb jj">0.26 </text> -->
</view>
@ -248,7 +249,7 @@
background: #D2D2D2;
position: absolute;
top: 4vw;
left: 39.7vw;
left: 36vw;
}
.list {
@ -274,10 +275,15 @@
justify-content: space-between;
margin-top: 3vw;
.s {
color: #FF5B5B !important;
margin: 0 0.5vw;
// margin: 0 0.5vw;
position: absolute;
top: -20%;
// transform: translateY(-50%);
right: -2.5vw;
.info-text {
color: #fff;
background-color: #FF5B5B;
@ -290,6 +296,10 @@
.j {
color: #0385FA !important;
margin: 0 0.5vw;
position: absolute;
top: -20%;
// transform: translateY(-50%);
right: -2.5vw;
.info-text {
color: #fff;
@ -436,13 +446,14 @@
.carditem {
height: 100%;
width: 39.7vw;
width: 35vw;
display: flex;
transition: transform 500ms cubic-bezier(.2, .8, .2, 1);
will-change: transform;
margin-top: 2vw;
margin-top: 1vw;
justify-content: space-between;
padding-right: 1.8vw;
// background-color: red;
.msitem {
min-width: 23vw;

View File

@ -1,6 +1,6 @@
<template>
<view>
<view class="box guodu" :style="!show?'width: 0;right:-6vw':'width: 67vw'" >
<view class="box guodu" :style="!show?'width: 0;right:-6vw':'width: 67vw'">
<view class="title">
<view></view>
随行单
@ -18,48 +18,48 @@
</view>
<view class="dz">
<view>采购单号</view>
101C20251121006
<view class="je">
<text> 25</text>
<text>订单金额</text>
</view>
101C20251121006
<view class="je">
<text> 25</text>
<text>订单金额</text>
</view>
</view>
<view class="dz">
<view>采购日期</view>
2025-10-12
2025-10-12
</view>
<view class="cgz top1">
<view class="left">
<image src="/static/index/material/jg.png" mode="aspectFill"></image>
机构信息
</view>
</view>
</view>
<view class="dz">
<view>机构名称</view>
吉林省久泰健康产业有限公司
</view>
<view class="dz">
<view>收货地址</view>
吉林省长春市朝阳区开运街41号吉省长春市朝阳区开运街41号
吉林省长春市朝阳区开运街41号吉省长春市朝阳区开运街41号
</view>
<view class="dz">
<view>联系人</view>
张某
张某
</view>
<view class="dz">
<view>电话</view>
13845337753
</view>
<view class="cgz top1">
<view class="left">
<image src="/static/index/material/gys.png" mode="aspectFill"></image>
供应商信息
</view>
</view>
</view>
<view class="dz">
<view>供应商</view>
吉林天林商贸有限公司
@ -72,7 +72,7 @@
<view>电话</view>
13356856633
</view>
<view class="conts">
<view class="tittop">
<text>纸尿裤-拉拉裤纸尿裤</text>
@ -93,7 +93,7 @@
<view>生产厂家</view>
吉林省捌零信创科技有限
</view>
<view class="jglb" style="margin-top: 2.5vw;">
<view>
<text>¥0.32</text>
@ -103,11 +103,11 @@
<text></text>
<text>采购单位</text>
</view>
<view class="l">
<view class="l beblue">
<text>¥0.56</text>
<text>销售价格</text>
</view>
<view class="l">
<view class="l beblue">
<text></text>
<text>销售单位</text>
</view>
@ -121,36 +121,35 @@
<text>150</text>
<text>挂账数量</text>
</view>
<view >
<view>
<text>12</text>
<text>销账数量</text>
</view>
<view >
<view>
<text>0.56</text>
<text>销售金额</text>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent } from 'vue';
const props = defineProps({
show: {
type: Boolean
},
})
const props = defineProps({
show: {
type: Boolean
},
})
</script>
<style lang="less" scoped>
.conts{
.conts {
width: 57vw;
height: 36vw;
background: #FFFFFF;
@ -158,35 +157,41 @@
border: 1px solid #DCDCDC;
padding: 1.8vw 3.3vw;
margin-top: 2vw;
.jglb{
.jglb {
width: 100%;
height: 9vw;
border-top: 1px solid #E5E5E5;
display: flex;
justify-content: space-between;
view{
view {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text{
&:nth-child(1){
color: #555555;
text {
&:nth-child(1) {
font-size: 2.1vw;
color: #555555;
font-weight: bold;
}
&:nth-child(2){
&:nth-child(2) {
font-size: 1.4vw;
color: #555555;
}
}
}
.l{
.l {
color: #0385FA;
}
}
.tittop{
.tittop {
display: flex;
justify-content: space-between;
align-items: center;
@ -194,15 +199,18 @@
height: 4.5vw;
border-bottom: 1px solid #E5E5E5;
margin-bottom: 1.5vw;
text{
text {
font-weight: bold;
font-size: 2.1vw;
color: #222222;
}
view{
view {
font-size: 1.3vw;
color: #888888;
text{
text {
font-weight: bold;
font-size: 2.4vw;
color: #333333;
@ -210,108 +218,127 @@
}
}
}
}
.box{
width: 0;
height: 100vh;
background: #FFFFFF;
position: fixed;
top: 0;
right: 0;
z-index: 1011;
overflow: hidden;
border-radius: 3vw 0 0 3vw;
padding: 3vw;
.scrolsxd{
width: 100%;
height: calc(100vh - 10vw);
margin-top: 2vw;
padding-left: 1.2vw;
.dz{
}
.box {
width: 0;
height: 100vh;
background: #FFFFFF;
position: fixed;
top: 0;
right: 0;
z-index: 1011;
overflow: hidden;
border-radius: 3vw 0 0 3vw;
padding: 3vw;
.scrolsxd {
width: 100%;
height: calc(100vh - 10vw);
margin-top: 2vw;
padding-left: 1.2vw;
.dz {
width: 100%;
display: flex;
align-items: center;
margin-top: 0.7vw;
font-size: 1.4vw;
color: #333333;
position: relative;
view {
width: 7vw;
display: flex;
justify-content: flex-end;
align-items: center;
}
.je {
flex-direction: column;
justify-content: center;
position: absolute;
right: 0;
top: -0.5vw;
text {
&:nth-child(1) {
font-weight: bold;
font-size: 2.4vw;
color: #333333;
}
&:nth-child(2) {
font-size: 1.3vw;
color: #888888;
}
}
}
}
.top1 {
margin-top: 1vw;
}
.cgz {
width: 100%;
height: 4.2vw;
display: flex;
justify-content: space-between;
border-bottom: 1px solid #E5E5E5;
margin-bottom: 2vw;
.left {
font-weight: bold;
font-size: 1.7vw;
color: #333333;
display: flex;
align-items: center;
image {
width: 2.1vw;
height: 2.1vw;
margin-right: 0.8vw;
}
}
.cd {
width: 7.9vw;
height: 3.2vw;
border-radius: 1.1vw;
border: 1px solid #0385FA;
font-size: 1.6vw;
color: #0385FA;
display: flex;
justify-content: center;
align-items: center;
}
}
}
.title {
font-size: 1.7vw;
color: #222222;
display: flex;
align-items: center;
margin-top: 0.7vw;
font-size: 1.4vw;
color: #333333;
position: relative;
view{
width: 7vw;
display: flex;
justify-content: flex-end;
align-items: center;
}
.je{
flex-direction: column;
justify-content: center;
position: absolute;
right: 0;
top: -0.5vw;
text{
&:nth-child(1){
font-weight: bold;
font-size:2.4vw;
color: #333333;
}
&:nth-child(2){
font-size:1.3vw;
color: #888888;
}
}
}
}
.top1{
margin-top: 1vw;
}
.cgz{
width: 100%;
height: 4.2vw;
display: flex;
justify-content: space-between;
border-bottom: 1px solid #E5E5E5;
margin-bottom: 2vw;
.left{
font-weight: bold;
font-size: 1.7vw;
color: #333333;
display: flex;
align-items: center;
image{
width: 2.1vw;
height: 2.1vw;
margin-right: 0.8vw;
}
}
.cd{
width: 7.9vw;
height: 3.2vw;
border-radius: 1.1vw;
border: 1px solid #0385FA;
font-size: 1.6vw;
color: #0385FA;
display: flex;
justify-content: center;
align-items: center;
view {
width: 0.5vw;
height: 1.4vw;
background: radial-gradient(0% 0% at 0% 0%, #006DC9 7.25%, #0385FA 100%), #F7F7F7;
border-radius: 0.2vw;
margin-right: 1vw;
}
}
}
.title{
font-size: 1.7vw;
color: #222222;
display: flex;
align-items: center;
view{
width: 0.5vw;
height: 1.4vw;
background: radial-gradient( 0% 0% at 0% 0%, #006DC9 7.25%, #0385FA 100%), #F7F7F7;
border-radius: 0.2vw;
margin-right: 1vw;
}
}
}
.guodu {
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
</style>
.beblue {
color: #0385FA;
}
</style>

View File

@ -294,7 +294,7 @@
margin-right: 1vw;
.calculator-father {
width: 23vw;
width: 20vw;
height: 90%;
margin: 0 auto 0;
flex-wrap: wrap;

View File

@ -71,7 +71,7 @@
<view class="middle-heng"></view>
<view class="pls-card-middle-one">
<view class="middle-title">
2222.2222.22
{{ v.createTime?.slice(0,10).replace(/-/g, '.') }}
</view>
<view class="middle-heng-father">
@ -81,15 +81,14 @@
<view>
采购
</view>
<view>
<view class="notoomuch">
[ 梁嘉豪 ]
</view>
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title" :style=" v?.cgdType=='9' ?{color:`#FF5757`}:{}">
2026.03.03
<!--{{ v?.cgdType=='9' ?v.zfTime?.slice(0,10).replace(/-/g, '.'):Number(v.status)<1?``:v.jhTime?.slice(0,10).replace(/-/g, '.') }}-->
{{ v.jhTime?.slice(0,10).replace(/-/g, '.') }}
</view>
<view class="middle-heng-father">
<image class="middle-ball-img" style="width: 32rpx;height: 32rpx;"
@ -114,8 +113,8 @@
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
<!-- {{ v.wjTime?.slice(0,10).replace(/-/g, '.') }} -->
2026.03.03
{{ v.wjTime?.slice(0,10).replace(/-/g, '.') }}
</view>
<view class="middle-heng-father">
<view class="middle-ball" v-if="Number(v.status)<2"></view>
@ -597,6 +596,10 @@
text-overflow: ellipsis;
white-space: nowrap;
font-size: 25rpx;
.notoomuch{
width: 30rpx;
background-color: red;
}
}
}
}

View File

@ -56,14 +56,14 @@
</view>
</view>
</view>
<!-- <view class="bottom-button" @click="exitshow=true">
<view class="bottom-button" @click="exitshow=true">
注销登录
</view> -->
</view>
<view class="text-center">
<!-- <view>{{ uni.getStorageSync('orgListName') }}</view> -->
</view>
<!-- <exit :show="exitshow" @close="exitshow=false" /> -->
<exit :show="exitshow" @close="exitshow=false" />
<reset :show="resetshow" @close="resetshow=false" />
<zy-update ref="zyupgrade" :noticeflag="true" theme="blue" :h5preview="false" oldversion="1.0.0"
:appstoreflag="true" :autocheckupdate="true" @showupdateTips="noNeed"></zy-update>
@ -112,7 +112,7 @@
<script setup lang="ts">
import { ref, onMounted, watch, nextTick } from 'vue'
// import exit from "@/component/public/exit.vue"
import exit from "@/component/public/exit.vue"
import reset from "@/component/public/reset.vue"
import ZyUpdate from '@/component/zy-upgrade/zy-upgrade.vue'
import oneseven from '@/pages/login/oneseven.vue'
@ -125,7 +125,7 @@
const issay = ref(false)
const openany = ref(false);
const opentype = ref(false);
// const exitshow = ref(false);
const exitshow = ref(false);
const resetshow = ref(false);
const emit = defineEmits(['jump'])
// const props = defineProps({ isShow: { type: Boolean, required: true } })

View File

@ -1,6 +1,6 @@
// 全局请求封装
export const base_url = 'https://www.focusnu.com/opeapi'
// export const base_url = 'http://192.168.2.16:8081/opeapi/'
// export const base_url = 'http://192.168.2.18:8081/opeapi/'
// const base_url = 'http://192.168.2.55:8081/opeapi'
export const media_url = 'https://www.focusnu.com/media/'
// 请求超出时间
@ -74,7 +74,7 @@ export default (params) => {
}
},
fail(err) {
console.log(err)
console.log(err,/^https?:\/\//.test(url) ? url : base_url + url)
if (err.errMsg.indexOf('request:fail') !== -1) {
uni.showToast({
title: '网络异常',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 965 B