Sfoglia il codice sorgente

[dev]
未调通接口
PAD端
6、/pharmacistStatus/releaseOrder
9、/prescription/prescriptionCore/list/v2
PC端

Neo.Sun 2 anni fa
parent
commit
6b2d837058

+ 4 - 3
App.vue

@@ -5,7 +5,7 @@
 </template> -->
 <script setup>
 import { onShow, onHide, onLaunch } from '@dcloudio/uni-app'
-import websocket from '@/static/websocket.js'
+import websocket from '@/static/js/websocket.js'
 
 //定义定时器
 let globalTimer = null
@@ -33,7 +33,8 @@ onShow(()=>{
 	uni.$on('login',(data)=>{
 		try {
 			//建立socket连接
-			websocket.connectSocket(`wss://localhost:8005/webSocket/sentMessage${data.userId}`,() => {
+			// websocket.connectSocket(`wss://zhongyao.fscuc.cn/webSocket/sentMessage/${data.userId}`,() => {
+				websocket.connectSocket(`wss://zhongyao.fscuc.cn/webSocket/sentMessage/${data.userId}`,() => {
 				//如果连接成功则发送心跳检测
 				heartBeatTest()
 			})
@@ -78,7 +79,7 @@ const heartBeatTest=()=> {
 	} */
 	/* @import "@/static/iconfont.css" */
 	.main{
-		background-color: #bcbcbc;
+		background-color: #d9d9d9;
 		display: flex;
 		flex-direction:column;
 		width: 1200px;

+ 1 - 1
components/nav-bar/nav-bar.vue

@@ -23,7 +23,7 @@
 
 <script setup>
 import { onMounted,ref } from 'vue'
-import {updateWorkStatus, updateOnlineStatus } from "@/static/api.js"
+import {updateWorkStatus, updateOnlineStatus } from "@/static/js/api.js"
 
 const props = defineProps({
 	userInfo: {

+ 12 - 3
components/order-card/order-card.vue

@@ -10,7 +10,7 @@
 						<view class="seage">{{props.v.sex}},{{v.age}}岁</view>
 					</view>
 					<view class="case">{{props.v.disName}}-{{props.v.symName}}</view>
-					<view class="pres">当前处方状态: {{props.v.deployState}}</view>
+					<view class="pres" v-if="props.v.deployState && deployArr[parseInt(props.v.deployState)-1].name">当前处方状态: {{props.v.deployState?deployArr[parseInt(props.v.deployState)-1].name:'未知'}}</view>
 				</view>
 				
 			</view>
@@ -43,6 +43,14 @@
 <script setup>
 import { onMounted, ref } from 'vue'
 
+
+const deployArr = ref([
+	{name:'抓药', id: '1' },
+	{name:'复核', id: '2' },
+	{name:'浸泡', id: '3' },
+	{name:'煎煮', id: '4' },
+	{name:'打包', id: '5' },
+])
 const props = defineProps({
 	v: {
 		default: function() {
@@ -56,15 +64,16 @@ const props = defineProps({
 	}
 })
 
+
 const handleDetail = ()=>{
 	console.log("handleDetail", props.v, props.c)
 	if(props.c===0){
 		uni.navigateTo({
-			url:`/pages/edit/edit?preId=${props.v.preId}&depolyStatus=1`
+			url:`/pages/edit/edit?id=${props.v.id}&depolyStatus=1`
 		})
 	} else {
 		uni.navigateTo({
-			url:`/pages/detail/detail?preId=${props.v.preId}`
+			url:`/pages/detail/detail?id=${props.v.id}`
 		})
 	}
 	

+ 6 - 0
main.js

@@ -1,3 +1,8 @@
+import ElementPlus from 'element-plus' //添加
+import 'element-plus/dist/index.css'   //添加
+// import locale from 'element-plus/lib/locale/lang/zh-cn' //切换为中文版本
+
+
 import App from './App'
 import appPush from '@/js_sdk/levine-APPPush/levine-APPPush/plugins/APPPush/index.js'
 import Print from 'vue3-print-nb'
@@ -29,6 +34,7 @@ import { createSSRApp } from 'vue'
 export function createApp() {
   const app = createSSRApp(App)
 	app.use(Print)
+	app.use(ElementPlus)
 	// app.use(appPush)
   return {
     app

+ 82 - 74
manifest.json

@@ -1,74 +1,82 @@
-{
-    "name" : "中药处方煎配",
-    "appid" : "__UNI__F501A17",
-    "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : "100",
-    "transformPx" : false,
-    /* 5+App特有相关 */
-    "app-plus" : {
-        "usingComponents" : true,
-        "nvueStyleCompiler" : "uni-app",
-        "compilerVersion" : 3,
-        "splashscreen" : {
-            "alwaysShowBeforeRender" : true,
-            "waiting" : true,
-            "autoclose" : true,
-            "delay" : 0
-        },
-        /* 模块配置 */
-        "modules" : {
-            "Barcode" : {}
-        },
-        /* 应用发布信息 */
-        "distribute" : {
-            /* android打包配置 */
-            "android" : {
-                "permissions" : [
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-                ]
-            },
-            /* ios打包配置 */
-            "ios" : {},
-            /* SDK配置 */
-            "sdkConfigs" : {}
-        }
-    },
-    /* 快应用特有相关 */
-    "quickapp" : {},
-    /* 小程序特有相关 */
-    "mp-weixin" : {
-        "appid" : "",
-        "setting" : {
-            "urlCheck" : false
-        },
-        "usingComponents" : true
-    },
-    "mp-alipay" : {
-        "usingComponents" : true
-    },
-    "mp-baidu" : {
-        "usingComponents" : true
-    },
-    "mp-toutiao" : {
-        "usingComponents" : true
-    },
-    "uniStatistics" : {
-        "enable" : false
-    },
-    "vueVersion" : "3"
-}
+{
+	"name": "中药处方煎配",
+	"appid": "__UNI__F501A17",
+	"description": "",
+	"versionName": "1.0.0",
+	"versionCode": "100",
+	"transformPx": false,
+	/* 5+App特有相关 */
+	"app-plus": {
+		"usingComponents": true,
+		"nvueStyleCompiler": "uni-app",
+		"compilerVersion": 3,
+		"splashscreen": {
+			"alwaysShowBeforeRender": true,
+			"waiting": true,
+			"autoclose": true,
+			"delay": 0
+		},
+		/* 模块配置 */
+		"modules": {
+			"Barcode": {}
+		},
+		/* 应用发布信息 */
+		"distribute": {
+			/* android打包配置 */
+			"android": {
+				"permissions": [
+					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
+					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+					"<uses-feature android:name=\"android.hardware.camera\"/>",
+					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+				]
+			},
+			/* ios打包配置 */
+			"ios": {},
+			/* SDK配置 */
+			"sdkConfigs": {}
+		}
+	},
+	/* 快应用特有相关 */
+	"quickapp": {},
+	/* 小程序特有相关 */
+	"mp-weixin": {
+		"appid": "",
+		"setting": {
+			"urlCheck": false
+		},
+		"usingComponents": true
+	},
+	"mp-alipay": {
+		"usingComponents": true
+	},
+	"mp-baidu": {
+		"usingComponents": true
+	},
+	"mp-toutiao": {
+		"usingComponents": true
+	},
+	"uniStatistics": {
+		"enable": false
+	},
+	"vueVersion": "3",
+	
+	"h5": {
+		"devServer": {
+			// host:'0.0.0.0',
+			// port:5173,
+			
+		}
+	}
+}

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "dependencies": {
-    "element-plus": "^2.3.7",
+    "element-plus": "^2.3.8",
     "vue3-print-nb": "^0.1.4"
   },
   "devDependencies": {

+ 4 - 4
pages/detail/detail.vue

@@ -23,7 +23,7 @@
 						<view class="row">姓名:{{v.name}}</view>
 						<view class="row">性别:{{v.sex}}</view>
 						<view class="row">年龄:{{v.age}}岁</view>
-						<view class="row">电话:{{v.tel}}</view>
+						<view class="row">电话:{{v.contactNumber}}</view>
 						<view class="row">当前处方状态:{{v.status}}</view>
 					</view>
 					<view class="r2">
@@ -103,7 +103,7 @@
 
 <script setup>
 import { onMounted, ref } from 'vue'
-import { selectOrderDetail } from "@/static/api.js"
+import { selectOrderDetail } from "@/static/js/api.js"
 import { onLoad } from '@dcloudio/uni-app'
 
 const preseId = ref(11220822134401)
@@ -125,13 +125,13 @@ const v=ref({
 	name:'李某',
 	sex:'男',
 	age:35,
-	tel:'13888888888',
+	contactNumber:'13888888888',
 	pres_status: '发药',
 	office:'中医内科',
 	disName:'胃脘痛病',
 	symName:'脾胃虚寒证',
 	prescriptionTime:'2023-06-01 15:58',
-	addr:'浙江省某某事某某去某某事中医院门诊楼三楼302是',
+	address:'浙江省某某事某某去某某事中医院门诊楼三楼302是',
 	rp:[
 		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
 		{name:'车前子',num:'6g',tips:'先煎',sign:'医生签名'},

+ 198 - 97
pages/edit/edit.vue

@@ -1,6 +1,6 @@
 <template>
   <view class="main">
-		<uni-nav-bar dark :fixed="true" shadow background-color="#007AFF" status-bar left-icon="left" left-text="返回" :leftWidth=120 :rightWidth=120 :height=100 :width="1200"
+		<uni-nav-bar dark :fixed="true" shadow background-color="#18C7B0" status-bar left-icon="left" left-text="返回" :leftWidth=120 :rightWidth=120 :height="100" :width="1200"
 			title="调配详情" @clickLeft="handleBack"
 		/>
 		
@@ -23,7 +23,7 @@
 						<view class="row">姓名:{{v.name}}</view>
 						<view class="row">性别:{{v.sex}}</view>
 						<view class="row">年龄:{{v.age}}岁</view>
-						<view class="row">电话:{{v.tel}}</view>
+						<view class="row">电话:{{v.contactNumber}}</view>
 						<view class="row status">当前处方状态:{{v.status}}</view>
 					</view>
 					<view class="r2">
@@ -31,7 +31,7 @@
 						<view class="row">临床诊断:{{v.disName}}—{{v.symName}}</view>
 						<view class="row">开方时间:{{v.prescriptionTime}}</view>
 					</view>
-					<view class="r3">联系地址:{{v.addr}}</view>
+					<view class="r3">联系地址:{{v.address}}</view>
 				</view>
 			</view>
 			<view class="rp">
@@ -41,26 +41,26 @@
 				<view class="lists">
 					<view class="item"  v-for="(x, i) in v.rp" :key="i">
 						<view class="le tag-view">
-							<uni-tag :inverted="!selectRps.includes(x)" :text=x.name+x.num @click="handleGetRps(x)" />
+							<uni-tag :inverted="!selectRps.includes(x)" :text="x.matName+x.matDose+x.matUnitName" @click="handleGetRps(x)" />
 						</view>
 						<view class="rig">
-							<view class="up"> {{x.tips}}</view>
+							<view class="up"> {{x.matUsageName}}</view>
 							<view class="do"> {{x.sign}}</view>
 						</view>
 					</view>
 				</view>
 				<view class="footer">
 					<view class="js">
-						剂数:{{v.pies}}
+						剂数:{{v.number}}
 						<view v-if="v.pies_tips!==''" class="pies_tips">
 							({{v.pies_tips}})
 						</view>
 					</view>
-					<view class="js">{{v.med_type}}</view>
-					<view class="js">{{v.eat_type}}</view>
-					<view class="js">每次{{v.capa}}</view>
-					<view class="js">{{v.freque}}</view>
-					<view class="freque">{{v.eat_tips}}</view>
+					<view class="js">{{v.dosageForm}}</view>
+					<view class="js">{{v.prescriptionUsage}}</view>
+					<view class="js">每次{{v.concentration}}</view>
+					<view class="js">{{v.frequency}}</view>
+					<view class="freque">{{v.medicationTime}}</view>
 				</view>
 				<view class="rp-tips">{{v.rp_tips}}</view>
 			</view>
@@ -91,27 +91,46 @@
 			</view>
 			<view class="comment">
 				<view class="z">注:</view>
-				<text>{{v.comment}}</text>
+				<text>{{v.entrust}}</text>
 			</view>
 		</view>
 		<view class="upload">
 			<view class="title">上传照片</view>
-			<uni-file-picker
+			<!-- <uni-file-picker
 				class="plugin"
+				ref="files"
 				v-model="depolyImage"  
 				file-mediatype="image"
 				mode="grid"
 				file-extname="png,jpg"
 				:image-styles="depolyImageStyles"
 				:limit="3"
+				@select="uploadFiles"
 				@success="success" 
-			/>
+			/> -->
+			<el-upload
+				v-model:file-list="photos"
+				class="plugin"
+				action="http://zc3gc9.natappfree.cc/common/upload"
+				multiple
+				:on-preview="handlePreview"
+				:on-remove="handleRemove"
+				:on-success="handleSave"
+				:limit="3"
+			>
+				<el-button type="primary">Click to upload</el-button>
+				<template #tip>
+					<div class="el-upload__tip">
+						jpg/png files with a size less than 500KB.
+					</div>
+				</template>
+			</el-upload>
 		</view>
 		
 		<view class="cooment">
 			<view class="title">备注内容</view>
 			<view class="tex">
-				<input placeholder="请输入" placeholder-style="font-size: 30px;" height="40px" @input="bindTextInput" class="input"/>
+				<textarea placeholder="请输入备注内容" v-model="editForm.comments" placeholder-style="font-size: 30px;" height="100px" @input="bindTextInput" class="input" ></textarea>
 			</view>
 		</view>
 		<view class="radio">
@@ -131,7 +150,7 @@
 							<view class="lef">
 								<view class="baracode">
 									<w-barcode class="cav" :options="preseObj"></w-barcode>
-									<view class="barnum">NO.{{v.pres_id}}</view>
+									<view class="barnum">NO.{{v.preseId}}</view>
 								</view>
 							</view>
 							<view class="rig">
@@ -154,7 +173,9 @@
 
 <script setup>
 import { onMounted, ref, getCurrentInstance } from 'vue'
-import { selectOrderDetail } from "@/static/api.js"
+import { selectOrderDetail, upload } from "@/static/js/request.js"
+import { saveDepoly } from '@/static/js/api.js'
+
 import { onLoad } from '@dcloudio/uni-app'
 const preseId = ref(11220822134401)
 const preseObj = ref({
@@ -187,87 +208,76 @@ const barOpations = ref({
 const selectRps = ref([])
 
 const isPrint = ref(true)
-
-const success = ()=>{
-	console.log('uni-file-picker',depolyImage.value)
-}
-
-const bindTextInput = (e)=>{
-	console.log(e.detail.value)
-}
+const photos = ref([])
 const v=ref({
 	preNo:11220822134401,
 	presType:'普通处方',
 	name:'李某',
 	sex:'男',
 	age:35,
-	tel:'13888888888',
+	contactNumber:'13888888888',
 	pres_status: '发药',
 	office:'中医内科',
 	disName:'胃脘痛病',
 	symName:'脾胃虚寒证',
 	prescriptionTime:'2023-06-01 15:58',
-	addr:'浙江省某某事某某去某某事中医院门诊楼三楼302是',
+	address:'浙江省某某事某某去某某事中医院门诊楼三楼302是',
 	rp:[
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'先煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'先煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'先煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'先煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'包煎',sign:'医生签名'},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'先煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:''},
-		{name:'车前子',num:'6g',tips:'包煎',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''},
-		{name:'车前子',num:'6g',tips:'',sign:''}
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'包煎',sign:'医生签名'},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'',sign:''},
+		{matName:'车前子',matDose:'6',matUnitName:'g',tips:'先煎',sign:''}
 	],
-	pies:3,
+	number:3,
 	pies_tips:'待见',
-	med_type:'汤剂',
-	eat_type:'煎服',
-	capa:'200ml',
-	freque:'一日三次',
-	eat_tips:'饭后服',
+	dosageForm:'汤剂',
+	prescriptionUsage:'煎服',
+	concentration:'200ml',
+	frequency:'一日三次',
+	medicationTime:'饭后服',
 	rp_tips:'注意多休息,饮食清单。',
-	money:{
-		drugs_amount: 187.00,
-		cook_fee:30.00,
-		delie_fee:10.00,
-		summary: 227.00,
-	},
+	
+	prescriptionSum: 187.00,
+	daijianCost:30.00,
+	distributionCost:10.00,
+	prescriptionTotleSum: 227.00,
+
 	service:{
 		extra_doc:'A医生',
 		check_doc:'B医生',
@@ -278,12 +288,59 @@ const v=ref({
 		pack:'大宝人',
 		dispen:'发药人',
 	},
-	comment:'1、本处方当日有效\n  2、取药时请您当面核对。。。。 \n  3、延长处方用量时间原油:慢性病 其他老年病 外地 其他'
+	entrust:'1、本处方当日有效\n  2、取药时请您当面核对。。。。 \n  3、延长处方用量时间原油:慢性病 其他老年病 外地 其他'
+})
+
+const editForm =ref({
+	urls:[],
+	userId:uni.getStorageSync('userId'),
+	comments:'',
+	coreId: v.value.preNo
 })
 onMounted(() => {
 
 })
 
+
+const handleRemove = (file, uploadFiles) => {
+  console.log(file, uploadFiles)
+}
+
+const handlePreview = (uploadFile) => {
+  console.log(uploadFile)
+}
+
+// const uploadFiles = (e)=>{
+// 	const tempFilePaths = e.tempFilePaths;
+// 	//获取图片临时路径
+// 	const imgUrl=tempFilePaths[0]
+// 	uni.uploadFile({
+// 		//图片上传地址
+// 		url: 'http://zc3gc9.natappfree.cc/common/upload', 
+// 		filePath: e.tempFilePaths[0],
+// 		//上传名字,注意与后台接收的参数名一致
+// 		name: 'imgUrl',
+// 		//设置请求头
+// 		header:{"Content-Type": "multipart/form-data"},
+// 		//请求成功,后台返回自己服务器上的图片地址
+// 		success: (uploadFileRes) => {
+// 			console.log('uploadFileRes',JSON.parse(uploadFileRes.data));   
+// 			//处理数据
+// 			const path=JSON.parse(uploadFileRes.data)
+// 			//赋值,前端渲染
+// 			editForm.value.photo=path.imgUrl
+// 		}
+// 	});
+// }
+// const success = ()=>{
+// 	console.log('uni-file-picker',depolyImage.value)
+// }
+
+
+const bindTextInput = (e)=>{
+	console.log(e.detail.value)
+}
+
 onLoad(async(options) => {
 	console.log('options', options)
 	const token = uni.getStorageSync('token')
@@ -291,27 +348,38 @@ onLoad(async(options) => {
 	const params = {
 		token: token,
 		data: {
-			preId: options.preId,
-			userId: userId,
+			id: options.id,
 		}
 	}
-	const {data:res } = selectOrderDetail(params)
+	console.log("params",params)
+	const {data:res} = await selectOrderDetail(params)
+	// console.log('data',data.data)
+	// const res.code = 200
 	if (res.code === 200) {
 		v.prescriptionTime = res.data.prescriptionTime,
 		v.value.name = res.data.name,
 		v.value.sex = res.data.sex,
 		v.value.age = res.data.age,
+		v.value.contactNumber = res.data.contactNumber
+		v.value.address = res.data.address
+		v.value.concentration = res.data.concentration
+		v.value.frequency = res.data.frequency
+		v.value.medicationTime = res.data.medicationTime
 		
 		v.value.disName = res.data.disName,
 		v.value.symName = res.data.symName,
 		v.value.preNo = res.data.preNo,
 		v.value.department = res.data.department,
 		v.value.dosageForm = res.data.dosageForm,
+		v.value.prescriptionUsage = res.data.prescriptionUsage,
+		
 		v.value.number = res.data.number,
 		v.value.prescriptionSum = res.data.prescriptionSum,
 		v.value.prescriptionTotalSum = res.data.prescriptionTotalSum,
 		v.value.daijianCost = res.data.daijianCost,
 		v.value.distributionCost = res.data.distributionCost,
+		v.value.prescriptionTotleSum = res.data.prescriptionTotleSum,
+		
 		v.value.entrust = res.data.entrust,
 		v.value.rp = res.data.detailList
 		
@@ -361,26 +429,54 @@ const handleBack =()=>{
 	})
 }
 
-const handleSubmit = ()=>{
-	if(!isPrint){
+const handleSubmit = async()=>{
+	console.log('handleSubmit>>>',editForm.value)
+	console.log('直接调用接口,然后打印')
+	const {data:res} = await saveDepoly({
+		token: uni.getStorageSync('token'),
+		data: JSON.stringify(editForm.value)
+	})
+	if(res.code===200){
+		console.log('depoly success>>>')
+		
+	}
+	if(isPrint.value){
 		// 直接调用接口,然后打印
 		print("#printMe")
-		console.log('直接调用接口,然后打印')
+		uni.redirectTo({
+			url:"/pages/index/index"
+		})
+		
 	} else {
 		// 弹窗提醒
 		// console.log("handleSubmit proxy.$refs.alertDialog",proxy.$refs.alertDialog)
 		proxy.$refs.alertDialog.open('center')
 	}
+	
 }
 
 const dialogConfirm = ()=>{
 	console.log('dialogConfirm直接调用接口,然后打印')
 	print("#printMe")
+	uni.redirectTo({
+		url:"/pages/index/index"
+	})
 }
 const dialogClose = ()=>{
 	console.log('dialogClose直接调用接口,不打印')
+	uni.redirectTo({
+		url:"/pages/index/index"
+	})
+}
+
+const handleSave = (file, uploadFiles)=>{
+	console.log('upload file success>>',file, uploadFiles)
+	//TODO  临时存了返回消息,等接口做完后修改
+	editForm.value.urls.push(file.msg)
+	// 上传成功的文件存数组editForm.photos
 }
 
+
 </script>
 
 <style lang="scss">
@@ -638,7 +734,7 @@ const dialogClose = ()=>{
 		}
 	}
 	.cooment{
-		margin: 0 10px 10px 10px;
+		margin: 0 10px;
 		background-color: #fff;
 		flex-direction:column;
 		align-items: center;
@@ -655,7 +751,7 @@ const dialogClose = ()=>{
 			border: 1px solid #cfcfcf;
 			height: 60px;
 			.input{
-				height: 30px;
+				height: 60px;
 				font-size: 30px;
 				padding-left: 10px;
 			}
@@ -664,24 +760,29 @@ const dialogClose = ()=>{
 	.radio{
 		display: flex;
 		margin: 0 10px 10px 10px;
-		// background-color: #fff;
+		background-color: #fff;
+		padding: 0 20px 100px;
 		flex-direction:column;
 		// align-items: center;
 		font-size: 20px!important;
 	}
 	.submit{
 		display: flex;
-		margin: 40px 10px;
-		// background-color: #fff;
+		margin: 30px 0;
+		background-color: #fff;
 		align-items: center;
+		width: 1200px;
+		height: 100px;
 		
 		.bu{
 			display: flex;
 			justify-content:center;
 			align-items: center;
-			height: 60px;
-			width: 600px;
+			height: 65px;
+			width: 1074px;
 			font-size: 30px;
+			background-color: #18c7b0;
+			color:#fff;
 		}
 	}
 	

+ 12 - 6
pages/index/index.vue

@@ -80,7 +80,7 @@ import NavBar from "@/components/nav-bar/nav-bar.vue"
 import OrderCard from "@/components/order-card/order-card.vue"
 import { onMounted,ref } from 'vue'
 import { onLoad } from "@dcloudio/uni-app"
-import {receiveOrderList } from "@/static/api.js"
+import {receiveOrderList } from "@/static/js/api.js"
 
 
 const userInfo = ref({})
@@ -135,14 +135,16 @@ onMounted(() => {
 
 onLoad(async () => {
 	const token = uni.getStorageSync('token')
+	const userId = uni.getStorageSync('userId')
 	userInfo.value.name = uni.getStorageSync('username')
 	userInfo.value.workStatus = '0'
 	const params = {
 		token: token,
 		data:{
 			status: '0',
-			page: page.value,
-			pageSize: pageSize.value,
+			currentUserId: userId,
+			// page: page.value,
+			// pageSize: pageSize.value,
 		}
 	}
 	
@@ -207,6 +209,7 @@ const handleSearch = async()=>{
 				pageSize: pageSize.value,
 			}
 		}
+		console.log('params',params)
 		const {data:res} = await receiveOrderList(params)
 		if (res.code === 200) {
 			total.value = res.total
@@ -390,12 +393,13 @@ const checkIndex = async(index) => {
 					justify-content:center;
 					align-items: center;
 					font-size: 30px;
-					background-color: #999;
+					background-color: #fff;
 					color: #000;
 				}
 				.active{
-					background-color: #fff!important;
-					color:#000!important;
+					// background-color: #fff!important;
+					border-bottom: 5px solid #18C7B0;
+					// color:#000!important;
 				}
 			}
 			.search-bar{
@@ -417,11 +421,13 @@ const checkIndex = async(index) => {
 						width:100px;
 						margin: 8px 12px;
 						font-size: 18px;
+						background-color: #18C7B0;
 					}
 					.refresh {
 						width:200px;
 						margin: 8px 12px;
 						font-size: 18px;
+						background-color: #18C7B0;
 					}
 				}
 				.history{

+ 24 - 24
pages/login/login.vue

@@ -42,7 +42,8 @@
 
 <script setup>
 import { onMounted, ref } from 'vue'
-import { login } from '@/static/request.js'
+import { login } from '@/static/js/request.js'
+import { updateOnlineStatus } from "@/static/js/api.js"
 
 const showPassword = ref(false)
 const formData = ref({
@@ -63,32 +64,28 @@ const submit = async ()=> {
 		password: formData.value.password,
 		code: '2',
 	}
-	// uni.setStorageSync('token', 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ0ZTExZWNlLTdlNGUtNGZjNi1iMTgzLTZhMTM2NTJiZTVlZiJ9.uZpHzo-AnKFcG3qwdTz85Wd61r1BUSS4TENUgsy1aQHZgdP1gnOZA1XUdFJChO1ReCzvyUENcMgG6GNrh1m_IQ')
-	// uni.redirectTo({
-	// 		url:"/pages/index/index"
-	// 	})
-	const res = await login(params)
-	if (res.code === 200 && res.token) {
+	
+	let {data:res} = await login(params)
+	console.log('res',res.code)
+	if (res.code === 200 && res.token && res.userId) {
+		
 		uni.setStorageSync('token', res.token)
 		uni.setStorageSync('userId', res.userId)
-		uni.$emit('login',{userId:res.userId})
-		const tokens = uni.getStorageSync('token')
-		const userId = uni.getStorageSync('userId')
-		const params = {
+		// uni.$emit('login',{userId:res.userId})
+		console.log('11')
+		console.log('res.token',res.token)
+		// JSON.stringify(params.data.data)
+		const param = {
 			token: res.token,
-			data: {
-				pharmacistUserId: res.userId,
-				onlineStatus: 0
-			}
+			data: JSON.stringify({ pharmacistUserId: res.userId, onlineStatus: 0})
 		}
-		const {data:res} = await updateOnlineStatus(params)
+		console.log('res.param',param)
+		await updateOnlineStatus(param)
+		
 		uni.redirectTo({
 			url:"/pages/index/index"
 		})
 	} else {
-		uni.redirectTo({
-			url:"/pages/index/index"
-		})
 			console.log('登录失败')
 			uni.$showMsg('登录失败', 1500)
 	}
@@ -96,7 +93,6 @@ const submit = async ()=> {
 const handleChange = ()=>{
 	formData.value.remember = !formData.value.remember
 	// 如果为true本地保存账号密码
-	console.log('handleChange', formData.value)
 }
 
 const changePassword = ()=>{
@@ -181,11 +177,15 @@ onMounted(() => {
 				margin-left: 10rpx;
 			}
 			.button {
-				background-color: #fff;
+				background-color: #F2F2F2;
 				margin-top: 40rpx;
-				color: #fff;
-				height: 30rpx;
-				width: 400rpx;
+				color: #999999;
+				height: 64px;
+				width: 1074px;
+				font-size: 28px;
+				display: flex;
+				justify-content: center;
+				align-items: center;
 			}
 		}
 	}

+ 13 - 13
static/api.js → static/js/api.js

@@ -14,7 +14,7 @@ export const receiveOrderList = (data) => {
 	return service({
 		url: '/prescription/prescriptionCore/receiveOrderList',
 		method: 'POST',
-		data: data.data
+		data: data
 	})
 }
 
@@ -23,7 +23,7 @@ export const selectOrderDetail = (data) => {
 	return service({
 		url: '/prescription/prescriptionCore/selectOrderDetail',
 		method: 'POST',
-		data: data.data
+		data: data
 	})
 }
 
@@ -32,7 +32,7 @@ export const updateWorkStatus = (data) => {
 	return service({
 		url: '/pharmacistStatus/updateWorkStatus',
 		method: 'POST',
-		data: data.data
+		data: data
 	})
 }
 
@@ -41,7 +41,7 @@ export const updateOnlineStatus = (data) => {
 	return service({
 		url: '/pharmacistOnlineStatus/updateOnlineStatus',
 		method: 'POST',
-		data: data.data
+		data: data
 	})
 }
 
@@ -50,15 +50,15 @@ export const releaseOrder = (data) => {
 	return service({
 		url: '/pharmacistStatus/releaseOrder',
 		method: 'POST',
-		data: data.data
+		data: data
 	})
 }
 
-// 通知
-// export const notice = (data) => {
-// 	return service({
-// 		url: '/webSocket/sentMessage',
-// 		method: 'POST',
-// 		data: data.data
-// 	})
-// }
+// 上传图片
+export const saveDepoly = (data) => {
+	return service({
+		url: '/file/saveCoreFile',
+		method: 'POST',
+		data: data
+	})
+}

+ 133 - 0
static/js/request.js

@@ -0,0 +1,133 @@
+var hostUrl = "http://zc3gc9.natappfree.cc"
+// 本地调试的时候
+// var isDebug = false
+// if (isDebug) {
+//     hostUrl = "/DebugApi"
+// }
+
+export const service = (params = {}) => {
+	// 发送请求
+	
+	return new Promise((resolve, reject) => {
+		console.log('params.data.data', params.data.data)
+		console.log('params.data.token', params.data.token)
+		uni.request({
+			// url: 'http://zhongyao.fscuc.cn' + params.url || '', // 接收请求的API
+			// url: 'http://jyhyy2.natappfree.cc' + params.url || '', // 接收请求的API
+			url: hostUrl + params.url, // 接收请求的API
+			
+			method: params.method || 'POST', // 接收请求的方式,如果不传默认为POST
+			data: params.data.data,//JSON.stringify(params.data.data), // 接收请求的data,不传默认为空
+			header: {
+				// 'Authorization':'Bearer ', //+ params.data.token,
+				// 'Authorization':'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ0ZTExZWNlLTdlNGUtNGZjNi1iMTgzLTZhMTM2NTJiZTVlZiJ9.uZpHzo-AnKFcG3qwdTz85Wd61r1BUSS4TENUgsy1aQHZgdP1gnOZA1XUdFJChO1ReCzvyUENcMgG6GNrh1m_IQ'
+				// 'Accept': 'application/json, text/plain, */*',
+				
+				// 'Content-Type': 'application/json',
+				// 'Access-Control-Allow-Origin': '*',
+			},
+			
+			success: res => {
+				if (res.statusCode !== 200 && res.statusCode !== 201) {
+					return uni.$showMsg('请求失败!请联系平台客服', 2000)
+				} else {
+					// console.log('api request response>>>', res.data)
+					resolve(res)
+				}
+			},
+			fail: err => {
+				return uni.$showMsg('请求接口失败!', 2000)
+				reject(err)
+			}
+		})
+	})
+};
+
+// 直接通过uni.login获取微信接口提供的code
+export const login = (params = {}) => {
+	return new Promise((resolve, reject) => {
+		uni.request({
+			// url: 'http://zhongyao.fscuc.cn' + '/login/v2',
+			url: hostUrl + '/login/v2',
+			method: params.method || 'POST',
+			data: JSON.stringify(params), 
+			
+			success: res => {
+				if (res.statusCode !== 200 && res.statusCode !== 201) {
+					return uni.$showMsg('请求失败!请联系平台客服', 2000)
+				} else {
+					// console.log('api request response>>>', res.data)
+					resolve(res)
+				}
+			},
+			fail: err => {
+				return uni.$showMsg('请求接口失败!', 2000)
+				reject(err)
+			}
+		})
+	})
+};
+
+export const selectOrderDetail = (params = {}) => {
+	return new Promise((resolve, reject) => {
+		uni.request({
+			// url: 'http://zhongyao.fscuc.cn' + '/login/v2',
+			url: hostUrl + `/prescription/prescriptionCore/selectOrderDetail?id=${params.data.id}`,
+			method: params.method || 'POST',
+			data: JSON.stringify(params), 
+			header: {
+				// 'Authorization':'Bearer ', //+ params.data.token,
+				// 'Authorization':'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ0ZTExZWNlLTdlNGUtNGZjNi1iMTgzLTZhMTM2NTJiZTVlZiJ9.uZpHzo-AnKFcG3qwdTz85Wd61r1BUSS4TENUgsy1aQHZgdP1gnOZA1XUdFJChO1ReCzvyUENcMgG6GNrh1m_IQ'
+				// 'Accept': 'application/json, text/plain, */*',
+				
+				// 'Content-Type': 'application/json',
+				// 'Access-Control-Allow-Origin': '*',
+			},
+			success: res => {
+				if (res.statusCode !== 200 && res.statusCode !== 201) {
+					return uni.$showMsg('请求失败!请联系平台客服', 2000)
+				} else {
+					// console.log('api request response>>>', res.data)
+					resolve(res)
+				}
+			},
+			fail: err => {
+				return uni.$showMsg('请求接口失败!', 2000)
+				reject(err)
+			}
+		})
+	})
+};
+
+
+export const upload = (params = {}) => {
+	console.log('upload api params', params)
+	return new Promise((resolve, reject) => {
+		uni.request({
+			
+			url: hostUrl + `/common/upload`,
+			method: params.method || 'POST',
+			data: params.data.file,
+			header: {
+				'Authorization':'Bearer ', //+ params.data.token,
+				
+				// 'Accept': 'application/json, text/plain, */*',
+				
+				'Content-Type': 'multipart/form-data',
+				// 'Access-Control-Allow-Origin': '*',
+			},
+			success: res => {
+				if (res.statusCode !== 200 && res.statusCode !== 201) {
+					return uni.$showMsg('请求失败!请联系平台客服', 2000)
+				} else {
+					// console.log('api request response>>>', res.data)
+					resolve(res)
+				}
+			},
+			fail: err => {
+				return uni.$showMsg('请求接口失败!', 2000)
+				reject(err)
+			}
+		})
+	})
+};

+ 0 - 0
static/websocket.js → static/js/websocket.js


+ 0 - 136
static/request.js

@@ -1,136 +0,0 @@
-
-export const service = (params = {}) => {
-	// 发送请求
-	// console.log('begin request!')
-	// console.log('request params....',params)
-	
-	return new Promise((resolve, reject) => {
-		uni.request({
-			url: 'http://127.0.0.1:8888' + params.url || '', // 接收请求的API
-			method: params.method || 'POST', // 接收请求的方式,如果不传默认为POST
-			data: params.data || {}, // 接收请求的data,不传默认为空
-			header: {
-				'Access-Control-Allow-Origin': 'http://localhost:8888',
-				'Authorization': 'Bearer '+ params.token || '',
-			},
-			success: res => {
-				if (res.statusCode !== 200 && res.statusCode !== 201) {
-					return uni.$showMsg('请求失败!请联系平台客服', 2000)
-				} else {
-					// console.log('api request response>>>', res.data)
-					resolve(res)
-				}
-			},
-			fail: err => {
-				return uni.$showMsg('请求接口失败!', 2000)
-				reject(err)
-			}
-		})
-	})
-};
-
-// 直接通过uni.login获取微信接口提供的code
-export const login = (params = {}) => {
-	return new Promise((resolve, reject) => {
-		uni.request({
-			url: 'http://127.0.0.1:8888' + '/login/v2',
-			method: params.method || 'POST',
-			data: params.data || {}, 
-			header: {
-				'Content-Type': 'application/json;charset=UTF-8;',
-				'Accept':'application/json, text/plain, */*',
-				'Accept-Encoding':'gzip, deflate',
-				'Accept-Language':'zh-CN,zh;q=0.9',
-			},
-			success: res => {
-				if (res.statusCode !== 200 && res.statusCode !== 201) {
-					return uni.$showMsg('请求失败!请联系平台客服', 2000)
-				} else {
-					// console.log('api request response>>>', res.data)
-					resolve(res)
-				}
-			},
-			fail: err => {
-				return uni.$showMsg('请求接口失败!', 2000)
-				reject(err)
-			}
-		})
-	})
-};
-
-export const wxAuth = (code) => {
-	return new Promise((resolve, reject) => {
-		uni.request({
-			url: config.BASE_URL + '/wxBase/auth',
-			method: 'POST',
-			data: {
-				appSecrtKey: config.API_SECRET_KEY,
-				appid: config.APP_ID,
-				merchantId: config.MERCHANT_ID,
-				code: code
-			},
-			header: {
-				'Content-Type': 'application/json'
-			},
-			success: res => {
-				if (res.statusCode !== 200 && res.statusCode !== 201) {
-					return uni.$showMsg('请求失败!请联系平台客服', 2000)
-				} else {
-					console.log(res.data)
-					resolve(res)
-				}
-			},
-			fail: err => {
-				return uni.$showMsg('微信接口认证失败!', 2000)
-				reject(err)
-			}
-		})
-	})
-};
-
-// 
-export const wxAppInit = () => {
-	return new Promise((resolve, reject) => {
-		uni.request({
-			url: config.BASE_URL + '/wxBase/appInit',
-			method: 'POST',
-			data: {
-				// appSecrtKey: config.API_SECRET_KEY,
-				// appid: config.APP_ID,
-				merchantId: config.MERCHANT_ID,
-				// code: code
-			},
-			header: {
-				'Content-Type': 'application/json'
-			},
-			success: res => {
-				if (res.statusCode !== 200 && res.statusCode !== 201) {
-					return uni.$showMsg('请求失败!请联系平台客服', 2000)
-				} else {
-					console.log(res.data)
-					resolve(res)
-				}
-			},
-			fail: err => {
-				return uni.$showMsg('微信接口认证失败!', 2000)
-				reject(err)
-			}
-		})
-	})
-};
-
-export const getToken = async () => {
-	let userInfo = {
-		token: uni.getStorageSync('token') || '',
-		expiresAt: uni.getStorageSync('expiresAt') || 0,
-	}
-	if (userInfo.token && userInfo.expiresAt > new Date().getTime()) {
-		return userInfo;
-	}
-	let wxLogin = await wxLogin()
-	let wxAuth = await wxAuth(wxLogin.code)
-	console.log('request get token', wxAuth)
-	// uni.setStorageSync('token',res.data); // 需要存入token的值和过期时间{token:'', expiresAt:''}
-	// return res.data.token;
-}
-