600 lines
13 KiB
Vue
600 lines
13 KiB
Vue
<template>
|
||
<view>
|
||
<view class="box guodu" :style="!show?'width: 0;right:-6vw':'width: 78vw'">
|
||
<view class="title">
|
||
<view></view>
|
||
销售价格
|
||
</view>
|
||
<view class="gys">供应商:{{ cardvalue.gysName }}</view>
|
||
<view class="list">
|
||
<view class="cgdh">
|
||
<view class="zc">
|
||
采购单号 {{ cardvalue.ddNo }}
|
||
<view>库存数量<text style="padding-left: 0.5vw;">{{ Number(cardvalue.kcsl ).toFixed(2) }}</text>
|
||
</view>
|
||
</view>
|
||
<view class="sxd" @click="sxd = true">随行单</view>
|
||
</view>
|
||
<view class="contents">
|
||
<view class="carditem guodu">
|
||
|
||
<view class="speitem guodu">
|
||
<view class="imghs">
|
||
<image style="border-radius: 1vw;"
|
||
:src="cardvalue.materialImg?serverUrl+cardvalue.materialImg:'/static/index/procurement/k.png'"
|
||
mode="aspectFill">
|
||
</image>
|
||
</view>
|
||
<view class="cardp">
|
||
<view>{{ cardvalue.categoryId_dictText }}</view>
|
||
<view>{{ cardvalue.typeId_dictText }}</view>
|
||
</view>
|
||
<!-- <view class="cardp">
|
||
<view v-if="v.categoryId_dictText">{{v.categoryId_dictText}}</view>
|
||
<view v-if="v.typeId_dictText">{{v.typeId_dictText}}</view>
|
||
<view v-if="v.medicationId_dictText">{{v.medicationId_dictText}}</view>
|
||
</view> -->
|
||
</view>
|
||
<view class="msitem guodu">
|
||
<view>
|
||
<view>{{ cardvalue.materialName }}</view>
|
||
</view>
|
||
<view style="margin-top: 1vw;">
|
||
<text style="white-space: nowrap;"> 物料编码: {{ cardvalue.materialNo }}</text>
|
||
</view>
|
||
<view>
|
||
<text style="white-space: nowrap;"> 规格型号: {{ cardvalue.specificationModel }}</text>
|
||
</view>
|
||
<view>
|
||
<text style="white-space: nowrap;"> 品牌型号:{{ cardvalue.brandType }}</text>
|
||
</view>
|
||
<view>
|
||
<text style="white-space: nowrap;"> 生产厂家:{{ cardvalue.manufacturer }}</text>
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
|
||
<view class="righs">
|
||
<view class="hezi" style="position: relative;">
|
||
<view>
|
||
<text>¥</text>
|
||
{{ Number(cardvalue.procurementPrice).toFixed(2) }}
|
||
<text class="s" v-if="cardvalue.procurementPrice < cardvalue.arrivalPrice">↑ <text
|
||
class="info-text">
|
||
¥{{ (cardvalue.arrivalPrice - cardvalue.procurementPrice).toFixed(2) }}</text></text>
|
||
<text class="j" v-if="cardvalue.procurementPrice > cardvalue.arrivalPrice">↓<text
|
||
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>
|
||
<text>¥</text>{{ changethenvalue==-998? Number(cardvalue.xsjg).toFixed(2):Number(changethenvalue).toFixed(2) }}
|
||
<!-- <image src="/static/index/material/edh.png" mode="aspectFill"></image> -->
|
||
<image src="/static/index/material/edl.png" mode="aspectFill"></image>
|
||
</view>
|
||
<view class="jg">
|
||
销售价格
|
||
<!-- <text class="j">↓</text><text class="sb jj">¥0.26 </text> -->
|
||
</view>
|
||
</view>
|
||
<view class="hezi">
|
||
<view>
|
||
{{ cardvalue.wlunits }}
|
||
</view>
|
||
<text>采购单位</text>
|
||
</view>
|
||
<view class="hezi">
|
||
<view style="padding-left: 0.3vw;">
|
||
{{ cardvalue.xsdw }}
|
||
<!-- <image src="/static/index/material/edr.png" mode="aspectFill"></image> -->
|
||
</view>
|
||
<text>销售单位</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="btn">
|
||
<view class="qx" @click="emit('close')">取消</view>
|
||
<view class="qd" @click="successchange">确认</view>
|
||
</view>
|
||
<view class="mengban" style="z-index: 1;" v-if="opencal" @click="opencal=false"></view>
|
||
<view class="cal-view" :style="opencal?{}:{bottom:`-1200rpx`}">
|
||
<calculator :show="true" :translateNumber="translateNumber" @right="rightchange" @close="opencal=false">
|
||
</calculator>
|
||
</view>
|
||
</view>
|
||
<view class="mengban" v-if="sxd" @click="sxd = false"> </view>
|
||
<sxds :show="sxd" @close="sxd = false"></sxds>
|
||
<!-- <view class="mengban" style="z-index: 119;" v-if="true"></view> -->
|
||
<errorshow :show="openerror" :font="errmsg" @close="openerror=false" />
|
||
|
||
<!-- <calculator :show="addflag" @jjnum="jjnum" :caigouobj="caigouobj" @colse="qk" @right="right"></calculator> -->
|
||
</view>
|
||
</template>
|
||
|
||
<script setup lang="ts">
|
||
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent, watch } from 'vue';
|
||
import sxds from './sxd.vue'
|
||
import calculator from './calculator.vue'
|
||
import { editXsjg } from '../api/api.js'
|
||
|
||
const props = defineProps({
|
||
show: {
|
||
type: Boolean
|
||
},
|
||
cardvalue: {
|
||
type: Object
|
||
}
|
||
})
|
||
watch(
|
||
() => props.show,
|
||
() => {
|
||
changethenvalue.value = -998;
|
||
opencal.value = false
|
||
}
|
||
)
|
||
const sxd = ref(false)
|
||
const emit = defineEmits(['close', 'finishit'])
|
||
const serverUrl = uni.getStorageSync('serverUrl') + '/sys/common/static/';
|
||
const opencal = ref(false);
|
||
const translateNumber = ref(0)
|
||
const openerror = ref(false)
|
||
const errmsg = ref('')
|
||
const openCalcul = () => {
|
||
opencal.value = true;
|
||
translateNumber.value = -63.21
|
||
nextTick(() => {
|
||
if (changethenvalue.value == -998) {
|
||
translateNumber.value = Number(props.cardvalue.xsjg)
|
||
} else {
|
||
translateNumber.value = Number(changethenvalue.value)
|
||
}
|
||
|
||
})
|
||
}
|
||
const changethenvalue = ref(-998)
|
||
const rightchange = (price : number) => {
|
||
changethenvalue.value = price
|
||
console.log("right", price)
|
||
opencal.value = false
|
||
}
|
||
const successchange = () => {
|
||
if (changethenvalue.value == -998) {
|
||
emit('close')
|
||
} else {
|
||
let data = {
|
||
id: props.cardvalue.id,
|
||
xsjg: changethenvalue.value
|
||
}
|
||
editXsjg(data).then((res : any) => {
|
||
if (res.success) {
|
||
console.log("看看改成啥了", res)
|
||
emit("finishit")
|
||
emit('close')
|
||
} else {
|
||
errmsg.value = res.result?.message ? res.result?.message : res.message
|
||
openerror.value = true;
|
||
}
|
||
})
|
||
// console.log("data", data)
|
||
}
|
||
|
||
}
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
.mengban {
|
||
width: 100vw;
|
||
height: 100vh;
|
||
position: fixed;
|
||
background: RGBA(240, 240, 240, 0.64);
|
||
top: 0;
|
||
left: 0;
|
||
z-index: 1010;
|
||
}
|
||
|
||
.box {
|
||
width: 0;
|
||
height: 100vh;
|
||
background: #FFFFFF;
|
||
position: fixed;
|
||
top: 0;
|
||
right: 0;
|
||
z-index: 1001;
|
||
overflow: hidden;
|
||
border-radius: 3vw 0 0 3vw;
|
||
padding: 3vw;
|
||
|
||
.btn {
|
||
position: absolute;
|
||
right: 3.5vw;
|
||
bottom: 2.7vw;
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
|
||
view {
|
||
width: 8vw;
|
||
height: 3.4vw;
|
||
border-radius: 1.1vw;
|
||
font-size: 16px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
margin-left: 1vw;
|
||
}
|
||
|
||
.qd {
|
||
background: #57A8FA;
|
||
color: #FFFFFF;
|
||
}
|
||
|
||
.qx {
|
||
background: #E1F0FF;
|
||
color: #555555;
|
||
}
|
||
}
|
||
|
||
.list::after {
|
||
content: '';
|
||
width: 1rpx;
|
||
height: 15vw;
|
||
background: #D2D2D2;
|
||
position: absolute;
|
||
top: 4vw;
|
||
left: 36vw;
|
||
}
|
||
|
||
.list {
|
||
width: 71.9vw;
|
||
height: 21.5vw;
|
||
background: #FFFFFF;
|
||
border-radius: 2.2vw;
|
||
border: 1px solid #D2D2D2;
|
||
margin-top: 1.7vw;
|
||
padding: 1.8vw 2.3vw 0;
|
||
position: relative;
|
||
|
||
.contents {
|
||
width: 100%;
|
||
height: 16vw;
|
||
display: flex;
|
||
|
||
.righs {
|
||
width: 30vw;
|
||
height: 100%;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
margin-top: 3vw;
|
||
|
||
|
||
.s {
|
||
color: #FF5B5B !important;
|
||
// margin: 0 0.5vw;
|
||
position: absolute;
|
||
top: -20%;
|
||
// transform: translateY(-50%);
|
||
right: -2.5vw;
|
||
|
||
.info-text {
|
||
color: #fff;
|
||
background-color: #FF5B5B;
|
||
padding-left: 0.3vw;
|
||
padding-right: 0.5vw;
|
||
border-radius: 10rpx;
|
||
}
|
||
}
|
||
|
||
.j {
|
||
color: #0385FA !important;
|
||
margin: 0 0.5vw;
|
||
position: absolute;
|
||
top: -20%;
|
||
// transform: translateY(-50%);
|
||
right: -2.5vw;
|
||
|
||
.info-text {
|
||
color: #fff;
|
||
background-color: #0385FA;
|
||
padding-left: 0.3vw;
|
||
padding-right: 0.5vw;
|
||
border-radius: 10rpx;
|
||
}
|
||
}
|
||
|
||
.ss {
|
||
background: #FF5B5B !important;
|
||
}
|
||
|
||
.jj {
|
||
background: #0385FA !important;
|
||
|
||
}
|
||
|
||
.sb {
|
||
width: 4.8vw;
|
||
height: 2.1vw;
|
||
border-radius: 0.5vw;
|
||
font-weight: 400;
|
||
font-size: 1.4vw;
|
||
color: #FFFFFF !important;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
margin-left: 0.5vw;
|
||
}
|
||
|
||
.hezi {
|
||
width: 14vw;
|
||
height: 70rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
white-space: nowrap;
|
||
|
||
>view {
|
||
font-size: 2.2vw;
|
||
color: #333333;
|
||
display: flex;
|
||
align-items: flex-end;
|
||
font-weight: bold;
|
||
height: 2.4vw;
|
||
white-space: nowrap;
|
||
|
||
text {
|
||
font-size: 1.4vw;
|
||
line-height: 2.3vw;
|
||
|
||
}
|
||
|
||
image {
|
||
width: 1.4vw;
|
||
height: 1.4vw;
|
||
position: relative;
|
||
top: -0.4vw;
|
||
}
|
||
}
|
||
|
||
.jg {
|
||
font-size: 1.3vw;
|
||
color: #888888;
|
||
white-space: nowrap;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.cgdh {
|
||
width: 100%;
|
||
height: 40rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
white-space: nowrap;
|
||
|
||
.zc {
|
||
font-size: 1.5vw;
|
||
color: #777777;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
view {
|
||
margin-left: 4.5vw;
|
||
|
||
text {
|
||
font-weight: bold;
|
||
font-size: 2vw;
|
||
color: #222222;
|
||
}
|
||
}
|
||
}
|
||
|
||
.sxd {
|
||
width: 5.5vw;
|
||
height: 2.4vw;
|
||
background: #FFFFFF;
|
||
border-radius: 0.9vw;
|
||
border: 1px solid #0385FA;
|
||
font-size: 1.2vw;
|
||
color: #0385FA;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
.gys {
|
||
font-weight: bold;
|
||
font-size: 1.4vw;
|
||
color: #777777;
|
||
margin-top: 2.3vw;
|
||
}
|
||
|
||
.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 {
|
||
transition: .4s;
|
||
-webkit-transform-style: preserve-3d;
|
||
-webkit-overflow-scrolling: touch;
|
||
}
|
||
|
||
|
||
.carditem {
|
||
height: 100%;
|
||
width: 35vw;
|
||
display: flex;
|
||
transition: transform 500ms cubic-bezier(.2, .8, .2, 1);
|
||
will-change: transform;
|
||
margin-top: 1vw;
|
||
justify-content: space-between;
|
||
padding-right: 1.8vw;
|
||
// background-color: red;
|
||
|
||
.msitem {
|
||
min-width: 23vw;
|
||
height: 14vw;
|
||
position: relative;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: space-around;
|
||
|
||
>view {
|
||
|
||
&:nth-child(2),
|
||
&:nth-child(3),
|
||
&:nth-child(4),
|
||
&:nth-child(6),
|
||
&:nth-child(5) {
|
||
margin-top: 0.25vw;
|
||
max-width: 23vw;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
overflow: hidden;
|
||
|
||
text {
|
||
font-weight: 400;
|
||
font-size: 1.3vw;
|
||
color: #777777;
|
||
margin-top: 0.25vw;
|
||
}
|
||
}
|
||
|
||
&:nth-child(1) {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
height: 2vw;
|
||
margin-top: 1vw;
|
||
|
||
>view {
|
||
width: 19vw;
|
||
height: 2vw;
|
||
font-weight: bold;
|
||
font-size: 1.8vw;
|
||
color: #222222;
|
||
text-overflow: ellipsis;
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
text {
|
||
width: 6vw;
|
||
font-weight: 300;
|
||
font-size: 1.4vw;
|
||
color: #222222;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
// .spleft{
|
||
// margin-left: -15vw !important;
|
||
// }
|
||
.speitem {
|
||
min-width: 13vw;
|
||
height: 14vw;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
|
||
.cardp {
|
||
width: 12.5vw;
|
||
height: 4vw;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
margin: 0 auto;
|
||
align-items: center;
|
||
|
||
view {
|
||
min-width: 5.5vw;
|
||
height: 1.8vw;
|
||
border-radius: 0.9vw;
|
||
border: 1px solid #D2D2D2;
|
||
margin: 0.5vw 0 0 0.5vw;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
font-weight: 400;
|
||
font-size: 1vw;
|
||
color: #555555;
|
||
padding: 0 0.25vw;
|
||
|
||
&:nth-child(1),
|
||
&:nth-child(2) {
|
||
max-width: 6vw;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
display: block;
|
||
line-height: 1.8vw;
|
||
text-align: center;
|
||
}
|
||
|
||
&:nth-child(3) {
|
||
max-width: 11.5vw;
|
||
padding: 0 0.8vw;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
display: block;
|
||
line-height: 1.8vw;
|
||
text-align: center;
|
||
}
|
||
}
|
||
}
|
||
|
||
.imghs {
|
||
width: 10vw;
|
||
height: 10vw;
|
||
margin: 1vw auto 0.25vw;
|
||
padding: 0.2vw;
|
||
background: #fff;
|
||
border-radius: 1.1vw;
|
||
|
||
>image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 1.1vw;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
.cal-view {
|
||
position: absolute;
|
||
bottom: 70rpx;
|
||
left: 400rpx;
|
||
width: 800rpx;
|
||
height: 1000rpx;
|
||
transition: bottom 0.3s ease;
|
||
z-index: 2;
|
||
}
|
||
</style> |