| | |
| | | "name": "my-vue-app", |
| | | "version": "0.0.0", |
| | | "dependencies": { |
| | | "@vant/area-data": "^1.4.1", |
| | | "axios": "^0.26.0", |
| | | "echarts": "^5.3.0", |
| | | "js-cookie": "^3.0.5", |
| | | "node-sass": "^7.0.3", |
| | | "pinia": "^2.0.11", |
| | | "sass-loader": "^13.0.2", |
| | |
| | | "vue-tsc": "^0.40.13" |
| | | }, |
| | | "devDependencies": { |
| | | "@types/js-cookie": "^3.0.3", |
| | | "@types/node": "^17.0.18", |
| | | "@typescript-eslint/eslint-plugin": "^5.12.0", |
| | | "@typescript-eslint/parser": "^5.12.0", |
| | |
| | | "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", |
| | | "peer": true |
| | | }, |
| | | "node_modules/@types/js-cookie": { |
| | | "version": "3.0.3", |
| | | "resolved": "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-3.0.3.tgz", |
| | | "integrity": "sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/@types/json-schema": { |
| | | "version": "7.0.11", |
| | | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", |
| | |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/typescript-eslint" |
| | | } |
| | | }, |
| | | "node_modules/@vant/area-data": { |
| | | "version": "1.4.1", |
| | | "resolved": "https://registry.npmmirror.com/@vant/area-data/-/area-data-1.4.1.tgz", |
| | | "integrity": "sha512-D8zI/rfxREhnIKGoYzsEJZ73fte4JARhFeFftLIH7ynu1sPrCBEgPkLEbwPyvw3VC4JdSIuzaK5uOhu+BcoPXw==" |
| | | }, |
| | | "node_modules/@vant/icons": { |
| | | "version": "1.8.0", |
| | |
| | | "version": "2.6.4", |
| | | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", |
| | | "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" |
| | | }, |
| | | "node_modules/js-cookie": { |
| | | "version": "3.0.5", |
| | | "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", |
| | | "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", |
| | | "engines": { |
| | | "node": ">=14" |
| | | } |
| | | }, |
| | | "node_modules/js-tokens": { |
| | | "version": "4.0.0", |
| | |
| | | "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", |
| | | "peer": true |
| | | }, |
| | | "@types/js-cookie": { |
| | | "version": "3.0.3", |
| | | "resolved": "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-3.0.3.tgz", |
| | | "integrity": "sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww==", |
| | | "dev": true |
| | | }, |
| | | "@types/json-schema": { |
| | | "version": "7.0.11", |
| | | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", |
| | |
| | | "@typescript-eslint/types": "5.36.2", |
| | | "eslint-visitor-keys": "^3.3.0" |
| | | } |
| | | }, |
| | | "@vant/area-data": { |
| | | "version": "1.4.1", |
| | | "resolved": "https://registry.npmmirror.com/@vant/area-data/-/area-data-1.4.1.tgz", |
| | | "integrity": "sha512-D8zI/rfxREhnIKGoYzsEJZ73fte4JARhFeFftLIH7ynu1sPrCBEgPkLEbwPyvw3VC4JdSIuzaK5uOhu+BcoPXw==" |
| | | }, |
| | | "@vant/icons": { |
| | | "version": "1.8.0", |
| | |
| | | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", |
| | | "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" |
| | | }, |
| | | "js-cookie": { |
| | | "version": "3.0.5", |
| | | "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", |
| | | "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" |
| | | }, |
| | | "js-tokens": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
| | |
| | | ] |
| | | }, |
| | | "dependencies": { |
| | | "@vant/area-data": "^1.4.1", |
| | | "axios": "^0.26.0", |
| | | "echarts": "^5.3.0", |
| | | "js-cookie": "^3.0.5", |
| | | "node-sass": "^7.0.3", |
| | | "pinia": "^2.0.11", |
| | | "sass-loader": "^13.0.2", |
| | |
| | | "vue-tsc": "^0.40.13" |
| | | }, |
| | | "devDependencies": { |
| | | "@types/js-cookie": "^3.0.3", |
| | | "@types/node": "^17.0.18", |
| | | "@typescript-eslint/eslint-plugin": "^5.12.0", |
| | | "@typescript-eslint/parser": "^5.12.0", |
| | |
| | | |
| | | |
| | | <script setup lang="ts"> |
| | | import { Session } from '@/utils/storage' |
| | | import { userInfoStore } from '@/stores/userInfo' |
| | | import { ajaxPost} from '@/utils/axios' |
| | | const userInfo = userInfoStore() |
| | | const token =Session.get('token') |
| | | // const token='eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQQVRfU0ZfUEFUMjQ0MTUyMTM4MzcwMjgyN19TRl8iLCJhdXRoIjpbeyJhdXRob3JpdHkiOiJhZG1pbiJ9XSwiaWF0IjoxNjY3MjcwNTc5LCJleHAiOjE2Njc2MzA1Nzl9.3_K8avdonSTtFhPErO0M0JVan0KtnHxdACJno9B-PWg' |
| | | // console.log('token到底等于机',token) |
| | | if (token){ |
| | | Session.set('token', token) |
| | | console.log('token='+Session.get('token ')) |
| | | ajaxPost('/patient/info/getPatientInfo','').then((re:any)=>{ |
| | | console.log(re,'得到患者的信息getUserinfo') |
| | | userInfo.setPatient(re) |
| | | }) |
| | | |
| | | } else { |
| | | console.log('token为空') |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | |
| | | import 'vant/lib/index.css' |
| | | |
| | | import { Button,Form,DatetimePicker,TreeSelect, Field, CellGroup,Tab, Tabs,Popup ,Col, Row ,Icon,Tabbar,RadioGroup, Radio,Dialog,List, |
| | | Switch,Calendar,Collapse,CollapseItem |
| | | Switch,Calendar,Collapse,CollapseItem,ActionBarButton,AddressList,AddressEdit |
| | | ,TabbarItem,Picker,DropdownMenu,Loading, DropdownItem,Image as VanImage,Tag,Rate,NavBar, Divider,Search, Checkbox, CheckboxGroup, Uploader, |
| | | Sidebar,SidebarItem,Stepper,Toast, Step, Steps, Cell } from 'vant' |
| | | Sidebar,SidebarItem,Stepper,Toast, Step, Steps, Cell,Card,ActionBar, ActionBarIcon } from 'vant' |
| | | import { createPinia } from 'pinia' |
| | | // mock数据 |
| | | // import './utils/mock' |
| | |
| | | app.use(createPinia()) |
| | | |
| | | app.use(Button).use(Form).use(Field).use(CellGroup).use(Tab).use(Tabs).use(Popup).use(Col).use(Row).use(Loading).use(List ).use(Switch) |
| | | .use(TreeSelect).use(Calendar).use(Icon).use(Tabbar).use(TabbarItem).use(DropdownItem).use(Tag) |
| | | .use(TreeSelect).use(Calendar).use(Icon).use(Tabbar).use(TabbarItem).use(DropdownItem).use(Tag).use(AddressList) |
| | | .use(VanImage).use(Search).use(DatetimePicker).use(RadioGroup).use(Radio).use(Sidebar).use(SidebarItem).use(Stepper).use(Toast) |
| | | .use(CollapseItem).use(Collapse).use(Picker).use(DropdownMenu).use(Dialog).use(Divider). |
| | | use(Rate ).use(NavBar).use(Checkbox).use(CheckboxGroup).use(Uploader).use(Step).use(Steps).use(Cell) |
| | | .use(CollapseItem).use(Collapse).use(Picker).use(DropdownMenu).use(Dialog).use(Divider).use(ActionBarButton). |
| | | use(Rate ).use(NavBar).use(Checkbox).use(CheckboxGroup).use(Uploader).use(Step).use(Steps).use(Cell).use(Card).use(ActionBar).use(ActionBarIcon) |
| | | .use(AddressEdit) |
| | | |
| | | app.mount('#app') |
| | |
| | | createRouter, createWebHistory, RouteRecordRaw, |
| | | } from 'vue-router' |
| | | import { cancelRequest } from '@/utils/axios' |
| | | import { userInfoStore } from '@/stores/userInfo' |
| | | |
| | | |
| | | import { Session } from '@/utils/storage' |
| | | |
| | | const routes: Array<RouteRecordRaw> = [ |
| | | { path: '/login', name: 'login', component: () => import('views/login/index.vue'),meta:{title:'登录'}}, |
| | | { path: '/', name: 'Home', component: () => import('views/home/index.vue'),meta:{title:'首页'}}, |
| | | { path: '/my', name: 'myMine', component: () => import('views/myMine/index.vue'),meta:{title:'我的'}}, |
| | | { path: '/jifenShangCheng', name: 'jifenShangCheng', component: () => import('views/jifenShangCheng/index.vue'),meta:{title:'积分商城'}}, |
| | | { path: '/paiban', name: 'paiban', component: () => import('views/paiban/index.vue'),meta:{title:'透析排班'}}, |
| | | { path: '/report', name: 'report', component: () => import('views/report/index.vue'),meta:{title:'检查报告'}}, |
| | | { path: '/reportItem', name: 'reportItem', component: () => import('views/report/item/index.vue'),meta:{title:'报告查看'}}, |
| | |
| | | routes, |
| | | }) |
| | | |
| | | router.beforeEach((to, from, next) => { |
| | | router.beforeEach(async(to, from, next) => { |
| | | const userInfo = userInfoStore() |
| | | // 取消所有强求 |
| | | cancelRequest() |
| | | console.log(to,'路由。。。') |
| | | // 添加title |
| | | if (to.meta.title){ |
| | | document.title = to.meta.title |
| | | } |
| | | next() |
| | | // 看看有没有toke |
| | | const token = Session.get('token'); |
| | | console.log(!token) |
| | | if (to.path === '/login') { |
| | | next(); |
| | | |
| | | }else{ |
| | | if (!token){ |
| | | next('/login'); |
| | | }else{ |
| | | console.log('---') |
| | | await userInfo.setPatientApi() |
| | | next(); |
| | | } |
| | | } |
| | | }) |
| | | |
| | | export default router |
| | |
| | | |
| | | import { defineStore } from 'pinia' |
| | | import { ref } from 'vue' |
| | | import { ajaxPost} from '@/utils/axios' |
| | | // 使用示例一:函数式定义【个人推荐】 |
| | | export const userInfoStore = defineStore('userInfo', () => { |
| | | const info = ref({ |
| | |
| | | code:'', |
| | | id:'', |
| | | patientCardNo:'', |
| | | patientOpenId:'', |
| | | patientIdentityNo:'', |
| | | patientName:'', |
| | | patientTelNo:'', |
| | | patientAvatarIcon:'' |
| | | patientAvatarIcon:'', |
| | | patientCreditValue:0, |
| | | clientCode:'', |
| | | }, |
| | | pressure:'', |
| | | weight:'' |
| | |
| | | info.value.headimgurl=userInfo.headimgurl |
| | | info.value.nickname=userInfo.nickname |
| | | } |
| | | function setPatient(info:object) { |
| | | patient.value=info |
| | | function setPatient(userInfo:object) { |
| | | patient.value=userInfo |
| | | } |
| | | const setPatientApi= async ()=>{ |
| | | const res= await ajaxPost('/patient/info/getPatientInfo','') |
| | | console.log('-----') |
| | | console.log(res) |
| | | setPatient(res) |
| | | } |
| | | |
| | | return { info,patient,setPatient, setInfo } |
| | | return { info,patient,setPatient, setInfo,setPatientApi } |
| | | }) |
| | |
| | | |
| | | let controllers: AbortController[] = [] |
| | | |
| | | const BASE_URL = 'https://hemobs.icoldchain.cn' |
| | | // const BASE_URL = 'https://hemobs.icoldchain.cn' |
| | | const BASE_URL='http://testbs.ihemodialysis.com' |
| | | const TIME_OUT = 10 * 1000 |
| | | |
| | | interface IResponseError { |
| | |
| | | |
| | | import Cookies from "js-cookie" |
| | | /** |
| | | * window.localStorage 浏览器永久缓存 |
| | | * @method set 设置永久缓存 |
| | |
| | | export const Session = { |
| | | // 设置临时缓存 |
| | | set(key: string, val: any) { |
| | | console.log('设置临时缓存') |
| | | console.log(key,val) |
| | | if (key === 'token') return Cookies.set(key, val); |
| | | window.sessionStorage.setItem(key, JSON.stringify(val)) |
| | | }, |
| | | // 获取临时缓存 |
| | | get(key: string) { |
| | | console.log(Cookies.get(key),key) |
| | | if (key === 'token') return Cookies.get(key); |
| | | const json: any = window.sessionStorage.getItem(key) |
| | | return JSON.parse(json) |
| | | }, |
| | | // 移除临时缓存 |
| | | remove(key: string) { |
| | | if (key === 'token') return Cookies.remove(key); |
| | | window.sessionStorage.removeItem(key) |
| | | }, |
| | | // 移除全部临时缓存 |
| | | clear() { |
| | | Cookies.remove('token'); |
| | | window.sessionStorage.clear() |
| | | }, |
| | | } |
| | |
| | | </div> |
| | | <van-tabbar v-model="active" @change="tabChang"> |
| | | <van-tabbar-item name="home" icon="like">首页</van-tabbar-item> |
| | | <van-tabbar-item name="jifen" icon="cart-circle-o">积分商城</van-tabbar-item> |
| | | <van-tabbar-item name="my" icon="manager">我的</van-tabbar-item> |
| | | </van-tabbar> |
| | | </div> |
| | |
| | | const tabChang=(index:any)=>{ |
| | | if (index==='home'){ |
| | | router.push('/') |
| | | } else { |
| | | } else if(index==='jifen') { |
| | | router.push('jifenShangCheng') |
| | | }else if(index==='my') { |
| | | router.push('my') |
| | | } |
| | | } |
| | |
| | | } |
| | | ) |
| | | onMounted(() => { |
| | | if (userInfo.info.openid===''){ |
| | | router.push('login') |
| | | } |
| | | // if (userInfo.info.openid===''){ |
| | | // router.push('login') |
| | | // } |
| | | console.log(userInfo.patient,'患者信息') |
| | | console.log(userInfo.info,'微信账号信息') |
| | | }) |
| New file |
| | |
| | | <template> |
| | | <div> |
| | | <van-popup v-model:show="showDizhi" position="bottom" :style="{ height: '100%' }"> |
| | | <van-nav-bar |
| | | title="收货地址管理" |
| | | left-text="返回" |
| | | left-arrow |
| | | @click-left="onClickLeft" |
| | | /> |
| | | <van-address-list |
| | | v-model="chosenAddressId" |
| | | :list="list" |
| | | default-tag-text="默认" |
| | | @add="onAdd" |
| | | @edit="onEdit" |
| | | /> |
| | | </van-popup> |
| | | <van-popup v-model:show="editDizhi" position="bottom" :style="{ height: '100%' }"> |
| | | <van-nav-bar |
| | | title="编辑地址" |
| | | left-text="返回" |
| | | left-arrow |
| | | @click-left="onClickLeft2" |
| | | /> |
| | | <van-address-edit |
| | | ref="addressEditRef" |
| | | :area-list="areaList" |
| | | show-delete |
| | | show-set-default |
| | | show-search-result |
| | | :address-info="addressInfo" |
| | | :area-columns-placeholder="['请选择', '请选择', '请选择']" |
| | | @save="onSave" |
| | | @delete="onDelete" |
| | | /> |
| | | </van-popup> |
| | | </div> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | |
| | | import { Toast } from 'vant'; |
| | | import { ref } from 'vue'; |
| | | import { areaList } from '@vant/area-data'; |
| | | import type { AddressEditInstance } from 'vant'; |
| | | name:"dizhibianji" |
| | | const emit = defineEmits(['fanhuiFun']) |
| | | const showDizhi=ref(false) |
| | | const editDizhi=ref(false) |
| | | const addressEditRef = ref<AddressEditInstance>(); |
| | | const chosenAddressId = ref('1') |
| | | const addressInfo=ref({ |
| | | name:'', |
| | | tel:'', |
| | | province:'', |
| | | city:"", |
| | | county:'', |
| | | addressDetail:'', |
| | | isDefault:false |
| | | }) |
| | | const list =[ |
| | | { |
| | | id: '1', |
| | | name: '张三', |
| | | tel: '13000000000', |
| | | address: '浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室', |
| | | isDefault: true, |
| | | }, |
| | | { |
| | | id: '2', |
| | | name: '李四', |
| | | tel: '1310000000', |
| | | address: '浙江省杭州市拱墅区莫干山路 50 号', |
| | | }, |
| | | ] |
| | | const openShow=()=>{ |
| | | showDizhi.value=true |
| | | } |
| | | const onClickLeft=()=>{ |
| | | showDizhi.value=false |
| | | } |
| | | const onClickLeft2=()=>{ |
| | | addressEditRef.value?.setAddressDetail('3434343'); |
| | | editDizhi.value=false |
| | | } |
| | | const onAdd = () =>{ |
| | | editDizhi.value=true |
| | | addressInfo.value={ |
| | | name:'', |
| | | tel:'17717874345', |
| | | province:'', |
| | | city:"", |
| | | county:'', |
| | | addressDetail:'', |
| | | isDefault:false |
| | | } |
| | | } |
| | | const onEdit = (item:any, index:number) =>{ |
| | | console.log(item) |
| | | addressInfo.value={ |
| | | name:item.name, |
| | | tel:item.tel, |
| | | province:'', |
| | | city:"", |
| | | county:'', |
| | | addressDetail:item.address, |
| | | isDefault:item.isDefault |
| | | } |
| | | editDizhi.value=true |
| | | } |
| | | const onSave = (form:any) => { |
| | | Toast('save'); |
| | | console.log(form) |
| | | |
| | | } |
| | | const onDelete = () => Toast('delete'); |
| | | defineExpose({ |
| | | openShow |
| | | } ) |
| | | </script> |
| New file |
| | |
| | | <template> |
| | | <div> |
| | | <div> |
| | | <dizhi></dizhi> |
| | | <van-tree-select |
| | | :height="height" |
| | | v-model:main-active-index="activeIndex" |
| | | :items="items" |
| | | > |
| | | <template #content > |
| | | <div style="text-align: right; padding-right: 20px; height: 50px; line-height: 30px; color: #409EFF; font-size: 16px;"> |
| | | <van-icon size="26px" name="cart-circle-o" style="margin-top: 20px;" /> |
| | | </div> |
| | | <div style="border-left: 1px solid rgb(229, 226, 225); background:#f7f8fa;"> |
| | | <van-card |
| | | style="background: #ffffff;" |
| | | v-for="(item) in items[activeIndex].items" |
| | | > |
| | | <template #desc > |
| | | <span style="color:#409EFF; font-size: 1rem;">{{item.itemName}}</span> |
| | | </template> |
| | | <template #price > |
| | | <span style="color: red; font-size: 1rem;">{{item.itemPrice}}¥</span> |
| | | </template> |
| | | <template #thumb > |
| | | <van-image |
| | | fit="contain" |
| | | width="100%" |
| | | height="100%" |
| | | :src="item.itemPhoto" |
| | | /> |
| | | </template> |
| | | <template #tags> |
| | | <!-- <van-tag plain type="danger">卡片</van-tag> --> |
| | | </template> |
| | | |
| | | <template #footer> |
| | | <van-icon @click="goumai(item)" size="20" color="red" name="shopping-cart-o" /> |
| | | </template> |
| | | </van-card> |
| | | </div> |
| | | </template> |
| | | </van-tree-select> |
| | | </div> |
| | | <div> |
| | | |
| | | </div> |
| | | <!-- 购买弹框 --> |
| | | <div> |
| | | <van-popup v-model:show="show" position="bottom" :style="{ height: '320px' }"> |
| | | <div style="padding-top: 20px;"> |
| | | <van-row> |
| | | <van-col :span="2" style="height: 60px; line-height: 60px; padding-top: 10px;"> |
| | | <van-icon size="40px" color="#E6A23C" name="location-o" /> |
| | | </van-col> |
| | | <van-col :span="20" style="font-size: 16px; padding-left: 10px; height: 60px; line-height: 30px;" > |
| | | 王虎 燎原西路190弄3好107 |
| | | <br/>联系电话:17717853034 |
| | | </van-col> |
| | | <van-col :span="2" style="height: 60px; line-height: 60px;"> |
| | | <van-icon size="20px" @click="openDizhi" name="arrow" /> |
| | | </van-col> |
| | | </van-row> |
| | | </div> |
| | | <div style="padding-top: 20px;" class="setItem"> |
| | | <van-card> |
| | | <template #desc > |
| | | <span style="color:#409EFF; font-size: 1rem;">{{setItem.itemName}}</span> |
| | | </template> |
| | | <template #price > |
| | | <span style="color: red; font-size: 1rem;">{{setItem.itemPrice}}¥</span> |
| | | </template> |
| | | <template #thumb > |
| | | <van-image |
| | | fit="contain" |
| | | width="100%" |
| | | height="100%" |
| | | :src="setItem.itemPhoto" |
| | | /> |
| | | </template> |
| | | <template #tags> |
| | | <br/> |
| | | <van-tag style="margin-top: 10px;" plain type="danger">选择人数多</van-tag> |
| | | </template> |
| | | |
| | | <template #footer> |
| | | <span> |
| | | <van-icon size="1rem" v-if="setItem.number>1" @click="setItem.number--" name="minus" /> |
| | | </span> |
| | | <span style="font-size: 1.2rem; margin-left: 1rem; margin-right: 1rem;"> |
| | | {{setItem.number}} |
| | | </span> |
| | | <span> |
| | | <van-icon size="1rem" @click="setItem.number++" name="plus" /> |
| | | |
| | | </span> |
| | | </template> |
| | | </van-card> |
| | | </div> |
| | | <div style="text-align: right; font-size: 18px; color: red; font-weight: 600; margin-top: 10px;padding-right: 20px;"> |
| | | 小计¥{{setItem.itemPrice*setItem.number}} |
| | | </div> |
| | | <van-action-bar> |
| | | <van-action-bar-icon icon="revoke" @click="show=false" text="返回" dot /> |
| | | <van-action-bar-icon icon="cart-o" text="购物车" badge="5" /> |
| | | <van-action-bar-button type="warning" text="加入购物车" /> |
| | | <van-action-bar-button type="danger" text="立即购买" /> |
| | | </van-action-bar> |
| | | </van-popup> |
| | | </div> |
| | | <!-- 地址弹框 --> |
| | | <div> |
| | | <dizhi :fanhuiFun="feihuDizhi" ref="dizhiRef"></dizhi> |
| | | </div> |
| | | <van-tabbar v-model="active" @change="tabChang"> |
| | | <van-tabbar-item name="home" icon="like">首页</van-tabbar-item> |
| | | <van-tabbar-item name="jifen" icon="cart-circle-o">积分商城</van-tabbar-item> |
| | | <van-tabbar-item name="my" icon="manager">我的</van-tabbar-item> |
| | | </van-tabbar> |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { computed, ref } from 'vue' |
| | | import {useRouter} from 'vue-router' |
| | | import { useWindowSize } from '@vant/use' |
| | | // import dizhiAdmin from '../jifenShangCheng/components/dizhiAdmin.vue' |
| | | import dizhi from '../jifenShangCheng/components/dizhi.vue' |
| | | import { userInfoStore } from '@/stores/userInfo' |
| | | const userInfo = userInfoStore() |
| | | import { ajaxGet ,ajaxPost} from '@/utils/axios' |
| | | import { onMounted } from 'vue' |
| | | const router=useRouter() |
| | | const { width, height } = useWindowSize(); |
| | | const dizhiRef=ref() |
| | | const show=ref(false) |
| | | const patientInfo=computed(() => { |
| | | return userInfo.patient |
| | | }) |
| | | const setItem=ref({ |
| | | itemName:'dsd', |
| | | itemPrice:0, |
| | | itemPhoto:'', |
| | | code:'', |
| | | number:1, |
| | | id:0 |
| | | }) |
| | | const activeIndex = ref(0); |
| | | const items=ref([ |
| | | { |
| | | name:'', |
| | | text:'', |
| | | items:[] |
| | | } |
| | | ]) |
| | | const active=ref('jifen') |
| | | const tabChang=(index:any)=>{ |
| | | if (index==='home'){ |
| | | router.push('/') |
| | | } else if(index==='jifen') { |
| | | router.push('jifenShangCheng') |
| | | }else if(index==='my') { |
| | | router.push('my') |
| | | } |
| | | } |
| | | // 购买 |
| | | const goumai=(item:any)=>{ |
| | | console.log(item) |
| | | setItem.value={ |
| | | itemName:item.itemName, |
| | | itemPrice:item.itemPrice, |
| | | code:item.code, |
| | | number:1, |
| | | itemPhoto:item.itemPhoto, |
| | | id:item.id |
| | | } |
| | | show.value=true |
| | | } |
| | | // 编辑地址 |
| | | const openDizhi=()=>{ |
| | | dizhiRef.value.openShow() |
| | | } |
| | | // 返回地址 |
| | | const feihuDizhi=()=>{ |
| | | console.log() |
| | | } |
| | | onMounted(()=>{ |
| | | ajaxPost('/eshop/listItems',`clientCode=${patientInfo.value.patientInfo.clientCode}`).then((re:any)=>{ |
| | | console.log(re.category) |
| | | const list= re.category |
| | | items.value =list.map((el:any)=>{ |
| | | el.text=el.name |
| | | return el |
| | | }) |
| | | console.log(items.value) |
| | | |
| | | }) |
| | | }) |
| | | </script> |
| | |
| | | placeholder="请输入登录名" |
| | | :rules="[{ required: true, message: '请输入登录名' }]" |
| | | /> |
| | | <!-- :rules="[{ required: true, message: '请填写密码' }]" --> |
| | | <van-field |
| | | v-model="password" |
| | | type="password" |
| | | name="密 码" |
| | | label="密  码" |
| | | placeholder="6-16位数字或者字母组合" |
| | | :rules="[{ required: true, message: '请填写密码' }]" |
| | | |
| | | > |
| | | <template #button> |
| | | <van-button size="small" type="default" @click="wjmm">忘记密码</van-button> |
| | |
| | | <div style="padding-left: 20px; padding-top: 12px; padding-right: 20px;"> |
| | | <van-row style="border-bottom: 1px solid #F1F1F2;margin-top: 12px;"> |
| | | <van-col span="12" style="margin-bottom: 12px;">患者卡片</van-col> |
| | | <van-col span="12" style="text-align: right;padding-right: 25px;"> <van-icon name="arrow" /></van-col> |
| | | <van-col span="12" style="text-align: right;padding-right: 5px;"> <van-icon name="arrow" /></van-col> |
| | | </van-row> |
| | | </div> |
| | | |
| | |
| | | <div class="div1">{{patientInfo.patientInfo.patientName}} |
| | | <span class="but">排班提醒</span> |
| | | </div> |
| | | <div class="div2">患者卡号</div> |
| | | <div class="div3">{{patientInfo.patientInfo.patientCardNo}} </div> |
| | | <div class="div2">卡号:{{patientInfo.patientInfo.patientCardNo}}</div> |
| | | <div class="div3" style="color: blue; font-family: cursive; font-size: 16px;">我的积分:{{patientInfo.patientInfo.patientCreditValue}} </div> |
| | | </van-col> |
| | | <van-col span="8" class="info8"> |
| | | <div class="img" @click="imgShow"> |
| | |
| | | </van-popup> |
| | | <van-tabbar v-model="active" @change="tabChang"> |
| | | <van-tabbar-item name="home" icon="like">首页</van-tabbar-item> |
| | | <van-tabbar-item name="jifen" icon="cart-circle-o">积分商城</van-tabbar-item> |
| | | <van-tabbar-item name="my" icon="manager">我的</van-tabbar-item> |
| | | </van-tabbar> |
| | | </div> |
| | |
| | | const tabChang=(index:any)=>{ |
| | | if (index==='home'){ |
| | | router.push('/') |
| | | } else { |
| | | } else if(index==='jifen') { |
| | | router.push('jifenShangCheng') |
| | | }else if(index==='my') { |
| | | router.push('my') |
| | | } |
| | | } |