Browse Source

首次提交

master
zq 4 days ago
parent
commit
040b28f53c
  1. 172
      components/listWrap.vue
  2. 204
      components/visitorInfo.vue
  3. 34
      pages.json
  4. 555
      pages/coinsDetail/index.vue
  5. 605
      pages/home/index.vue
  6. 25
      pages/profitStat/index.vue
  7. 252
      pages/searchCoinName/index.vue
  8. BIN
      static/images/date_open.png
  9. 1
      static/images/editRate.svg
  10. 1
      static/images/edit_rate.svg
  11. BIN
      static/images/form_edit.png
  12. 1
      static/images/gou.svg
  13. 1
      static/images/icon-popup-close.svg
  14. BIN
      static/images/iocn_back.png
  15. 1
      static/images/prescriptSearch.svg
  16. BIN
      static/images/qrcode_get.png

172
components/listWrap.vue

@ -1,172 +0,0 @@
<template>
<view>
<view class="bed-wait-item" v-for="(item, index) in bedWaitList" :key="index" @tap="lookDetail(item)">
<view class="bed-wait-info">
<view class="bed-wait-name PfScMedium">{{ item.coin_name }}</view>
<view class="bed-desc flex">
<view :class="['bed-age',type == '1' ? 'bold':'']">{{ item.buying_price }}{{ type == '2' ?'进':'' }}</view>
<view class="bed-sex bed-sex-bold" v-if="type == '2'">{{ item.price }}元售</view>
</view>
</view>
<view class="bed-wait-time">
<view class="bed-left">
<!-- 布局修改 -->
<view class="bed-left-flex">
<view class="bed-sex">{{ item.year }}</view>
<view class="bed-visit-format" v-if="item.format">{{ item.format }}</view>
</view>
<view>{{ item.rating_department }}</view>
</view>
<view class="bed-checkin-time flex-between">
<view class="bed-visit-time">{{ item.operate_time }}</view>
<view>{{ item.rating_code }}</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
props:['bedWaitList','type'],
options: { styleIsolation: "shared" },
components: {
},
data() {
return {
list:[]
}
},
methods:{
lookDetail(item) {
uni.setStorageSync('detail', JSON.stringify(item))
let url = `/pages/coinsDetail/index?id=${item.rating_code}`
this.$nav.navToPath(url)
},
}
}
</script>
<style lang="scss" scoped>
.bold{
font-weight: 500 !important;
color: #000000 !important;
}
.bed-wait-item {
padding: 36rpx 0rpx;
border-bottom: 2rpx solid #F1F1F1;
position: relative;
}
.bed-wait-info {
display: flex;
align-items: center;
.bed-wait-name {
font-size: 32rpx;
color: #000000;
margin-right: 24rpx;
font-weight: 500;
}
.bed-visit-type-desc {
padding: 0 18rpx;
height: 40rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
line-height: normal;
border-radius: 6rpx;
margin-left: 24rpx;
background: #F7FCFF;
color: #007FD0;
border: 1rpx solid #5FA1CB;
&.ml-auto {
margin-left: auto;
}
}
.bed-desc {
color: #999999;
font-size: 28rpx;
margin-left: auto;
gap: 12rpx;
}
.bed-sex {
font-size: 28rpx;
font-weight: normal;
line-height: 44rpx;
color: #242833;
letter-spacing: 0.86rpx;
}
.bed-sex-bold,.bed-age{
font-family: PingFang SC;
font-size: 30rpx;
font-weight: 500;
line-height: 44rpx;
letter-spacing: 0.86rpx;
color: #000000;
}
.bed-age {
font-size: 30rpx;
font-weight: normal;
line-height: 44rpx;
letter-spacing: 0.86rpx;
color: #999999;
font-weight: normal;
}
}
.bed-wait-time {
display: flex;
column-gap: 24rpx;
margin-top: 16rpx;
flex-direction: column;
gap: 16rpx;
view {
font-size: 24rpx;
color: #999999;
}
.bed-visit-format {
border-radius: 6rpx;
background: #EBEBEB;
padding: 2rpx 16rpx;
font-family: PingFang SC;
font-size: 26rpx;
font-weight: normal;
line-height: normal;
letter-spacing: normal;
color: #666666;
width: fit-content;
}
.bed-left {
display: flex;
gap: 16rpx;
align-items: center;
justify-content: space-between;
}
.bed-left-flex{
display: flex;
gap: 24rpx;
align-items: center;
}
}
.flex-between{
display: flex;
justify-content: space-between;
}
</style>

204
components/visitorInfo.vue

@ -1,204 +0,0 @@
<template>
<view class="user-info-com" @click="$emit('click')">
<view class="user-info">
<view class="user-top">
<view class="user-left">
<view class="user-name PfScSemibold ft38">{{ visitorInfo.coin_name }}</view>
<view class="user-num">{{ visitorInfo.year }}</view>
</view>
<view class="user-right" v-if="visitorInfo.status" :class="className[visitorInfo.status]">{{ descObj[visitorInfo.status] }}</view>
<view class="user-right" v-else :class="className[visitorInfo.ancient_coin_status]">{{ visitorInfo.ancient_coin_status_desc }}</view>
</view>
<view class="user-bottom gap24 flex-between" v-if="visitorInfo.format || visitorInfo.operate_time">
<view>
<view v-if="visitorInfo.format">板式{{ visitorInfo.format }}</view>
</view>
<view v-if="visitorInfo.operate_time">{{ visitorInfo.operate_time }} </view>
</view>
</view>
</view>
</template>
<script>
export default {
name: "visitorInfo",
data() {
return {
cssUrl: this.cssUrl,
className: {
0: 'notStore',//
'1': 'inventory',//
'2': 'outBound'//
},
descObj: {
0: '未入库',//
'1': '库存',//
'2': '已出库'//
},
}
},
props: {
visitorInfo: {
type: Object,
// default: () => ({
// name: '',
// year: '1889',
// phone: '1310684212',
// id: 3,
// time: '2025.12.21 13:23',
// address: '',
// plateType:'广',
// type: '1'
// })
},
},
methods: {
resetUinfo() {
this.$emit('resetUinfo')
}
}
}
</script>
<style scoped lang="scss">
.user-info-com {
font-family: PingFang SC;
.user-info {
margin: 0 18rpx 0rpx;
background: #FFFFFF;
padding: 34rpx 24rpx 44rpx;
position: relative;
.user-bg {
position: absolute;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 1;
}
}
.gap24 {
gap: 24rpx;
}
.phone {
display: flex;
align-items: center;
height: 39rpx;
line-height: 39rpx;
img {
width: 34rpx;
height: 34rpx;
margin-left: 12rpx;
}
}
.user-top,
.user-bottom {
position: relative;
display: flex;
justify-content: space-between;
z-index: 8;
}
.user-top {
display: flex;
justify-content: space-between;
align-items: center;
}
.user-left {
display: flex;
align-items: center;
padding-left: 20rpx;
&::before{
content: '';
display: block;
position: absolute;
width: 8rpx;
height: 34rpx;
border-radius: 10rpx;
background: #58CA7F;
left: 0;
top: 8rpx;
}
}
.user-name {
font-size: 38rpx;
color: #333333;
line-height: 50rpx;
}
.user-num {
margin-left: 24rpx;
font-size: 28rpx;
color: #79624A;
line-height: 40rpx;
font-size: 28rpx;
font-weight: normal;
line-height: 44rpx;
letter-spacing: 0.86rpx;
color: #242833;
}
.user-right {
font-size: 26rpx;
text-align: center;
letter-spacing: 0.69rpx;
color: #999999;
line-height: 36rpx;
border-radius: 6rpx;
background: #FCFCFC;
border: 1.5rpx solid #999999;
padding: 2rpx 18rpx;
}
.notStore{
color: #999999;
background: #FCFCFC;
border-color: #999999;
}
.inventory{
color: #5FA1CB;
background: #F7FCFF;
border-color: #5FA1CB;
}
.outBound{
color: #58CA7F;
background: #F8FFF7;
border-color: #5FA1CB;
}
.user-bottom {
margin-top: 32rpx;
display: flex;
align-items: center;
font-size: 28rpx;
font-weight: normal;
line-height: normal;
letter-spacing: 0.86rpx;
color: #999999;
}
.user-card {
font-size: 30rpx;
color: #949699;
line-height: 36rpx;
}
.user-last-time {
font-size: 30rpx;
color: #949699;
line-height: 36rpx;
}
}
</style>

34
pages.json

@ -2,44 +2,16 @@
"pages": [{
"path": "pages/home/index",
"style": {
"navigationBarTitleText": "出入库",
"navigationBarTitleText": "首页",
"enablePullDownRefresh": true,
"onReachBottomDistance": 50,
"app-plus": {
"titleNView": false
}
}
},
{
"path": "pages/coinsDetail/index",
"style": {
"navigationBarTitleText": "出入库详情",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
}
}
},
{
"path": "pages/searchCoinName/index",
"style": {
"navigationBarTitleText": "搜索钱币信息",
"enablePullDownRefresh": true,
"app-plus": {
"titleNView": false
}
}
},
{
"path": "pages/profitStat/index",
"style": {
"navigationBarTitleText": "利润统计",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
}
}
}
],
"globalStyle": {

555
pages/coinsDetail/index.vue

@ -1,555 +0,0 @@
<template>
<view class="coinsDetail-wrap">
<view :class="{ 'top': id,'bottom':id }">
<VisitorInfo :visitorInfo="detailItem" />
</view>
<view v-if="!id" class="showPriceContent">
<view :class="['showPriceWrap',detailItem.ancient_coin_status == 0 ? 'green':'orange']">
<view class="flex-between">
<view class="label">{{ textObj[detailItem.ancient_coin_status] }}</view>
<view class="status3" v-if="detailItem.ancient_coin_status == '1' && detailItem.buying_price">进价 {{ detailItem.buying_price }}</view>
<view class="flex status3" v-if="detailItem.ancient_coin_status == '2'">
历史:
<view v-if="String(detailItem.buying_price).length > 0">{{ detailItem.buying_price }}元进 </view>
<view v-if="String(detailItem.price).length > 0">
{{ detailItem.price }}元售
</view>
</view>
</view>
<view class="inputWrap" :class="{ 'greenBorder': price2Length > 0 && detailItem.ancient_coin_status == 0, 'orangeBorder':price2Length > 0 && detailItem.ancient_coin_status != 0 }">
<input type="text" placeholder="输入" :focus="isFocus" v-model="price2" >
<view class="unit"></view>
</view>
</view>
</view>
<view class="list-wrap">
<view class="list-box-com" v-if="detailItem.status =='2' && id">
<view class="item flex-between">
<view :class="'left ft30'">
售价
</view>
<view class="right ft30">
<view class="flex1">
<input type="text" v-model="price" @blur="updatePrice('price')">
<view></view>
</view>
<img class="editImg" :src="cssUrl + 'form_edit.png'" alt="">
</view>
</view>
</view>
<view class="list-box-com" v-if="id">
<view class="item flex-between">
<view :class="'left ft30'">
进价
</view>
<view class="right ft30">
<view class="flex1">
<input type="text" v-model="buying_price" @blur="updatePrice('buying_price')">
<view></view>
</view>
<img class="editImg" :src="cssUrl + 'form_edit.png'" alt="">
</view>
</view>
</view>
<ListBox v-if="detailItem.rating_code" leftTitle="评级部门" :rightTitle="detailItem.rating_department" />
<ListBox v-if="detailItem.rating_code" leftTitle="评级编号" :rightTitle="detailItem.rating_code" />
<ListBox v-if="detailItem.material" leftTitle="材质" :rightTitle="detailItem.material" />
<ListBox v-if="detailItem.deal_with" leftTitle="处理" :rightTitle="detailItem.deal_with" />
<ListBox v-if="detailItem.pay_for_level" leftTitle="赔付等级" :rightTitle="detailItem.pay_for_level" />
<ListBox v-if="detailItem.grade" leftTitle="分数" :rightTitle="detailItem.grade" />
<ListBox v-if="detailItem.size" leftTitle="尺寸" :rightTitle="detailItem.size" />
<ListBox v-if="detailItem.remark" leftTitle="备注" :rightTitle="detailItem.remark" />
<!-- 详情页面展示 -->
<ListBox v-if="id" leftTitle="操作人" :rightTitle="detailItem.operator" />
<view class="editRate" v-if="detailItem.status == '1'" @click="scanQrcode">
<image :src="cssUrl + 'editRate.svg'"/>
修改评级
</view>
</view>
<PopUpCommon ref="ratePopup" :showClose="true" zIndex="top">
<view class="popWrap ratePopup" ref="popWrap">
<view class="pop-title PfScMedium">修改评级</view>
<view class="content">
<VisitorInfo :visitorInfo="detailItem" />
<view class="rate-content">
<ListBox v-if="detailItemNew.rating_code" leftTitle="评级部门" :rightTitle="detailItemNew.rating_department" />
<ListBox v-if="detailItemNew.rating_code" leftTitle="评级编号" :rightTitle="detailItemNew.rating_code" />
<ListBox v-if="detailItemNew.material" leftTitle="材质" :rightTitle="detailItemNew.material" />
<ListBox v-if="detailItemNew.deal_with" leftTitle="处理" :rightTitle="detailItemNew.deal_with" />
<ListBox v-if="detailItemNew.pay_for_level" leftTitle="赔付等级" :rightTitle="detailItemNew.pay_for_level" />
<ListBox v-if="detailItemNew.grade" leftTitle="分数" :rightTitle="detailItemNew.grade" />
<ListBox v-if="detailItemNew.size" leftTitle="尺寸" :rightTitle="detailItemNew.size" />
<ListBox v-if="detailItemNew.remark" leftTitle="备注" :rightTitle="detailItemNew.remark" />
</view>
</view>
<view class="qrcode_wrap page-bottom-btn-container flex-between">
<view class="bottom-btn cancel" @click="onCancel">取消</view>
<view class="bottom-btn PfScMedium primary" @click="onConfirm">确定修改</view>
</view>
</view>
</PopUpCommon>
</view>
</template>
<script>
import ListBox from '@/components/listBox.vue';
import VisitorInfo from '@/components/visitorInfo.vue';
import PopUpCommon from '@/components/common/popUpCommon.vue';
export default {
name: "coinsDetail",
props: ['scanCodeDetail'],
components: {
VisitorInfo,
ListBox,
PopUpCommon
},
data() {
return {
textObj:{
0:'进价:',
'1':'售价:',
'2':'再次入库价:',
},
cssUrl: this.cssUrl1,
visitorInfo: {},
id: '',
detailItem: {},
scan_code_detail: '',
price: '',
buying_price:'',
price2:'',
isFocus:false,
detailItemNew:{}
}
},
computed: {
price2Length() {
return this.price2.length
}
},
watch: {
scanCodeDetail(newVal, oldVal) {
this.detailItem = { ...newVal }//
}
},
mounted() {
if (this.scanCodeDetail && Object.keys(this.scanCodeDetail).length > 0) {
this.detailItem = { ...this.scanCodeDetail }
}
},
onLoad(options) {
const { id } = options;
if (id) {
this.id = id;
let detailItem = uni.getStorageSync('detail')
if (detailItem) {
this.detailItem = JSON.parse(detailItem)
}
this.price = this.detailItem.price;
// this.price1 = this.detailItem.price1 || ''
this.buying_price = this.detailItem.buying_price;
}
// else{
// //
// // scanCodeDetail props
// this.detailItem = {...this.scanCodeDetail}
// }
},
methods:{
onCancel() {
this.$refs.ratePopup.closePop();
},
onEdit() {
this.$refs.ratePopup.openPop();
},
updatePrice(type){
let params={
scan_code_detail:JSON.stringify({...this.detailItem}),
rating_code:this.detailItem.rating_code,
rating_agency_id:this.detailItem.rating_agency_id
}
if(type == 'buying_price'){
if(!this.buying_price.trim() || !this.buying_price.length)return
params.buying_price = this.buying_price;
}else{
if(!this.price.trim() || !this.price.length)return
params.price = this.price;
}
this.$http.req('/api/update_price', {
...params
}, 'POST').then(data => {
if (data == -1) return
this.$pop.modelShow(data.msg)
}).catch(res => {
});
},
async onConfirm() {
const params = {...this.detailItemNew}
console.log('执行了');
// this.$http.req('/api/update_price', {
// ...params
// }, 'POST').then(data => {
// if (data == -1) return
// this.$refs.ratePopup.closePop();
// }).catch(res => {
// });
},
async scanQrcode() {
// this.detailItemNew = {...this.detailItem}
// this.$refs.ratePopup.openPop();
// #ifdef MP-WEIXIN
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: (res) => {
this.getScanQrcode(res.result)
},
complete(res) {
if (res.errMsg === 'scanCode:ok') {
console.log('扫码成功11:', res.result, this);
} else if (res.errMsg === 'scanCode:fail cancel') {
console.log('用户取消扫码');
} else {
uni.showToast({
title: '扫码失败' + JSON.stringify(res.errMsg),
icon: 'none'
})
}
}
})
// #endif
},
getScanQrcode(result) {
this.$http.req('/api/get_scan_code_detail', {
url: result
}, 'POST').then(data => {
if (data == -1) return
this.detailItemNew = data;
this.$set(this, 'detailItemNew', data)
setTimeout(() => {
this.isShowCoinModal = true
this.$refs.ratePopup.openPop();
}, 500)
}).catch(res => {
});
},
}
};
</script>
<style lang="scss" scoped>
.flex1{
display: flex;
align-items: center;
flex: 1;
input{
flex: 1;
text-align: right;
}
}
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
}
.status3{
font-size: 28rpx;
font-weight: normal;
line-height: normal;
text-align: right;
letter-spacing: 0.24rpx;
color: #E81F1F;
gap: 10rpx;
}
.label{
color: #333333;
font-size: 28rpx;
letter-spacing: 0.24rpx;
}
.green{
background: #F0F9EB; /* #F0F9EB */
input{
border-color: #39D067;
}
}
.orange{
background: #FFEFE3;
input{
border-color: #DCDCDC;
}
}
.bottom{
margin-bottom: 20rpx;
}
.showPriceContent{
padding: 0 42rpx 24rpx 42rpx;
background: #fff;
}
.showPriceWrap{
padding: 24rpx;
font-family: PingFang SC;
font-size: 28rpx;
font-weight: normal;
line-height: normal;
text-align: right;
letter-spacing: 0.24rpx;
color: #333333;
input{
text-align: left;
flex: 1;
&::placeholder{
color: #999999;
}
}
.inputWrap{
// width: 618rpx;
margin-top: 12rpx;
height: 86rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 22rpx 24rpx;
align-self: stretch;
border-radius: 10rpx;
box-sizing: border-box;
background: #FFFFFF;
border: 2rpx solid #DCDCDC;
transition: all .3s;
font-size: 30rpx;
font-weight: normal;
line-height: normal;
letter-spacing: 0.22rpx;
color: #000000;
}
.unit{
font-family: PingFang SC;
font-size: 30rpx;
font-weight: normal;
line-height: normal;
letter-spacing: 0.22rpx;
color: #333333;
}
}
.list-box-com {
width: 100%;
background: #FFFFFF;
box-sizing: border-box;
.item {
// width: 692rpx;
box-sizing: border-box;
margin: 0 auto;
display: flex;
background: #FFFFFF;
justify-content: space-between;
line-height: 44rpx;
font-weight: 400;
align-items: center;
padding: 42rpx 0;
margin: 0 24rpx;
border-bottom: 2rpx solid #F0F0F0;
.left {
text-align: left;
font-size: 32rpx;
font-weight: 500;
line-height: 44rpx;
letter-spacing: 2rpx;
color: #222222;
}
.right {
flex-grow: 1;
display: flex;
justify-content: flex-end;
font-size: 32rpx;
font-weight: normal;
line-height: normal;
text-align: right;
letter-spacing: 0.24rpx;
color: #666666;
gap: 24rpx;
align-items: center;
}
}
}
.greenBorder {
border: 2rpx solid #39D067 !important;
transition: all .3s;
background: #fff;
}
.orangeBorder {
border: 2rpx solid rgba(253, 123, 19, 0.6) !important;
transition: all .3s;
background: #fff;
}
.editImg {
width: 32rpx;
height: 32rpx;
}
.coinsDetail-wrap {
.list-wrap {
padding: 0 18rpx 20rpx 18rpx;
}
.top {
margin-top: 20rpx;
}
}
.editRate{
width: 648rpx;
height: 90rpx;
display: flex;
justify-content: center;
align-items: center;
padding: 23rpx 10rpx;
box-sizing: border-box;
gap: 10px;
border-radius: 12rpx;
background: #E2E4E7;
font-family: PingFang SC;
font-size: 32rpx;
font-weight: normal;
line-height: 44rpx;
text-align: center;
margin: 0 auto;
margin-top: 58rpx;
letter-spacing: normal;
color: #666666;
image{
width: 42rpx;
height: 42rpx;
}
}
.rate-content{
// padding: 0 24rpx;
}
.popWrap {
display: flex;
flex-direction: column;
max-height: 1100rpx;
height: 70%;
.pop-title {
height: 40rpx;
text-align: center;
padding: 42rpx 0 22rpx 0;
font-size: 36rpx;
font-weight: 500;
line-height: 50rpx;
text-align: center;
letter-spacing: 2rpx;
color: #000000;
background: #fff;
}
.content {
flex: 1;
// padding: 0 24rpx;
background: #fff;
padding-bottom: 94px;
overflow-y: auto;
}
}
.ratePopup :v-deep .user-info{
margin: 0;
}
.rate-content{
padding: 0 24rpx;
.rate-item{
display: flex;
justify-content: space-between;
align-items: center;
padding: 42rpx 24rpx;
box-sizing: border-box;
border-width: 0px 0px 2rpx 0px;
border-style: solid;
border-color: #F0F0F0;
.label{
font-size: 32rpx;
font-weight: 500;
line-height: 44rpx;
letter-spacing: 2rpx;
color: #222222;
}
input{
font-size: 32rpx;
font-weight: normal;
line-height: normal;
text-align: right;
letter-spacing: 0.24rpx;
color: #666666;
}
}
}
.bottom-btn {
height: 92rpx;
width: 100%;
margin: 16rpx 0;
line-height: 92rpx;
text-align: center;
font-size: 32rpx;
border-radius: 16rpx;
border: none;
padding: 0;
&.primary {
background-color: #39D067;
color: #FFFFFF;
}
&.cancel {
background-color: #F1F2F3;
color: #616266;
}
&::after {
border: none;
}
&.disabled {
background-color: #CCCCCC;
opacity: 0.7;
}
}
.page-bottom-btn-container {
box-sizing: border-box;
background-color: #FFFFFF;
padding: 0rpx 54rpx;
box-shadow: 0px -2rpx 6rpx 0rpx rgba(181, 181, 181, 0.1319);
z-index: 9;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
column-gap: 50rpx;
}
.qrcode_wrap {
background: #fff;
height: 166rpx;
position: fixed;
width: 100%;
left: 0;
bottom: 0;
box-shadow: 0px -2rpx 116rpx 0px rgba(181, 181, 181, 0.26);
// img {
// width: 122rpx;
// height: 142rpx;
// position: absolute;
// top: -42rpx;
// left: 50%;
// transform: translateX(-50%);
// }
}
</style>

605
pages/home/index.vue

@ -1,125 +1,22 @@
<template>
<view class="home-wrap">
<view class="flex-between profitWrap">
<view class="bold flex left">今日利润{{ curDayprofit }}</view>
<view class="right" @tap="lookMoney">利润统计 <image :src="cssUrl + 'iocn_back.png'" alt=""></image></view>
</view>
<view class="amountWrap flex">
<view class="amountLeft flex">
<view class="amountName">库存件数</view>
<view class="remain">{{ storage_count || 0 }}</view>
</view>
<view class="amountRight flex">
<view class="amountName">出库件数</view>
<view class="outbound">{{ delivery_count || 0 }}</view>
</view>
</view>
<view class="search-wrapper flex" >
<div class="search-main" @tap="getSearch">
<view class="flex search-main-left">
<image class="icon" :src="cssUrl + 'prescriptSearch.svg'" mode="widthFix"></image>
<view>搜索钱币名称</view>
</view>
<view class="search-text">搜索</view>
</div>
</view>
<view class="patientTab">
<view :class="'notActive ft32' + (status == '1' ? ' active PfScMedium' : '')" @tap="changeWaitType('1')">
库存列表</view>
<view :class="'notActive ft32' + (status == '2' ? ' active PfScMedium' : '')" @tap="changeWaitType('2')">
出库列表
</view>
</view>
<scroll-view class="patient-type-tab1" @scrolltolower="onScroll" scroll-y>
<view class="bed-wait-container">
<ListWrap :bedWaitList="bedWaitList" :type="status"/>
</view>
<view v-if="loading" class="loading-text">加载中...</view>
<view v-if="noMore" class="no-more-text">没有更多数据了</view>
<view class="page-padding" v-show="bedWaitList && bedWaitList.length && bedWaitList.length > 0">
</view>
</scroll-view>
<view class="qrcode_wrap">
<img :src="cssUrl + 'qrcode_get.png'" alt="" @tap="scanQrcode">
</view>
<!-- <calendar ref="calendar" :departid="selectedHospitalId" v-show="departid>0" @getDate="getDate" @getData="getData"/> -->
<PopUpCommon ref="coinsPopup" :showClose="true" zIndex="top">
<view class="popWrap" ref="popWrap">
<view class="pop-title PfScMedium">{{ titleType[scanCodeDetail.ancient_coin_status] }}</view>
<view class="content">
<CoinsDetail v-if="isShowCoinModal" :scanCodeDetail="scanCodeDetail" ref="coinsDetail"/>
</view>
<view class="qrcode_wrap page-bottom-btn-container flex-between">
<view class="bottom-btn cancel" @click="onCancel">取消</view>
<view class="bottom-btn PfScMedium primary" @click="onConfirm">{{
btnText[scanCodeDetail.ancient_coin_status] }}</view>
</view>
</view>
</PopUpCommon>
阿拉山口到家啦是金德拉克撒
</view>
</template>
<script>
import ListBox from '@/components/listBox.vue';
import PopUpCommon from '@/components/common/popUpCommon.vue';
import CoinsDetail from '../coinsDetail';
import PageBottomBtn from '@/components/pageBottomBtn.vue'
import ListWrap from '@/components/listWrap.vue'
import moment from 'moment'
export default {
options: { styleIsolation: "shared" },
components: {
PopUpCommon,
PageBottomBtn,
ListBox,
ListWrap,
CoinsDetail
},
data() {
return {
cssUrl: this.cssUrl1,
status: '1',
bedWaitList: [],
titleType: {
0: '扫码入库',
'1': '扫码出库',
'2': '出库信息',
},
btnText: {
0: '入库',
'1': '出库',
'2': '再次入库',
},
detailItem: {
name: '北京公博二部',
num: '1310684212',
count: 'AU 58',
size: '24.0*1.1mm,3.5g',
operate: '泅渡'
},
code: '',
state: '',
storage_count: '',
delivery_count: '',
scanCodeDetail: {
"coin_name": "机制光绪通宝",
"rating_code": "1310684212",
"rating_department": "北京公博二部",
"grade": "AU 58",
"size": "24.0*1.1mm,3.5g",
"year": "1889",
"format": "库平一钱满汉广",
"rating_agency_id": "1",
"ancient_coin_status": "1",
"ancient_coin_status_desc": "已入库",
"buying_price": "188.00",
"price": "0.00"
},
loading: false,
noMore: false,
page: 1,
@ -134,195 +31,20 @@ export default {
onLoad(option) {
// var token = uni.getStorageSync("u_token");
//
this.getCoinsList()
this.getMonthAppointments()
// this.isShowCoinModal = true;
// this.$refs.coinsPopup.openPop();
},
onPullDownRefresh() {
this.bedWaitList = [];
this.page = 1;
this.getCoinsList()
},
onReachBottom() {
if (!this.noMore && !this.loading) {
this.page++;
this.getCoinsList();
}
},
methods: {
getMonthStartEnd(date){
let m = moment(date)
let searchData= {
start_date: moment(m).startOf('month').format('YYYY-MM-DD'),
end_date: moment(m).startOf('month').add(m.daysInMonth() - 1, 'days').format('YYYY-MM-DD'),
}
console.log(searchData,'searchData==11');
return searchData
},
async getMonthAppointments() {
this.$http.req('/api/get_date_profits', {
...this.getMonthStartEnd(this.activeDay)
}, 'POST').then(data => {
if (data == -1) return
this.curDayprofit = data[this.activeDay] || 0
}).catch(res => {
});
},
lookMoney(){
let url = `/pages/profitStat/index`
this.$nav.navToPath(url)
},
getSearch() {
let url = `/pages/searchCoinName/index`
this.$nav.navToPath(url)
},
onScroll() {
if (!this.noMore && !this.loading) {
this.page++;
this.getCoinsList();
}
},
getCoinsList() {
this.loading = true;
//
this.$http.req('/api/getlist', { status: this.status, page: this.page, pagesize: this.pagesize }, 'POST').then(data => {
uni.stopPullDownRefresh();
this.loading = false;
if (data.list.length === 0 || data.length == 0) {
this.noMore = true;
uni.showToast({ title: '没有更多数据了', icon: 'none' });
return;
}
//
if (this.page === 1) {
this.bedWaitList = data.list;
} else {
this.bedWaitList = [...this.bedWaitList, ...data.list];
}
this.storage_count = data.storage_count;
this.delivery_count = data.delivery_count;
}).catch(res => {
this.loading = false;
});
},
lookDetail(item) {
uni.setStorageSync('detail', JSON.stringify(item))
let url = `/pages/coinsDetail/index?id=${item.rating_code}`
this.$nav.navToPath(url)
},
// changeWaitType(type) {
// this.status = type;
// //
// this.getCoinsList()
// },
changeWaitType(type) {
this.status = type;
this.page = 1;
this.bedWaitList = [];
//
this.getCoinsList()
},
async scanQrcode() {
// #ifdef MP-WEIXIN
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: (res) => {
this.getScanQrcode(res.result)
},
complete(res) {
if (res.errMsg === 'scanCode:ok') {
console.log('扫码成功11:', res.result, this);
} else if (res.errMsg === 'scanCode:fail cancel') {
console.log('用户取消扫码');
} else {
uni.showToast({
title: '扫码失败' + JSON.stringify(res.errMsg),
icon: 'none'
})
}
}
})
// #endif
},
getScanQrcode(result) {
this.$http.req('/api/get_scan_code_detail', {
url: result
}, 'POST').then(data => {
if (data == -1) return
this.scanCodeDetail = data;
this.$set(this, 'scanCodeDetail', data)
setTimeout(() => {
this.isShowCoinModal = true
this.$refs.coinsPopup.openPop();
setTimeout(()=>{
this.$refs.coinsDetail.isFocus = true
},700)
}, 500)
}).catch(res => {
});
},
async onConfirm() {
// console.log(this.$refs.coinsDetail.price2,'coinsDetail====-');
let price2 = this.$refs.coinsDetail.price2
//
let url = '/api/operate'//
let operate = ''
// url
let status = this.scanCodeDetail.ancient_coin_status;
if (status == 0 || status == 2) {
operate = '1'
} else {
operate = '2'
}
//
this.$http.req(url, {
scan_code_detail: JSON.stringify(this.scanCodeDetail),
operate: operate,
price:price2
}, 'POST').then(data => {
// -
this.$refs.coinsDetail.price2 = ''
this.$refs.coinsDetail.isFocus = false
//
if (status == 0 || status == '2') {
if (this.status != '1') this.status = '1'
} else {
if (this.status != '2') this.status = '2'
}
this.bedWaitList = [];
this.page = 1;
//
this.getCoinsList()
this.$refs.coinsPopup.closePop()
this.isShowCoinModal = false
uni.pageScrollTo({
scrollTop: 0,
duration: 300 // ms
})
}).catch(res => {
this.loading = false;
});
},
onCancel() {
// this.scrollToTop()
this.$refs.coinsPopup.closePop()
this.isShowCoinModal = false
},
scrollToTop() {
this.$nextTick(() => {
const node = this.$refs.popWrap;
if (node && node.$el) {
node.$el.scrollTop = 0;
}
});
}
}
methods: {}
}
</script>
<style lang="scss" scoped>
@ -331,325 +53,4 @@ export default {
justify-content: space-between;
}
.popWrap {
display: flex;
flex-direction: column;
max-height: 70%;
.content {
flex: 1;
}
}
.search-wrapper {
// margin-top: 20rpx;
// border-bottom: 2rpx solid #e6e6e6;
padding:0 24rpx 36rpx 24rpx;
background: #fff;
.search-main {
width: 100%;
border-radius: 6px;
background: #F7F7F7;
box-sizing: border-box;
display: flex;
height: 70rpx;
align-items: center;
padding: 0rpx 20rpx;
justify-content: space-between;
}
.search-main-left{
align-items: center;
gap: 12rpx;
color: #999999;
}
.input-box {
height: 70rpx;
line-height: 70rpx;
font-size: 28rpx;
color: #000000;
text-align: left;
flex: 1;
padding-left: 12rpx;
}
.icon {
width: 34rpx;
display: block;
}
}
.bottom-btn {
height: 92rpx;
width: 100%;
margin: 16rpx 0;
line-height: 92rpx;
text-align: center;
font-size: 32rpx;
border-radius: 16rpx;
border: none;
padding: 0;
&.primary {
background-color: #39D067;
color: #FFFFFF;
}
&.cancel {
background-color: #F1F2F3;
color: #616266;
}
&::after {
border: none;
}
&.disabled {
background-color: #CCCCCC;
opacity: 0.7;
}
}
.page-bottom-btn-container {
box-sizing: border-box;
background-color: #FFFFFF;
padding: 0rpx 54rpx;
box-shadow: 0px -2rpx 6rpx 0rpx rgba(181, 181, 181, 0.1319);
z-index: 9;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
column-gap: 50rpx;
}
.home-wrap {
display: flex;
flex-direction: column;
height: 100vh;
.profitWrap{
font-family: PingFang SC;
background: #fff;
padding:36rpx 24rpx 0;
box-sizing: border-box;
align-items: center;
.left{
font-size: 32rpx;
font-weight: 500;
line-height: 44rpx;
letter-spacing: normal;
color: #000000;
}
.right{
font-size: 28rpx;
font-weight: normal;
line-height: normal;
letter-spacing: 0.88rpx;
color: #999999;
width: 250rpx;
display: flex;
align-items: center;
justify-content: flex-end;
padding: 24rpx 0;
image{
width: 20rpx;
height: 32rpx;
}
}
}
.amountWrap {
gap: 16rpx;
padding: 12rpx 24rpx 24rpx;
box-sizing: border-box;
background: #fff;
.amountName {
display: flex;
align-items: center;
gap: 12rpx;
color: #666;
font-size: 26rpx;
}
img {
width: 20rpx;
height: 32rpx;
}
.amountLeft,
.amountRight {
flex: 1;
padding: 18rpx;
align-items: center;
justify-content: center;
flex-direction: column;
border-radius: 12rpx;
background: #F8FFF7;
.add,
.use {
font-size: 40rpx;
}
}
.amountLeft {
background: #F0F7FD;
}
}
.patientTab {
width: 100%;
display: flex;
justify-content: center;
height: 120rpx;
align-items: center;
margin-top: 20rpx;
padding: 0 62rpx;
box-sizing: border-box;
justify-content: space-between;
background: white;
border-radius: 12rpx 12rpx 0rpx 0rpx;
border-bottom: 2rpx solid rgba(0, 0, 0, 0.15);
// box-shadow: 0px 1rpx 0rpx 0rpx rgba(0, 0, 0, 0.15);
.notActive {
width: 269rpx;
height: 100%;
text-align: center;
font-weight: 400;
color: #666666;
font-size: 32rpx;
line-height: 120rpx;
display: flex;
justify-content: center;
align-items: center;
.wait-bed-num {
padding: 0px 14rpx;
box-sizing: border-box;
width: auto;
height: 38rpx;
min-width: 60rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 60rpx;
background: #FFEBEB;
font-size: 28rpx;
color: #FF1818;
margin-left: 10rpx;
}
}
.active {
font-weight: 500;
color: #4DC56D;
box-sizing: border-box;
border-bottom: 4rpx solid #4DC56D;
}
}
.remain,
.outbound {
font-weight: 500;
color: #00A2E2;
line-height: 56rpx;
margin-top: 6rpx;
font-size: 40rpx;
}
.outbound {
color: #4DC56D;
}
.patient-type-tab1 {
height: 0;
width: 100%;
background: white;
flex: 1;
.bed-wait-container {
padding: 0rpx 42rpx;
background: white;
box-sizing: border-box;
}
}
.list-wrap {
padding: 20rpx 18rpx;
}
.qrcode_wrap {
// position: relative;
// background: #fff;
// height: 166rpx;
// box-shadow: 0px -2rpx 116rpx 0px rgba(181, 181, 181, 0.26);
background: #fff;
height: 166rpx;
position: fixed;
width: 100%;
left: 0;
bottom: 0;
box-shadow: 0px -2rpx 116rpx 0px rgba(181, 181, 181, 0.26);
img {
width: 122rpx;
height: 142rpx;
position: absolute;
top: -42rpx;
left: 50%;
transform: translateX(-50%);
}
}
.content {
max-height: 850rpx;
margin-bottom: 145rpx;
overflow-y: auto;
}
.pop-title {
height: 40rpx;
text-align: center;
padding: 42rpx 0 22rpx 0;
font-size: 36rpx;
font-weight: 500;
line-height: 50rpx;
text-align: center;
letter-spacing: 2rpx;
color: #000000;
background: #fff;
// background: #F6F6F8;
}
.cancle-button {
font-weight: 500;
font-size: 32rpx;
color: #ffffff;
line-height: 92rpx;
text-align: center;
width: 100%;
height: 92rpx;
background: #F1F2F3;
border-radius: 12rpx;
}
.page-padding {
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
width: 100%;
height: 206rpx;
}
.loading-text,
.no-more-text {
text-align: center;
padding: 20rpx;
color: #999;
}
}
</style>

25
pages/profitStat/index.vue

@ -1,25 +0,0 @@
<template>
<view>
<calendar ref="calendar"/>
<PageBottomBtn :showCancel="false" text="返回" @click="gotoHome"></PageBottomBtn>
</view>
</template>
<script>
import PageBottomBtn from '@/components/pageBottomBtn.vue'
import calendar from '@/components/calendar.vue'
export default {
options: { styleIsolation: "shared" },
components: {
calendar,
PageBottomBtn
},
methods:{
gotoHome(){
let url = `/pages/home/index`
this.$nav.navToPath(url)
}
}
}
</script>

252
pages/searchCoinName/index.vue

@ -1,252 +0,0 @@
<template>
<view class="column">
<view class="search-wrapper flex">
<div class="search-main" :class="{ 'search-main-focus': keyWords > 0 }">
<image class="icon" :src="cssUrl + 'prescriptSearch.svg'" mode="widthFix"></image>
<input class="ft46 input-box" placeholder-class="placeholder-style" placeholder="搜索患者姓名"
v-model="keyword" />
<view class="search-text" :class="{ 'green': keyWords > 0 }" @click="getSearch">搜索</view>
</div>
</view>
<view class="patientTab">
<view :class="'notActive ft32' + (status == '1' ? ' active PfScMedium' : '')" @tap="changeWaitType('1')">
库存列表</view>
<view :class="'notActive ft32' + (status == '2' ? ' active PfScMedium' : '')" @tap="changeWaitType('2')">
出库列表
</view>
</view>
<scroll-view class="patient-type-tab1" @scrolltolower="onScroll" scroll-y>
<view class="bed-wait-container">
<ListWrap :bedWaitList="bedWaitList" :type="status" />
</view>
<view v-if="loading" class="loading-text">加载中...</view>
<view v-if="noMore" class="no-more-text">没有更多数据了</view>
<view class="page-padding" v-show="bedWaitList && bedWaitList.length && bedWaitList.length > 0">
</view>
</scroll-view>
</view>
</template>
<script>
import ListWrap from '@/components/listWrap.vue'
export default {
options: { styleIsolation: "shared" },
components: {
ListWrap,
},
data() {
return {
list: [],
cssUrl: this.cssUrl1,
status: '1',
loading: false,
noMore: false,
page: 1,
pagesize: 10,
keyword: '',
bedWaitList: []
}
},
computed: {
keyWords() {
return this.keyword.length
}
},
onLoad(option) {
// var token = uni.getStorageSync("u_token");
//
this.getCoinsList()
// this.$refs.coinsPopup.openPop();
},
onPullDownRefresh() {
this.bedWaitList = [];
this.page = 1;
this.getCoinsList()
},
onReachBottom() {
if (!this.noMore && !this.loading) {
this.page++;
this.getCoinsList();
}
},
methods: {
onScroll() {
if (!this.noMore && !this.loading) {
this.page++;
this.getCoinsList();
}
},
getSearch(){
this.page = 1;
this.bedWaitList = [];
this.getCoinsList()
},
changeWaitType(type) {
this.status = type;
this.page = 1;
this.bedWaitList = [];
//
this.getCoinsList()
},
getCoinsList() {
this.loading = true;
//
this.$http.req('/api/getlist', { status: this.status, page: this.page, pagesize: this.pagesize, keyword: this.keyword }, 'POST').then(data => {
uni.stopPullDownRefresh();
this.loading = false;
if (data.list.length === 0 || data.length == 0) {
this.noMore = true;
uni.showToast({ title: '没有更多数据了', icon: 'none' });
return;
}
debugger
//
if (this.page === 1) {
this.bedWaitList = data.list;
} else {
this.bedWaitList = [...this.bedWaitList, ...data.list];
}
console.log(this.bedWaitList,'bedWaitList===');
this.storage_count = data.storage_count;
this.delivery_count = data.delivery_count;
}).catch(res => {
this.loading = false;
});
},
}
}
</script>
<style lang="scss" scoped>
.column{
display: flex;
height: 100%;
flex-direction: column;
}
.loading-text,
.no-more-text {
text-align: center;
padding: 20rpx;
color: #999;
}
.patient-type-tab1 {
height: 0;
width: 100%;
background: white;
flex: 1;
.bed-wait-container {
padding: 0rpx 42rpx;
background: white;
box-sizing: border-box;
}
}
.search-main-focus {
border: 2rpx solid #39D067 !important;
transition: all .3s;
background: #fff;
}
.green {
color: #4DC56D !important;
}
.search-wrapper {
margin-top: 20rpx;
padding: 20rpx 42rpx;
background: #fff;
input:focus {
border-color: #39D067;
}
.search-main {
transition: all .3s;
border: 2rpx solid transparent;
width: 100%;
border-radius: 6px;
background: #F7F7F7;
box-sizing: border-box;
display: flex;
height: 70rpx;
align-items: center;
padding: 0rpx 20rpx;
justify-content: space-between;
}
.search-main-left {
align-items: center;
gap: 12rpx;
color: #999999;
}
.input-box {
height: 70rpx;
line-height: 70rpx;
font-size: 28rpx;
color: #000000;
text-align: left;
flex: 1;
padding-left: 12rpx;
}
.icon {
width: 34rpx;
display: block;
}
}
.patientTab {
width: 100%;
display: flex;
justify-content: center;
height: 120rpx;
align-items: center;
margin-top: 20rpx;
padding: 0 62rpx;
box-sizing: border-box;
justify-content: space-between;
background: white;
border-radius: 12rpx 12rpx 0rpx 0rpx;
border-bottom: 2rpx solid rgba(0, 0, 0, 0.15);
// box-shadow: 0px 1rpx 0rpx 0rpx rgba(0, 0, 0, 0.15);
.notActive {
width: 269rpx;
height: 100%;
text-align: center;
font-weight: 400;
color: #666666;
font-size: 32rpx;
line-height: 120rpx;
display: flex;
justify-content: center;
align-items: center;
.wait-bed-num {
padding: 0px 14rpx;
box-sizing: border-box;
width: auto;
height: 38rpx;
min-width: 60rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 60rpx;
background: #FFEBEB;
font-size: 28rpx;
color: #FF1818;
margin-left: 10rpx;
}
}
.active {
font-weight: 500;
color: #4DC56D;
box-sizing: border-box;
border-bottom: 4rpx solid #4DC56D;
}
}
</style>

BIN
static/images/date_open.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 942 B

1
static/images/editRate.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

1
static/images/edit_rate.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

BIN
static/images/form_edit.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

1
static/images/gou.svg

@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="38px" height="38px" viewBox="0 0 38.0 38.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="i0"><path d="M2248,0 L2248,2863 L0,2863 L0,0 L2248,0 Z"></path></clipPath><clipPath id="i1"><path d="M19,0 C29.4932778,0 38,8.50672223 38,19 C38,29.4932778 29.4932778,38 19,38 C8.50672223,38 0,29.4932778 0,19 C0,8.50672223 8.50672223,0 19,0 Z M30.365619,11.3995609 C29.9384503,11.3995609 29.5293622,11.5719668 29.2310476,11.8777143 L15.7247619,23.7011429 L10.4373333,18.3811429 C10.1356871,18.0774793 9.72535437,17.9067123 9.29733333,17.9067123 C8.8693123,17.9067123 8.45897955,18.0774793 8.15733333,18.3811429 C7.54100419,19.0203996 7.54100419,20.0327432 8.15733333,20.672 L14.6390476,27.1211429 C14.9254899,27.4148898 15.3146711,27.5861295 15.7247619,27.5988571 C16.1530145,27.5967925 16.5629746,27.4249997 16.8647619,27.1211429 L31.5001905,14.1577143 C31.803854,13.8560681 31.9746211,13.4457353 31.9746211,13.0177143 C31.9746211,12.5896933 31.803854,12.1793605 31.5001905,11.8777143 C31.2018759,11.5719668 30.7927878,11.3995609 30.365619,11.3995609 Z"></path></clipPath></defs><g transform="translate(-916.0 -191.0)"><g clip-path="url(#i0)"><g transform="translate(863.0 158.0)"><g transform="translate(53.0 33.0)"><g clip-path="url(#i1)"><polygon points="0,0 38,0 38,38 0,38 0,0" stroke="none" fill="#D9D9D9"></polygon></g></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

1
static/images/icon-popup-close.svg

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="40" height="40" viewBox="0 0 40 40"><g><g style="opacity:0;"><path d="M0 0C0 0 0 0 0 0L40 0C40 0 40 0 40 0L40 40C40 40 40 40 40 40L0 40C0 40 0 40 0 40Z" fill="#969696" fill-opacity="1"/></g><g><path d="M29.3392125,31.16795438232422C29.6141125,31.45885438232422,29.9970125,31.62315438232422,30.3972125,31.62195438232422C30.7982125,31.61545438232422,31.1807125,31.45255438232422,31.4632125,31.16795438232422C31.7525125,30.89205438232422,31.9162125,30.509754382324218,31.9162125,30.10995438232422C31.9162125,29.71025438232422,31.7525125,29.32785438232422,31.4632125,29.05195438232422L22.4166125,20.00535438232422L31.4649125,10.956054382324218C31.8429125,10.57807438232422,31.9906125,10.027144382324218,31.8522125,9.510804382324219C31.7138125,8.99446438232422,31.3105125,8.591156382324218,30.7942125,8.45280398232422C30.2779125,8.314451082324219,29.7269125,8.462071882324219,29.3489125,8.84005838232422L20.3015125,17.89022438232422L11.2512625,8.83999938232422C10.6669425,8.255130382324218,9.719122500000001,8.25468238232422,9.1342575,8.838999382324218C8.5493885,9.423314382324218,8.5489405,10.371134382324218,9.1332575,10.956004382324219L18.1834525,20.008854382324216L9.1429595,29.05205438232422C8.7197426,29.484054382324217,8.5946115,30.12655438232422,8.8248195,30.68575438232422C9.0550275,31.24505438232422,9.5962915,31.613254382324218,10.2009625,31.62205438232422C10.5997825,31.62215438232422,10.9810125,31.457854382324218,11.2549625,31.168054382324218L20.2980125,22.124054382324218L29.3392125,31.16795438232422Z" fill-rule="evenodd" fill="#969696" fill-opacity="1"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/images/iocn_back.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 949 B

1
static/images/prescriptSearch.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.0 KiB

BIN
static/images/qrcode_get.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Loading…
Cancel
Save