wgl 4 лет назад
Родитель
Сommit
c4fecabdf0

+ 17 - 2
src/projects/business/views/Master/Attendance/List.vue

@@ -42,11 +42,12 @@
 		components: {
 			Common,
 			Loading,
-			TopHeader,NullList
+			TopHeader,
+			NullList
 		},
 		data() {
 			return {
-				pageTitle: '考勤记录',
+				//pageTitle: '考勤记录',
 
 				isLoading: false,
 
@@ -147,6 +148,20 @@
 			window.removeEventListener('scroll', _this.handleScrool);
 		},
 		computed: {
+			pageTitle: {
+				// getter
+				get: function() {
+					if (this.listForm.result) {
+						return '缺卡记录';
+					} else {
+						return '考勤记录';
+					}
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
 			...mapGetters({
 				openId: 'wx_openid',
 				token: 'token',

+ 62 - 0
src/projects/pension/apis/Master/drug.js

@@ -0,0 +1,62 @@
+import request from '@/utils/request'
+import Qs from 'qs';
+
+//提交用药提醒
+export function submitMedicationRemind(params) {
+	return request({
+		url: '/mobile/personInfoApi/submitMedicationRemind',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}
+
+//获取用药提醒日历
+export function medicationCalendar(id) {
+	return request({
+		url: '/mobile/personInfoApi/medicationCalendar',
+		data: Qs.stringify({
+			id: id
+		}),
+		method: 'post',
+	})
+}
+
+//获取用药计划
+export function medicationList() {
+	return request({
+		url: '/mobile/personInfoApi/medicationList',
+		data: Qs.stringify({}),
+		method: 'post',
+	})
+}
+
+//获取用药详情
+export function medicationDetail(id) {
+	return request({
+		url: '/mobile/personInfoApi/medicationDetail',
+		data: Qs.stringify({
+			id: id
+		}),
+		method: 'post',
+	})
+}
+
+//用药删除
+export function medicationDelete(id) {
+	return request({
+		url: '/mobile/personInfoApi/medicationDelete',
+		data: Qs.stringify({
+			id: id
+		}),
+		method: 'post',
+	})
+}
+
+//用药切换
+export function medicationRemindSwitch(params) {
+	return request({
+		url: '/mobile/personInfoApi/medicationRemindSwitch',
+		data: Qs.stringify(params),
+		method: 'post',
+	})
+}

+ 26 - 2
src/projects/pension/components/DrugCalendar.vue

@@ -10,7 +10,7 @@
 			<li v-for="item in canlender" class="mui-table-view-cell mui-media">
 				<a :class="today==item.date?'mui-active':''">
 					<span>{{ item.dateNum }}</span>
-					<div class="mui-media-body"></div>
+					<div :class="'mui-media-body '+(titleStr(item.date)=='停药'?'color999':'')" v-text="titleStr(item.date)"></div>
 				</a>
 			</li>
 		</ul>
@@ -20,10 +20,18 @@
 <script>
 	import {
 		currentTimeStamp,
-		parseUnixTime
+		parseUnixTime,
+		inDateBetwen
 	} from '$project/utils'
 	export default {
 		name: 'DrugCalendar',
+		props: {
+			monthList: {
+				require: false,
+				type: Array,
+				default: [],
+			},
+		},
 		data() {
 			return {
 				msg: [],
@@ -92,6 +100,22 @@
 				}
 				//console.log(this.canlender)
 			},
+			//显示title
+			titleStr(date) {
+				var monthList = this.monthList;
+				if (monthList.length) {
+					for (var i = 0; i < monthList.length; i++) {
+						if (monthList[i]['name'] == date) {
+							return '用药' + monthList[i]['times'] + '次';
+						} else if (inDateBetwen(date, monthList[0]['name'], monthList[monthList.length - 1]['name'])) {
+							return '停药';
+						} else {
+							return '';
+						}
+					}
+				}
+				return '';
+			},
 		},
 		mounted() {
 			this.init();

+ 217 - 29
src/projects/pension/views/Master/Drug/Add.vue

@@ -2,7 +2,7 @@
 	<div>
 		<common ref="common" @asynCallBack="asynCallBack"></common>
 		<top-header :pageTitle="pageTitle"></top-header>
-		
+
 		<div class="mui-content margin60">
 			<div class="vongi-yqsb flew-items">
 				<i class="iconfont icon-mn_dunpai_fill pink"></i> 安全用药,请按说明书或在药师指导下使用
@@ -11,8 +11,7 @@
 				<form class="mui-input-group">
 					<div class="mui-input-row">
 						<label>药品名称</label>
-						<!--<span>阿莫仙阿莫西林胶囊0.5g*48粒/盒阿莫仙阿莫西林胶囊0.5g*48粒/盒</span>-->
-						<input type="text" class="mui-input-clear" placeholder="请填写药品名称">
+						<input type="text" v-model="subForm.medicationName" class="mui-input-clear" placeholder="请填写药品名称">
 					</div>
 				</form>
 			</div>
@@ -20,55 +19,49 @@
 				<form class="mui-input-group">
 					<div class="mui-input-row">
 						<label>开始使用</label>
-						<button class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis" type='button' style="width:65%">
-							2020-10-20
+						<button @click="selectStartTime" class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis" type='button'
+						 style="width:65%">
+							{{subForm.startTime}}
 						</button>
 					</div>
 					<div class="mui-input-row">
 						<label>使用天数</label>
-						<input type="text" class="mui-input-clear" placeholder="请输入">
+						<input v-model="subForm.medicationDays" type="number" class="mui-input-clear" placeholder="请输入">
 					</div>
 					<div class="mui-input-row">
 						<label>使用频次</label>
-						<input type="text" class="mui-input-clear" placeholder="请输入">
+						<button @click="selectNextDays" class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis" type='button' style="width:65%">
+							{{jgName}}
+						</button>
 					</div>
 					<div class="mui-input-row">
 						<label>每次用量</label>
-						<input type="text" class="mui-input-clear" placeholder="请输入">
+						<input v-model="subForm.usage" type="text" class="mui-input-clear" placeholder="请输入">
 					</div>
 				</form>
-				<form class="mui-input-group vongi-cytx-with">
+				<form v-show="remindTimeList.length" class="mui-input-group vongi-cytx-with">
 					<h5>提醒时间</h5>
-					<div class="mui-input-row">
-						<label style="width:40%"><i class="iconfont icon-circleyuanquan pink"></i>第1次:</label>
-						<button class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis" type='button' style="width:60%">
-							08:00
-						</button>
-					</div>
-					<div class="mui-input-row">
-						<label style="width:40%"><i class="iconfont icon-circleyuanquan pink"></i>第1次:</label>
-						<button class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis color999" type='button' style="width:60%">
-							待设置
-						</button>
-					</div>
-					<div class="mui-input-row">
-						<label style="width:40%"><i class="iconfont icon-circleyuanquan pink"></i>第1次:</label>
-						<button class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis color999" type='button' style="width:60%">
-							08:00
+					<div v-for="(item,index) in remindTimeList" class="mui-input-row">
+						<label style="width:40%"><i class="iconfont icon-circleyuanquan pink"></i>第{{index+1}}次:</label>
+						<button @click="selectRemindTime(index)" class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis" type='button'
+						 style="width:60%">
+							{{item?item:'待设置'}}
 						</button>
 					</div>
 				</form>
 			</div>
 		</div>
 		<div class="fyy-footer">
-			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-pink ">确 定</button></div>
+			<div class="bindfyy-btn"><button @click="submit" type="button" class="mui-btn mui-btn-pink ">确 定</button></div>
 		</div>
-		
+
 		<loading :visible="isLoading"></loading>
 	</div>
 </template>
 
 <script>
+	require('$project/assets/js/mui.picker.min.js');
+	import * as API_Drug from '@/apis/Master/drug'
 	import Common from '$project/components/Common.vue'
 	import Loading from '$project/components/Loading.vue'
 	import TopHeader from '$project/components/TopHeader.vue'
@@ -76,6 +69,10 @@
 		mapGetters,
 		mapMutations
 	} from 'vuex'
+	import {
+		currentTimeStamp,
+		parseUnixTime
+	} from '$project/utils'
 	export default {
 		name: 'MasterDrugAdd',
 		components: {
@@ -88,19 +85,209 @@
 				isLoading: false,
 
 				pageTitle: '添加用药提醒',
+
+				subForm: {
+					id: this.$route.query.id,
+					medicationName: '',
+					startTime: '',
+					medicationDays: '',
+					nextDays: '',
+					medicationFrequency: '',
+					usage: '',
+					remindTime: ''
+				},
+
+				remindTimeList: [],
 			}
 		},
-		created() {},
+		created() {
+			this.subForm.startTime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d}');
+		},
 		methods: {
+			//选择开始时间
+			selectStartTime() {
+				var _this = this;
+				var picker = new mui.DtPicker({
+					"type": "date",
+					"beginYear": 2020,
+					"endYear": 2040,
+					"beginDate": new Date(),
+					"value": _this.subForm.startTime
+				});
+				picker.show(function(rs) {
+					_this.subForm.startTime = rs.text;
+					picker.dispose();
+				});
+			},
+			//选择频次
+			selectNextDays() {
+				var picker = new mui.PopPicker({
+					layer: 2
+				});
+				var data = [{
+					value: 0,
+					text: '每天',
+					children: [{
+						value: 1,
+						text: "1次"
+					}, {
+						value: 2,
+						text: "2次"
+					}, {
+						value: 3,
+						text: "3次"
+					}]
+				}, {
+					value: 1,
+					text: '隔天',
+					children: [{
+						value: 1,
+						text: "1次"
+					}, {
+						value: 2,
+						text: "2次"
+					}, {
+						value: 3,
+						text: "3次"
+					}]
+				}];
+				picker.setData(data);
+				var _this = this;
+				picker.pickers[0].setSelectedIndex(parseInt(_this.subForm.nextDays));
+				picker.pickers[1].setSelectedIndex(parseInt(_this.subForm.medicationFrequency) - 1);
+				picker.show(function(selectItems) {
+					_this.subForm.nextDays = selectItems[0].value;
+					_this.subForm.medicationFrequency = selectItems[1].value;
+					_this.resetRemindTimeList();
+				})
+			},
+			//频次时间选择
+			selectRemindTime(index) {
+				var _this = this;
+				var picker = new mui.DtPicker({
+					"type": "time",
+					//"value": _this.subForm.startTime
+				});
+				picker.show(function(rs) {
+					_this.$set(_this.remindTimeList, index, rs.text)
+					picker.dispose();
+				});
+			},
+			//补始化设置选择具体频次时间
+			resetRemindTimeList() {
+				var list = [];
+				for (var i = 0; i < this.subForm.medicationFrequency; i++) {
+					list.push('');
+				}
+				this.remindTimeList = list;
+			},
+			//检测表单
+			checkForm() {
+				if (!this.subForm.medicationName) {
+					mui.toast('请输入药品名称');
+					return false;
+				} else if (!this.subForm.startTime) {
+					mui.toast('请选择开始使用日期');
+					return false;
+				} else if (!this.subForm.medicationDays) {
+					mui.toast('请选择用药天数');
+					return false;
+				} else if (!this.subForm.medicationFrequency) {
+					mui.toast('请选择使用频次');
+					return false;
+				} else if (!this.subForm.usage) {
+					mui.toast('请输入每次用量');
+					return false;
+				} else if (!this.remindTimeListAllWrite) {
+					mui.toast('请选择提醒时间');
+					return false;
+				} else {
+					return true;
+				}
+			},
+			//提交
+			submit() {
+				if (this.checkForm()) {
+					this.subForm.remindTime = this.remindTimeList.join(',');
+					this.isLoading = true;
+					API_Drug.submitMedicationRemind(this.subForm).then(response => {
+						this.isLoading = false;
+
+						if (response.id) {
+							mui.toast('提交成功');
+							this.$router.push({
+								name: 'MasterDrugAddSuccess',
+								query: {
+									id: response.id,
+								}
+							})
+						} else {
+							mui.toast('id数据错误');
+						}
+
+					}).catch(error => {
+						this.isLoading = false;
+						mui.toast(error);
+					})
+				}
+			},
+			//获取详情
+			medicationDetail() {
+				this.isLoading = true;
+				API_Drug.medicationDetail(this.subForm.id).then(response => {
+					this.isLoading = false;
+
+					this.subForm = response;
+					this.remindTimeList = response.remindTime.split(',');
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
 			asynCallBack() {
 
 			},
 		},
-		mounted() {},
+		mounted() {
+			if (this.subForm.id) {
+				//获取详情
+				this.medicationDetail();
+			}
+		},
 		destroyed() {
 
 		},
 		computed: {
+			jgName: {
+				// getter
+				get: function() {
+					if (this.subForm.medicationFrequency) {
+						return (this.subForm.nextDays == 0 ? '每天' : '隔天') + (this.subForm.medicationFrequency + '次');
+					} else {
+						return '待设置';
+					}
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
+			remindTimeListAllWrite: {
+				// getter
+				get: function() {
+					for (var i = 0; i < this.remindTimeList.length; i++) {
+						if (!this.remindTimeList[i]) {
+							return false;
+						}
+					}
+					return true;
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
 			...mapGetters({
 				openId: 'wx_openid',
 				token: 'token',
@@ -114,5 +301,6 @@
 <style scoped src="$project/assets/css/pension.css"></style>
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>
 <style src="$project/assets/css/iconfont.css"></style>
+<style src="$project/assets/css/mui.picker.min.css"></style>
 <style>
 </style>

+ 52 - 246
src/projects/pension/views/Master/Drug/AddSuccess.vue

@@ -8,261 +8,22 @@
 				<div class="vongi-center">
 					<img src="~$project/assets/img/yaook.png" width="40%" />
 					<h2>设置完成</h2>
-					<h4 class='color666'>您还没有添加用药提醒</h4>
+					<!-- <h4 class='color666'>您还没有添加用药提醒</h4> -->
 				</div>
 			</div>
-			<!--
-			<div class="mui-content-padded vongi-cytx-time">
-				<ul class="mui-table-view mui-grid-view mui-grid-9">
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">日</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">一</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">二</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">三</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">四</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">五</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span class="color999">六</span>
-					</li>
-				</ul>
-				<div class="vongi-cytx-date vongi-center">2020年10月</div>
-				<ul class="mui-table-view mui-grid-view mui-grid-9">
-					<li class="mui-table-view-cell mui-media">
-						<a href="#" class="">
-							<span></span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span></span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span></span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span></span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#" class="">
-							<span>1</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>2</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>3</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>4</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>5</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>6</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>7</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#" class="mui-active">
-							<span>今天</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>9</span>
-							<div class="mui-media-body pink">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>10</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>11</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>12</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>13</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>14</span>
-							<div class="mui-media-body color999">停药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>15</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>16</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>17</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>18</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>19</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>20</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>21</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>22</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>23</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>24</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>25</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>26</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>27</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>28</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>29</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>30</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>31</span>
-							<div class="mui-media-body"></div>
-						</a>
-					</li>
-				</ul>
-			</div>
-			-->
-			<drug-calendar></drug-calendar>
+			<drug-calendar :monthList="monthList"></drug-calendar>
 			<div class="fyy-scon-botton">
-				<div class="examine-btn mui-btn-pink mui-btn-outlined">返回修改</div>
-				<div class="examine-btn mui-btn-pink">完成</div>
+				<div class="examine-btn mui-btn-pink mui-btn-outlined" @click="goToEdit">返回修改</div>
+				<div class="examine-btn mui-btn-pink" @click="goToList">完成</div>
 			</div>
 		</div>
-		
+
 		<loading :visible="isLoading"></loading>
 	</div>
 </template>
 
 <script>
+	import * as API_Drug from '@/apis/Master/drug'
 	import Common from '$project/components/Common.vue'
 	import Loading from '$project/components/Loading.vue'
 	import TopHeader from '$project/components/TopHeader.vue'
@@ -284,19 +45,64 @@
 				isLoading: false,
 
 				pageTitle: '添加完成',
+
+				id: this.$route.query.id,
+
+				list: [],
 			}
 		},
 		created() {},
 		methods: {
+			//获取日历计划信息
+			getMedicationCalendar() {
+				this.isLoading = true;
+				API_Drug.medicationCalendar(this.id).then(response => {
+					this.isLoading = false;
+
+					this.list = response.list;
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//跳转到列表
+			goToList() {
+				this.$router.push({
+					name: 'MasterDrug'
+				})
+			},
+			//编辑
+			goToEdit() {
+				this.$router.push({
+					name: 'MasterDrugAdd',
+					query: {
+						id: this.id
+					}
+				})
+			},
 			asynCallBack() {
 
 			},
 		},
-		mounted() {},
+		mounted() {
+			//获取日历计划信息
+			this.getMedicationCalendar();
+		},
 		destroyed() {
 
 		},
 		computed: {
+			monthList: {
+				// getter
+				get: function() {
+					return this.list;
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
 			...mapGetters({
 				openId: 'wx_openid',
 				token: 'token',

+ 207 - 106
src/projects/pension/views/Master/Drug/Home.vue

@@ -4,122 +4,117 @@
 		<top-header :pageTitle="pageTitle" :rightLink="rightLink" :doRightLink="doRightLink"></top-header>
 
 		<div class="mui-content vongi-cytx">
-			<!--<div class="mui-content-padded vongi-sqtpdat-name">
+			<div v-if="timeList.length==0" class="mui-content-padded vongi-sqtpdat-name">
 				<div class="vongi-center">
 					<img src="~$project/assets/img/no.png" width="50%" />
 					<h3>您还没有添加用药提醒</h3>
-					<button type="submit" class="mui-btn mui-btn-pink "><span class="mui-icon mui-icon-plusempty">添加提醒</button>
+					<button @click="doRightLink" type="button" class="mui-btn mui-btn-pink ">
+						<span class="mui-icon mui-icon-plusempty">添加提醒</span>
+					</button>
 				</div>
 				<h3 class="vongi-examineInfo">
 					设置完成后将通过微信消息提醒您
 				</h3>
-			</div>-->
-			<div class="mui-content-padded vongi-cytx-time">
-				<ul class="mui-table-view mui-grid-view mui-grid-9">
-					<li class="mui-table-view-cell mui-media">
-						<span>日</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span>一</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span>二</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span>三</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span>四</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span>五</span>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<span>六</span>
-					</li>
-				</ul>
-				<ul class="mui-table-view mui-grid-view mui-grid-9">
-					<li class="mui-table-view-cell mui-media">
-						<a href="#" class="mui-active">
-							<span>11</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>12</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>13</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>14</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>15</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>16</span>
-							<div class="mui-media-body">正常用药</div>
-						</a>
-					</li>
-					<li class="mui-table-view-cell mui-media">
-						<a href="#">
-							<span>17</span>
-							<div class="mui-media-body color999">停药</div>
-						</a>
-					</li>
-				</ul>
 			</div>
-			<div class="mui-content-padded vongi-cytx-time vongi-qingjiadt">
-				<h4 class="flew-items color666"><img src="~$project/assets/img/tixing.png" width="20" />今日用药计划</h4>
-				<!--<div class="mui-media-body">无</div>-->
-				<form class="mui-input-group">
-					<div class="mui-input-row">
-						<label class="pink">08:00</label>
-						<span>阿莫仙阿莫西林胶囊0.5g*48粒/盒阿莫仙阿莫西林胶囊0.5g*48粒/盒 1片</span>
-					</div>
-					<div class="mui-input-row">
-						<label class="pink">14:00</label>
-						<span>阿莫仙阿莫西林胶囊0.5g*48粒/盒阿莫仙阿莫西林胶囊0.5g*48粒/盒 1片</span>
-					</div>
-					<div class="mui-input-row">
-						<label class="pink">22:00</label>
-						<span>阿莫仙阿莫西林胶囊0.5g*48粒/盒阿莫仙阿莫西林胶囊0.5g*48粒/盒 1片</span>
-					</div>
-				</form>
-			</div>
-			<div class="mui-content-padded vongi-cytx-time vongi-qingjiadt">
-				<h4>全部用药列表</h4>
-				<ul class="mui-table-view vongi-cytx-with">
-					<li class="mui-table-view-cell">
-						<div class="mui-slider-right mui-disabled">
-							<a class="mui-btn mui-btn-red">删除</a>
+			<div v-else>
+				<div class="mui-content-padded vongi-cytx-time">
+					<ul class="mui-table-view mui-grid-view mui-grid-9">
+						<li class="mui-table-view-cell mui-media">
+							<span>日</span>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<span>一</span>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<span>二</span>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<span>三</span>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<span>四</span>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<span>五</span>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<span>六</span>
+						</li>
+					</ul>
+					<ul class="mui-table-view mui-grid-view mui-grid-9">
+						<li class="mui-table-view-cell mui-media">
+							<a href="#" class="mui-active">
+								<span>11</span>
+								<div class="mui-media-body">正常用药</div>
+							</a>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<a href="#">
+								<span>12</span>
+								<div class="mui-media-body">正常用药</div>
+							</a>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<a href="#">
+								<span>13</span>
+								<div class="mui-media-body">正常用药</div>
+							</a>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<a href="#">
+								<span>14</span>
+								<div class="mui-media-body">正常用药</div>
+							</a>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<a href="#">
+								<span>15</span>
+								<div class="mui-media-body">正常用药</div>
+							</a>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<a href="#">
+								<span>16</span>
+								<div class="mui-media-body">正常用药</div>
+							</a>
+						</li>
+						<li class="mui-table-view-cell mui-media">
+							<a href="#">
+								<span>17</span>
+								<div class="mui-media-body color999">停药</div>
+							</a>
+						</li>
+					</ul>
+				</div>
+				<div class="mui-content-padded vongi-cytx-time vongi-qingjiadt">
+					<h4 class="flew-items color666"><img src="~$project/assets/img/tixing.png" width="20" />今日用药计划</h4>
+					<div v-if="timeList.length==0" class="mui-media-body">无</div>
+					<form v-else class="mui-input-group">
+						<div v-for="(item,index) in timeList" class="mui-input-row">
+							<label class="pink" v-text="item.item.time"></label>
+							<span v-text="item.detail.join(',')"></span>
 						</div>
-						<div class="mui-slider-handle flew-sp flew-items">
-							<div class="mui-media-body">
-								<div class="mui-col-xs-10 mui-ellipsis">阿莫仙阿莫西林胶囊0.5g*48粒/盒阿莫仙</div>
-								<p class="flew-items"><i class="iconfont icon-circleyuanquan pink"></i>已使用0天,还需使用7天</p>
+					</form>
+				</div>
+				<div class="mui-content-padded vongi-cytx-time vongi-qingjiadt">
+					<h4>全部用药列表</h4>
+					<ul class="mui-table-view vongi-cytx-with">
+						<li v-for="(item,index) in allList" class="mui-table-view-cell">
+							<div class="mui-slider-right mui-disabled">
+								<a @click="del(item.id)" class="mui-btn mui-btn-red">删除</a>
 							</div>
-							<div class="mui-switch mui-switch-mini mui-active ">
-								<div class="mui-switch-handle"></div>
+							<div class="mui-slider-handle flew-sp flew-items">
+								<div class="mui-media-body" @click="goToEdit(item.id)">
+									<div class="mui-col-xs-10 mui-ellipsis" v-text="item.medicationName"></div>
+									<p class="flew-items"><i class="iconfont icon-circleyuanquan pink"></i>已使用{{item.hasUsedDays}}天,还需使用{{item.needUsedDays}}天</p>
+								</div>
+								<div @click="switchItem(item.id,item.needRemind)" :class="'mui-switch mui-switch-mini '+(item.needRemind?'mui-active':'') ">
+									<div class="mui-switch-handle"></div>
+								</div>
 							</div>
-						</div>
-					</li>
-
-				</ul>
+						</li>
+					</ul>
+				</div>
 			</div>
 		</div>
 
@@ -128,6 +123,7 @@
 </template>
 
 <script>
+	import * as API_Drug from '@/apis/Master/drug'
 	import Common from '$project/components/Common.vue'
 	import Loading from '$project/components/Loading.vue'
 	import TopHeader from '$project/components/TopHeader.vue'
@@ -135,6 +131,10 @@
 		mapGetters,
 		mapMutations
 	} from 'vuex'
+	import {
+		getWeekTime,
+		getDiffDate
+	} from '$project/utils'
 	export default {
 		name: 'MasterDrug',
 		components: {
@@ -154,24 +154,125 @@
 					style: 'color: #FF9474;font-size: 12px;',
 					title: '添加提醒'
 				},
+
+				timeList: [],
+				allList: [],
+
 			}
 		},
 		created() {},
 		methods: {
+			//获取计划信息
+			getMedicationList() {
+				this.isLoading = true;
+				API_Drug.medicationList().then(response => {
+					this.isLoading = false;
+
+					if (response) {
+						this.timeList = this.resetTimeList(response.timeList);
+						this.allList = response.allList;
+					}
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//合并timeList
+			resetTimeList(timeList) {
+				var list = [];
+				for (var i = 0; i < timeList.length; i++) {
+					var index = this.searchHas(list, timeList[i]['time']);
+					if (index > -1) {
+						list[index]['detail'].push(timeList[i]['medicationName'] + ' ' + timeList[i]['usage']);
+					} else {
+						list.push({
+							item: timeList[i],
+							detail: [timeList[i]['medicationName'] + ' ' + timeList[i]['usage']]
+						})
+					}
+				}
+				return list;
+			},
+			searchHas(list, time) {
+				for (var j = 0; j < list.length; j++) {
+					if (time == list[j]['item']['time']) {
+						return j;
+					}
+				}
+				return -1;
+			},
+			//到添加页面
 			doRightLink() {
 				this.$router.push({
 					name: 'MasterDrugAdd'
 				})
 			},
+			//编辑
+			goToEdit(id) {
+				this.$router.push({
+					name: 'MasterDrugAdd',
+					query: {
+						id: id
+					}
+				})
+			},
+			//删除
+			del(id) {
+				this.isLoading = true;
+				API_Drug.medicationDelete(id).then(response => {
+					this.isLoading = false;
+
+					mui.toast('删除成功');
+					this.getMedicationList();
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
+			//切换
+			switchItem(id, needRemind) {
+				this.isLoading = true;
+				API_Drug.medicationRemindSwitch({
+					id: id,
+					status: !needRemind ? 1 : 0
+				}).then(response => {
+					this.isLoading = false;
+
+					//mui.toast('处理成功');
+					this.getMedicationList();
+
+				}).catch(error => {
+					this.isLoading = false;
+					mui.toast(error);
+				})
+			},
 			asynCallBack() {
 
 			},
 		},
-		mounted() {},
+		mounted() {
+			console.log(this.weekDayList)
+			//获取计划信息
+			this.getMedicationList();
+		},
 		destroyed() {
 
 		},
 		computed: {
+			weekDayList: {
+				// getter
+				get: function() {
+					var start = getWeekTime('s')
+					var end = getWeekTime('e')
+					return getDiffDate(start, end);
+				},
+				// setter
+				set: function(newValue) {
+					console.log(newValue)
+				}
+			},
 			...mapGetters({
 				openId: 'wx_openid',
 				token: 'token',

+ 1 - 1
src/projects/pension/views/Master/Health/Archives.vue

@@ -106,7 +106,7 @@
 				API_Health.getHeathData().then(response => {
 					this.isLoading = false;
 
-					if (JSON.stringify(response) != "{}") {
+					if (JSON.stringify(response) != "{}" && response) {
 						this.healthData = response;
 						if (response.lbs) {
 							let lbsArr = response.lbs.split(',');

+ 83 - 6
src/utils/index.js

@@ -53,19 +53,19 @@ export const daysDistance = (date1, date2) => {
 }
 //计算两个时间的相差小时数
 export const hourDistance = (date1, date2) => {
-	if(!date1||!date2){
+	if (!date1 || !date2) {
 		return '-';
 	}
 	date1 = Date.parse(date1);
 	date2 = Date.parse(date2);
 	var ms = date2 - date1;
 	ms = ms < 0 ? 0 : ms;
-	ms=ms/1000;//s
-	var Hour = parseInt(Math.floor(ms /(60*60)));
-	var Fen = parseInt(Math.floor(ms % (60*60)/60));
+	ms = ms / 1000; //s
+	var Hour = parseInt(Math.floor(ms / (60 * 60)));
+	var Fen = parseInt(Math.floor(ms % (60 * 60) / 60));
 	var s = parseInt(Math.floor(ms % (60)));
 	//600000
-	return  Hour+'小时'+Fen+'分钟'+s+'秒';
+	return Hour + '小时' + Fen + '分钟' + s + '秒';
 }
 
 export const parseUnixTime = (time, cFormat) => {
@@ -242,4 +242,81 @@ export const isWeiXin = () => {
 //获取当前根链接
 export const getBaseUrl = () => {
 	return window.location.href.split("#")[0]
-}
+}
+
+//获取指定日期是否在指定时间之间
+export const inDateBetwen = (d, d1, d2) => {
+	//如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
+	var dateBegin = new Date(d1.replace(/-/g, "/")); //将-转化为/,使用new Date
+	var dateEnd = new Date(d2.replace(/-/g, "/")); //将-转化为/,使用new Date
+	//var dateBegin = new Date(d1);//将-转化为/,使用new Date
+	//var dateEnd = new Date(d2);//将-转化为/,使用new Date
+	var dateNow = new Date(d.replace(/-/g, "/")); //获取当前时间
+
+	var beginDiff = dateNow.getTime() - dateBegin.getTime(); //时间差的毫秒数       
+	var beginDayDiff = Math.floor(beginDiff / (24 * 3600 * 1000)); //计算出相差天数
+
+	var endDiff = dateEnd.getTime() - dateNow.getTime(); //时间差的毫秒数
+	var endDayDiff = Math.floor(endDiff / (24 * 3600 * 1000)); //计算出相差天数       
+	if (endDayDiff < 0) {
+		//已过期
+		return false
+	}
+	if (beginDayDiff < 0) {
+		//没到开始时间
+		return false;
+	}
+	return true;
+}
+
+//type为字符串类型,有两种选择,"s"代表开始,"e"代表结束,dates为数字类型,不传或0代表本周,-1代表上周,1代表下周
+export const getWeekTime = (type, dates) => {
+	var now = new Date();
+	var nowTime = now.getTime();
+	var day = now.getDay();
+	var longTime = 24 * 60 * 60 * 1000;
+	var n = longTime * 7 * (dates || 0);
+	if (type == "s") {
+		var dd = nowTime - (day) * longTime + n;
+	};
+	if (type == "e") {
+		var dd = nowTime + (7 - day - 1) * longTime + n;
+	};
+	dd = new Date(dd);
+	var y = dd.getFullYear();
+	var m = dd.getMonth() + 1;
+	var d = dd.getDate();
+	m = m < 10 ? "0" + m : m;
+	d = d < 10 ? "0" + d : d;
+	var day = y + "-" + m + "-" + d;
+	return day;
+}
+
+export const getDiffDate = (stime, etime) => {
+	//初始化日期列表,数组
+	var diffdate = new Array();
+	var i = 0;
+	//开始日期小于等于结束日期,并循环
+	while (stime <= etime) {
+		diffdate[i] = stime;
+
+		//获取开始日期时间戳
+		var stime_ts = new Date(stime).getTime();
+		//console.log('当前日期:' + stime + '当前时间戳:' + stime_ts);
+
+		//增加一天时间戳后的日期
+		var next_date = stime_ts + (24 * 60 * 60 * 1000);
+
+		//拼接年月日,这里的月份会返回(0-11),所以要+1
+		var next_dates_y = new Date(next_date).getFullYear() + '-';
+		var next_dates_m = (new Date(next_date).getMonth() + 1 < 10) ? '0' + (new Date(next_date).getMonth() + 1) + '-' : (
+			new Date(next_date).getMonth() + 1) + '-';
+		var next_dates_d = (new Date(next_date).getDate() < 10) ? '0' + new Date(next_date).getDate() : new Date(next_date).getDate();
+
+		stime = next_dates_y + next_dates_m + next_dates_d;
+
+		//增加数组key
+		i++;
+	}
+	return diffdate;
+}