From bace4ce70c7e259a3a36d16446c2850fcba27d5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E8=BE=89?= <814457906@qq.com> Date: Mon, 20 Mar 2023 14:49:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- androidPrivacy.json | 70 +- api/Informationconfirmation/index.js | 20 + api/coupon/index.js | 9 + api/integral/index.js | 35 + api/materialbenefits/index.js | 18 + api/medicine/index.js | 17 + components/r-canvas/r-canvas.js | 735 ++++++++++++++++++ components/r-canvas/r-canvas.vue | 26 + package.json | 31 +- pages.json | 35 +- pages/CommodityOrder/CommodityOrder.scss | 12 - pages/CommodityOrder/CommodityOrder.vue | 64 +- pages/Healthitem/Healthitem.vue | 36 +- pages/Healthknowledge/Healthknowledge.vue | 35 +- .../Nursingstationserviceorder.scss | 12 - .../Nursingstationserviceorder.vue | 5 +- pages/Personal/Personal.scss | 187 +++++ pages/Personal/Personal.vue | 279 +------ pages/ProductList/ProductList.vue | 42 +- pages/ProjectDetails/ProjectDetails.vue | 18 - pages/classification/classification.vue | 43 +- pages/confirmation/confirmation.vue | 308 ++++++++ pages/coupon/coupon.scss | 162 ++++ pages/coupon/coupon.vue | 151 ++++ pages/customerservice/customerservice.vue | 18 - pages/homepage/homepage.vue | 47 +- pages/information/information.scss | 91 ++- pages/information/information.vue | 216 +++-- pages/integral/integral.scss | 520 +++++++++++++ pages/integral/integral.vue | 642 +++++++++++++++ pages/materialbenefits/materialbenefits.vue | 435 +++++++++-- pages/medicine/medicine.scss | 220 ++++++ pages/medicine/medicine.vue | 326 ++++++-- pages/nursestation/nursestation.scss | 11 - pages/nursestation/nursestation.vue | 28 +- pages/orderDetails/orderDetails.scss | 13 +- pages/orderDetails/orderDetails.vue | 150 +++- pages/payorderDetails/payorderDetails.vue | 22 - pages/picker/picker.vue | 562 ------------- pages/picker/style.components.scss | 7 - pages/shopping/shopping.vue | 18 - pages/site/site.scss | 11 - pages/site/site.vue | 23 +- static/noorder.png | Bin 2577 -> 0 bytes static/shoping.png | Bin 1752 -> 78667 bytes static/shopingw.png | Bin 834 -> 0 bytes static/yis.png | Bin 0 -> 18115 bytes 47 files changed, 4248 insertions(+), 1462 deletions(-) create mode 100644 api/Informationconfirmation/index.js create mode 100644 api/coupon/index.js create mode 100644 api/integral/index.js create mode 100644 api/materialbenefits/index.js create mode 100644 api/medicine/index.js create mode 100644 components/r-canvas/r-canvas.js create mode 100644 components/r-canvas/r-canvas.vue create mode 100644 pages/Personal/Personal.scss create mode 100644 pages/confirmation/confirmation.vue create mode 100644 pages/coupon/coupon.scss create mode 100644 pages/coupon/coupon.vue create mode 100644 pages/integral/integral.scss create mode 100644 pages/integral/integral.vue create mode 100644 pages/medicine/medicine.scss delete mode 100644 pages/picker/picker.vue delete mode 100644 pages/picker/style.components.scss delete mode 100644 static/noorder.png delete mode 100644 static/shopingw.png create mode 100644 static/yis.png diff --git a/androidPrivacy.json b/androidPrivacy.json index 7f5c2f3..78574c0 100644 --- a/androidPrivacy.json +++ b/androidPrivacy.json @@ -1,37 +1,37 @@ { - "version" : "1", - "prompt" : "template", - "title" : "服务协议和隐私政策", - "message" : "请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
  你可阅读《服务协议》《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", - "buttonAccept" : "同意并接受", - "buttonRefuse" : "暂不同意", - "hrefLoader" : "system|default", - "second" : { - "title" : "确认提示", - "message" : "进入应用前,你需先同意《服务协议》《隐私政策》,否则将退出应用。", - "buttonAccept" : "同意并继续", - "buttonRefuse" : "退出应用" - }, - "disagreeMode" : { - "support" : false, - "loadNativePlugins" : false, - "visitorEntry" : true, - "showAlways" : true - }, - "styles" : { - "backgroundColor" : "#ffffff", - "borderRadius" : "5px", - "title" : { - "color" : "#ff00ff" - }, - "buttonAccept" : { - "color" : "#ffff00" - }, - "buttonRefuse" : { - "color" : "#00ffff" - }, - "buttonVisitor" : { - "color" : "#00ffff" - } - } + "version": "1", + "prompt": "template", + "title": "用户协议与隐私政策", + "message": "请你务必审慎阅读、充分理解“用户协议与隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
  你可阅读《用户协议与隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", + "buttonAccept": "同意并接受", + "buttonRefuse": "暂不同意", + "hrefLoader": "system|default", + "second": { + "title": "确认提示", + "message": "进入应用前,你需先同意《用户协议与隐私政策》,否则将退出应用。", + "buttonAccept": "同意并继续", + "buttonRefuse": "退出应用" + }, + "disagreeMode": { + "support": false, + "loadNativePlugins": false, + "visitorEntry": false, + "showAlways": false + }, + "styles": { + "backgroundColor": "#ffffff", + "borderRadius": "5px", + "title": { + "color": "#000000" + }, + "buttonAccept": { + "color": "#000000" + }, + "buttonRefuse": { + "color": "#000000" + }, + "buttonVisitor": { + "color": "#000000" + } + } } diff --git a/api/Informationconfirmation/index.js b/api/Informationconfirmation/index.js new file mode 100644 index 0000000..177a225 --- /dev/null +++ b/api/Informationconfirmation/index.js @@ -0,0 +1,20 @@ +import request from "../request.js" + +//咨询预约时间 +export function informationConfirmation(patientId) { + return request({ + url: `/nurseApp/healthConsultation/informationConfirmation?patientId=${patientId}`, + method: 'GET' + }) +} + + +//提交 +export function addHealthConsultationOrder(data) { + return request({ + url: `/nurseApp/healthConsultation/addHealthConsultationOrder`, + method: 'POST', + data + }) +} + diff --git a/api/coupon/index.js b/api/coupon/index.js new file mode 100644 index 0000000..03c8692 --- /dev/null +++ b/api/coupon/index.js @@ -0,0 +1,9 @@ +import request from "../request.js" + + +export function selectCoupon(pageNum, pageSize, patientId, couponstatus) { + return request({ + url: `/nurseApplet/patientInfo/selectCoupon?pageNum=${pageNum}&pageSize=${pageSize}&patientId=${patientId}&useStatus=${couponstatus}`, + method: 'get', + }) +} diff --git a/api/integral/index.js b/api/integral/index.js new file mode 100644 index 0000000..206c1d3 --- /dev/null +++ b/api/integral/index.js @@ -0,0 +1,35 @@ +import request from "../request.js" + + +//签到 +export function signIn(patientId) { + return request({ + url: `/nurseApplet/patientInfo/signIn?patientId=${patientId}&signInChannel=WECHAT_APPLET`, + method: 'post' + }) +} + +//积分 +export function selectPatientSignIn(patientId) { + return request({ + url: `/nurseApplet/patientInfo/selectPatientSignIn?patientId=${patientId}`, + method: 'get' + }) +} + +//可兑换商品 +export function selectExchangeGoods(pageNum, pageSize) { + return request({ + url: `/nurseApplet/patientInfo/selectExchangeGoods?pageNum=${pageNum}&pageSize=${pageSize}`, + method: 'get' + }) +} + +//兑换 +export function integralGoodsOrder(data) { + return request({ + url: `/nurseApplet/patientInfo/integralGoodsOrder`, + method: 'post', + data + }) +} diff --git a/api/materialbenefits/index.js b/api/materialbenefits/index.js new file mode 100644 index 0000000..992f4ca --- /dev/null +++ b/api/materialbenefits/index.js @@ -0,0 +1,18 @@ +import request from "../request.js" + + +//新人优惠券 +export function couponByUseStatus(pageNum, pageSize, patientId) { + return request({ + url: `/nurseApplet/patientInfo/couponByUseStatus?pageNum=${pageNum}&pageSize=${pageSize}&patientId=${patientId}`, + method: 'get' + }) +} + +//领取 +export function insertCouponReceive(patientId, couponId) { + return request({ + url: `/nurseApplet/patientInfo/insertCouponReceive?patientId=${patientId}&couponId=${couponId}`, + method: 'post' + }) +} diff --git a/api/medicine/index.js b/api/medicine/index.js new file mode 100644 index 0000000..faff6eb --- /dev/null +++ b/api/medicine/index.js @@ -0,0 +1,17 @@ +import request from "../request.js" + +//健康咨询 +export function selectDepartment(pageNum,pageSize) { + return request({ + url: `/nurseApp/healthConsultation/selectDepartment?pageNum=${pageNum}&pageSize=${pageSize}`, + method: 'GET' + }) +} + +//人员 +export function selectHospitalPerson(pageNum,pageSize,departmentId) { + return request({ + url: `/nurseApp/healthConsultation/selectHospitalPerson?pageNum=${pageNum}&pageSize=${pageSize}&departmentId=${departmentId}`, + method: 'GET' + }) +} \ No newline at end of file diff --git a/components/r-canvas/r-canvas.js b/components/r-canvas/r-canvas.js new file mode 100644 index 0000000..b2c7dbe --- /dev/null +++ b/components/r-canvas/r-canvas.js @@ -0,0 +1,735 @@ +export default{ + data(){ + return{ + system_info:{}, //system info + canvas_width:0, //canvas width px + canvas_height:0, //canvas height px + ctx:null, //canvas object + canvas_id:null, //canvas id + hidden:false,//Whether to hide canvas + scale:1,//canvas scale + r_canvas_scale:1, + if_ctx:true + } + }, + methods:{ + /** + * save r-canvas.vue object + * @param {Object} that + */ + // saveThis(that){ + // rCanvasThis = that + // }, + /** + * Draw round rect text + * @param {Object} config + * @param {Number} config.x x坐标 + * @param {Number} config.y y坐标 + * @param {Number} config.w 宽度 + * @param {Number} config.h 高度 + * @param {Number} config.radius 圆角弧度 + * @param {String} config.fill_color 矩形颜色 + */ + fillRoundRect(config) { + return new Promise((resolve,reject)=>{ + let x = this.compatibilitySize(parseFloat(config.x)*this.scale) + let y = this.compatibilitySize(parseFloat(config.y)*this.scale) + let w = this.compatibilitySize(parseFloat(config.w)*this.scale) + let h = this.compatibilitySize(parseFloat(config.h)*this.scale) + let radius = config.radius?parseFloat(config.radius)*this.scale:10*this.scale + + let fill_color = config.fill_color || "black" + // The diameter of the circle must be less than the width and height of the rectangle + if (2 * radius > w || 2 * radius > h) { + reject("The diameter of the circle must be less than the width and height of the rectangle") + return false; + } + this.ctx.save(); + this.ctx.translate(x, y); + // + this.drawRoundRectPath({ + w: w, + h: h, + radius: radius + }); + this.ctx.fillStyle = fill_color + this.ctx.fill(); + this.ctx.restore(); + resolve() + }) + }, + /** + * Draws the sides of a rounded rectangle + * @param {Object} config + * @param {Number} config.w 宽度 + * @param {Number} config.h 高度 + * @param {Number} config.radius 圆角弧度 + */ + drawRoundRectPath(config) { + this.ctx.beginPath(0); + this.ctx.arc(config.w - config.radius, config.h - config.radius, config.radius, 0, Math.PI / 2); + this.ctx.lineTo(config.radius, config.h); + this.ctx.arc(config.radius, config.h - config.radius, config.radius, Math.PI / 2, Math.PI); + this.ctx.lineTo(0, config.radius); + this.ctx.arc(config.radius, config.radius, config.radius, Math.PI, Math.PI * 3 / 2); + this.ctx.lineTo(config.w - config.radius, 0); + this.ctx.arc(config.w - config.radius, config.radius, config.radius, Math.PI * 3 / 2, Math.PI * 2); + this.ctx.lineTo(config.w, config.h - config.radius); + this.ctx.closePath(); + }, + /** + * Draw special Text,line wrapping is not supported + * @param {Object} config + * @param {String} config.text 文字 + * @param {Number} config.x x坐标 + * @param {Number} config.y y坐标 + * @param {String} config.font_color 文字颜色 + * @param {String} config.font_family 文字字体 + * @param {Number} config.font_size 文字大小(px) + */ + drawSpecialText(params){ + let general = params.general + let list = params.list + return new Promise(async (resolve,reject)=>{ + if(!general){ + reject("general cannot be empty:101") + return; + }else if(list && list.length>0){ + for(let i in list){ + if(i != 0){ + let font_size = list[i-1].font_size?parseFloat(list[i-1].font_size):20 + this.ctx.setFontSize(font_size) + general.x = parseFloat(general.x) + this.ctx.measureText(list[i-1].text).width + } + list[i].x = general.x + list[i].y = general.y + (list[i].margin_top?parseFloat(list[i].margin_top):0) + await this.drawText(list[i]) + } + resolve() + }else{ + reject("The length of config arr is less than 0") + return; + } + + }) + }, + /** + * array delete empty + * @param {Object} arr + */ + arrDeleteEmpty(arr){ + let newArr = [] + for(let i in arr){ + if(arr[i]){ + newArr.push(arr[i]) + } + } + return newArr + }, + /** + * Draw Text,support line + * @param {Object} config + * @param {String} config.text 文字 + * @param {Number} config.max_width 文字最大宽度(大于宽度自动换行) + * @param {Number} config.line_height 文字上下行间距 + * @param {Number} config.x x坐标 + * @param {Number} config.y y坐标 + * @param {String} config.font_color 文字颜色 + * @param {String} config.font_family 文字字体 默认值:Arial + * @param {String} config.text_align 文字对齐方式(left/center/right) + * @param {Number} config.font_size 文字大小(px) + * @param {Boolean} config.line_through_height 中划线大小 + * @param {Boolean} config.line_through_color 中划线颜色 + * @param {String} config.font_style 规定文字样式 + * @param {String} config.font_variant 规定字体变体 + * @param {String} config.font_weight 规定字体粗细 + * @param {String} config.line_through_cap 线末端类型 + * @param {String} config.line_clamp 最大行数 + * @param {String} config.line_clamp_hint 超过line_clamp后,尾部显示的自定义标识 如 ... + * @param {String} config.is_line_break 是否开启换行符换行 + * + */ + drawText(config,configuration = {}){ + + configuration['line_num'] = configuration.line_num?configuration.line_num:0 + configuration['text_width'] = configuration.text_width?configuration.text_width:0 + + return new Promise(async (resolve,reject)=>{ + + if(config.text){ + + let draw_width = 0,draw_height = 0,draw_x = config.x,draw_y = config.y + let font_size = config.font_size?(parseFloat(config.font_size)*this.scale):(20*this.scale) + let font_color = config.font_color || "#000" + let font_family = config.font_family || "Arial" + let line_height = config.line_height || config.font_size || 20 + let text_align = config.text_align || "left" + let font_weight = config.font_weight || "normal" + let font_variant = config.font_variant || "normal" + let font_style = config.font_style || "normal" + let line_clamp_hint = config.line_clamp_hint || '...' + let lineBreakJoinText = "" + let max_width = config.max_width?parseFloat(config.max_width)*this.scale:0 + // checkout is line break + if(config.is_line_break){ + let splitTextArr = config.text.split(/[\n]/g) + if(splitTextArr && splitTextArr.length > 0){ + let newSplitTextArr = this.arrDeleteEmpty(splitTextArr) + if(newSplitTextArr && newSplitTextArr.length > 0){ + lineBreakJoinText = newSplitTextArr.slice(1).join("\n") + config.text = newSplitTextArr[0] + }else{ + reject("Text cannot be empty:103") + return + } + }else{ + reject("Text cannot be empty:102") + return + } + } + + this.ctx.setFillStyle(font_color) // color + this.ctx.textAlign = text_align; + this.ctx.font = `${font_style} ${font_variant} ${font_weight} ${parseInt(font_size)}px ${font_family}` + if(configuration.text_width >= this.ctx.measureText(config.text).width){ + draw_width = configuration.text_width + }else if(max_width > 0){ + draw_width = max_width < this.ctx.measureText(config.text).width ? this.resetCompatibilitySize(max_width) : this.resetCompatibilitySize(this.ctx.measureText(config.text).width) + }else{ + draw_width = this.ctx.measureText(config.text).width + } + configuration.text_width = draw_width / this.scale + if( max_width && this.compatibilitySize(this.ctx.measureText(config.text).width) > this.compatibilitySize(max_width)){ + let current_text = "" + let text_arr = config.text.split("") + for(let i in text_arr){ + if( this.compatibilitySize(this.ctx.measureText(current_text+text_arr[i]).width) > this.compatibilitySize(max_width) ){ + // Hyphenation that is greater than the drawable width continues to draw + if(config.line_clamp && parseInt(config.line_clamp) == 1){ + // Subtracting the current_text tail width from the line_clamp_hint width + let current_text_arr = current_text.split('') + let json_current_text = '' + while(true){ + current_text_arr = current_text_arr.slice(1) + json_current_text = current_text_arr.join('') + if(this.compatibilitySize(this.ctx.measureText(json_current_text).width) <= this.compatibilitySize(this.ctx.measureText(line_clamp_hint).width)){ + current_text = current_text.replace(json_current_text,'') + break; + } + } + configuration.line_num += 1 + this.ctx.setFontSize(parseInt(this.compatibilitySize(font_size))) // font size + this.ctx.fillText(current_text + line_clamp_hint, this.compatibilitySize(parseFloat(config.x)*this.scale), this.compatibilitySize(parseFloat(config.y)*this.scale)); + }else{ + configuration.line_num += 1 + this.ctx.setFontSize(parseInt(this.compatibilitySize(font_size))) // font size + this.ctx.fillText(current_text, this.compatibilitySize(parseFloat(config.x)*this.scale), this.compatibilitySize(parseFloat(config.y)*this.scale)); + config.text = text_arr.slice(i).join("") + config.y = config.y + line_height + if(config.line_clamp){ + config.line_clamp = parseInt(config.line_clamp) - 1 + } + await this.drawText(config,configuration) + } + + break; + }else{ + current_text = current_text+text_arr[i] + } + } + }else{ + if(config.line_through_height){ + let x = parseFloat(config.x)*this.scale + let w + let y = parseFloat(config.y)*this.scale - (font_size / 2.6) + if(text_align == "left"){ + w = this.ctx.measureText(config.text).width/1.1 + parseFloat(config.x)*this.scale + }else if(text_align == "right"){ + w = parseFloat(config.x)*this.scale - this.ctx.measureText(config.text).width/1.1 + }else if(text_align == "center"){ + x = parseFloat(config.x)*this.scale - this.ctx.measureText(config.text).width / 1.1 / 2 + w = parseFloat(config.x)*this.scale + this.ctx.measureText(config.text).width / 1.1 / 2 + } + this.drawLineTo({ + x:x, + y:y, + w:w, + h:y, + line_width:config.line_through_height, + line_color:config.line_through_color, + line_cap:config.line_through_cap + }) + } + configuration.line_num += 1 + this.ctx.setFontSize(parseInt(this.compatibilitySize(font_size))) // font size + this.ctx.fillText(config.text, this.compatibilitySize(parseFloat(config.x)*this.scale), this.compatibilitySize(parseFloat(config.y)*this.scale)); + if(config.line_clamp){ + config.line_clamp = parseInt(config.line_clamp) - 1 + } + } + if(lineBreakJoinText){ + await this.drawText({...config,text:lineBreakJoinText,y:config.y + line_height},configuration) + } + draw_height = config.font_size * configuration.line_num + draw_width = configuration.text_width + resolve({draw_width,draw_height,draw_x,draw_y}) + }else{ + reject("Text cannot be empty:101") + } + }) + }, + /** + * Draw Line + * @param {Object} config + * @param {Object} config.x x坐标 + * @param {Object} config.y y坐标 + * @param {Object} config.w 线的宽度 + * @param {Object} config.h 线的高度 + * @param {Object} config.line_width 线的宽度 + * @param {Object} config.line_color 线条颜色 + */ + drawLineTo(config){ + let x = this.compatibilitySize(config.x) + let y = this.compatibilitySize(config.y) + let w = this.compatibilitySize(config.w) + let h = this.compatibilitySize(config.h) + let line_width = config.line_width?parseFloat(config.line_width)*this.scale:1*this.scale + let line_color = config.line_color || "black" + let line_cap = config.line_cap || "butt" + this.ctx.beginPath() + this.ctx.lineCap = line_cap + this.ctx.lineWidth = line_width + this.ctx.strokeStyle = line_color + this.ctx.moveTo(x,y) + this.ctx.lineTo(w,h) + this.ctx.stroke() + }, + /** + * Compatibility px + * @param {Object} size + */ + compatibilitySize(size) { + let canvasSize = (parseFloat(size) / 750) * this.system_info.windowWidth + canvasSize = parseFloat(canvasSize * 2) + return canvasSize + }, + /** + * Restore compatibility px + * @param {Object} size + */ + resetCompatibilitySize(size) { + let canvasSize = (parseFloat(size/2)/this.system_info.windowWidth) * 750 + return canvasSize + }, + /** + * Init canvas + */ + init(config){ + return new Promise(async (resolve,reject)=>{ + if(!config.canvas_id){ + reject("Canvas ID cannot be empty, please refer to the usage example") + return; + } + this.hidden = config.hidden + this.canvas_id = config.canvas_id + let system_info = await uni.getSystemInfoSync() + this.system_info = system_info + this.scale = config.scale&&parseFloat(config.scale)>0?parseInt(config.scale):1 + this.canvas_width = (config.canvas_width ? this.compatibilitySize(config.canvas_width) : system_info.windowWidth) * this.scale + this.canvas_height = (config.canvas_height ? this.compatibilitySize(config.canvas_height) : system_info.windowHeight) * this.scale, + this.r_canvas_scale = 1/this.scale + this.ctx = uni.createCanvasContext(this.canvas_id,this) + this.setCanvasConfig({ + global_alpha:config.global_alpha?parseFloat(config.global_alpha):1, + backgroundColor:config.background_color?config.background_color:"#fff" + }) + resolve() + }) + }, + /** + * clear canvas all path + */ + clearCanvas(){ + return new Promise(async (resolve,reject)=>{ + if(!this.ctx){ + reject("canvas is not initialized:101") + return + }else{ + this.ctx.clearRect(0,0,parseFloat(this.canvas_width)*this.scale,parseFloat(this.canvas_height)*this.scale) + await this.draw() + resolve() + } + }) + }, + /** + * Set canvas config + * @param {Object} config + */ + setCanvasConfig(config){ + this.ctx.globalAlpha = config.global_alpha + this.ctx.fillStyle = config.backgroundColor + this.ctx.fillRect(0, 0, parseFloat(this.canvas_width)*this.scale, parseFloat(this.canvas_height)*this.scale) + }, + /** + * set canvas width + * @param {Object} width + */ + setCanvasWidth(width){ + if(!width){ + uni.showToast({ + title:'setCanvasWidth:width error', + icon:'none' + }) + } + this.canvas_width = this.compatibilitySize(parseFloat(width)) * this.scale + this.ctx.width = this.canvas_width + }, + /** + * set canvas height + * @param {Object} height + */ + setCanvasHeight(height){ + if(!height){ + uni.showToast({ + title:'setCanvasWidth:height error', + icon:'none' + }) + } + this.canvas_height = this.compatibilitySize(parseFloat(height)) * this.scale + this.ctx.height = this.canvas_height + }, + /** + * Draw to filepath + */ + draw(callback){ + return new Promise((resolve,reject)=>{ + let stop = setTimeout(()=>{ + this.ctx.draw(false,setTimeout(()=>{ + uni.canvasToTempFilePath({ + canvasId: this.canvas_id, + quality: 1, + success: (res)=>{ + console.log('res',res) + resolve(res) + callback && callback(res) + }, + fail:(err)=>{ + reject(JSON.stringify(err)|| "Failed to generate poster:101") + } + },this) + },300)) + clearTimeout(stop) + },300) + }) + }, + /** + * draw rect + * @param {Number} config.x x坐标 + * @param {Number} config.y y坐标 + * @param {Number} config.w 图形宽度(px) + * @param {Number} config.h 图形高度(px) + * @param {Number} config.color 图形颜色 + * @param {Number} config.is_radius 是否开启圆图(1.1.6及以下版本废弃,请使用border_radius) + * @param {Number} config.border_width 边框大小 + * @param {Number} config.border_color 边框颜色 + * + */ + drawRect(config){ + return new Promise(async (resolve,reject)=>{ + if(!config.border_width || config.border_width <=0){ + config.border_width = 0 + }else{ + config.border_width = parseFloat(config.border_width) + } + if(parseFloat(config.border_width) > 0){ + let sub_config = JSON.parse(JSON.stringify(config)) + sub_config.border_width = 0 + sub_config.w = config.w + config.border_width + sub_config.h = config.h + config.border_width + sub_config.color = config.border_color || 'black' + if(sub_config.border_radius){ + sub_config.border_radius = parseFloat(sub_config.border_radius) + parseFloat(config.border_width) / 2 + } + await this.drawRect(sub_config) + } + + let color = config.color || 'white' + config.x = (parseFloat(config.x) + config.border_width / 2) + config.y = (parseFloat(config.y) + config.border_width / 2) + config['color'] = color + this.ctx.fillStyle = color; + if(config.is_radius || config.border_radius){ + this.setNativeBorderRadius(config) + this.ctx.fill() + }else{ + console.log('config.border_width',config.border_width) + this.ctx.fillRect(this.compatibilitySize(config.x*this.scale),this.compatibilitySize(config.y*this.scale),this.compatibilitySize(parseFloat(config.w)*this.scale),this.compatibilitySize(parseFloat(config.h)*this.scale)) + } + resolve() + }) + }, + /** + * Draw image + * @param {Object} config + * @param {String} config.url 图片链接 + * @param {Number} config.x x坐标 + * @param {Number} config.y y坐标 + * @param {Number} config.w 图片宽度(px) + * @param {Number} config.h 图片高度(px) + * @param {Number} config.border_width 边大小 + * @param {Number} config.border_color 边颜色 + * @param {Number} config.is_radius 是否开启圆图(1.1.6及以下版本废弃,请使用border_radius) + * @param {Number} config.border_radius 圆角弧度 + */ + drawImage(config){ + return new Promise(async (resolve,reject)=>{ + if(config.url){ + let type = 0 // 1、network image 2、native image 3、base64 image + let image_url + let reg = /^https?/ig; + if(reg.test(config.url)){ + type = 1 + }else{ + if((config.url.indexOf("data:image/png;base64") != -1) || config.url.indexOf("data:image/jpeg;base64") != -1 || config.url.indexOf("data:image/gif;base64") != -1){ + type = 3 + }else{ + type = 2 + } + } + if(type == 1){ + // network image + await this.downLoadNetworkFile(config.url).then(res=>{ // two function + image_url = res + }).catch(err=>{ + reject(err) + return; + }) + }else if(type == 2){ + // native image + const imageInfoResult = await uni.getImageInfo({ + src: config.url + }); + try{ + if(imageInfoResult.length <= 1){ + reject(imageInfoResult[0].errMsg + ':404') + return + } + }catch(e){ + reject(e+':500') + return + } + let base64 = await this.urlToBase64({url:imageInfoResult[1].path}) + // #ifdef MP-WEIXIN + await this.base64ToNative({url:base64}).then(res=>{ + image_url = res + }).catch(err=>{ + reject(JSON.stringify(err)+":501") + return; + }) + // #endif + // #ifndef MP-WEIXIN + image_url = base64 + // #endif + + }else if(type == 3){ + // #ifdef MP-WEIXIN + await this.base64ToNative({url:config.url}).then(res=>{ + image_url = res + }).catch(err=>{ + reject(JSON.stringify(err)+":500") + return; + }) + // #endif + // #ifndef MP-WEIXIN + image_url = config.url + // #endif + }else{ + reject("Other Type Errors:101") + return + } + if(config.border_width){ + let border_radius = 0 + if(config.border_radius){ + let multiple = config.w / config.border_radius + border_radius = (parseFloat(config.w) + parseFloat(config.border_width)) / multiple + } + // drawRect + await this.drawRect({ + x:parseFloat(config.x) - parseFloat(config.border_width)/2, + y:parseFloat(config.y) - parseFloat(config.border_width)/2, + w:parseFloat(config.w) + parseFloat(config.border_width), + h:parseFloat(config.h) + parseFloat(config.border_width), + color:config.border_color, + border_radius:border_radius, + border_width:config.border_width, + is_radius:config.is_radius + }) + } + + + + if(config.border_radius){ + config.color = config.color?config.color:'rgba(0,0,0,0)' + + // 圆角有白边,+0.5的误差 + config.w = config.w + 0.3 + config.h = config.h + 0.3 + + this.setNativeBorderRadius(config) + }else if(config.is_radius){ + //已废弃 is_radius + this.ctx.setStrokeStyle("rgba(0,0,0,0)") + this.ctx.save() + this.ctx.beginPath() + this.ctx.arc(this.compatibilitySize(parseFloat(config.x)*this.scale+parseFloat(config.w)*this.scale/2), this.compatibilitySize(parseFloat(config.y)*this.scale+parseFloat(config.h)*this.scale/2), this.compatibilitySize(parseFloat(config.w)*this.scale/2), 0, 2 * Math.PI, false) + this.ctx.stroke(); + this.ctx.clip() + } + + await this.ctx.drawImage(image_url,this.compatibilitySize(parseFloat(config.x)*this.scale),this.compatibilitySize(parseFloat(config.y)*this.scale),this.compatibilitySize(parseFloat(config.w)*this.scale),this.compatibilitySize(parseFloat(config.h)*this.scale)) + this.ctx.restore() //Restore previously saved drawing context + resolve() + }else{ + let err_msg = "Links cannot be empty:101" + reject(err_msg) + } + }) + }, + /** + * base64 to native available path + * @param {Object} config + */ + base64ToNative(config){ + return new Promise((resolve,reject)=>{ + let fileName = new Date().getTime() + var filePath = `${wx.env.USER_DATA_PATH}/${fileName}_rCanvas.png` + wx.getFileSystemManager().writeFile({ + filePath: filePath, + data: config.url.replace(/^data:\S+\/\S+;base64,/, ''), + encoding: 'base64', + success: function() { + resolve(filePath) + }, + fail: function(error) { + reject(error) + } + }) + }) + }, + /** + * native url to base64 + * @param {Object} config + */ + urlToBase64(config){ + return new Promise(async (resolve,reject)=>{ + if (typeof window != 'undefined') { + await this.downLoadNetworkFile(config.url).then(res=>{ // two function + resolve(res) + }).catch(err=>{ + reject(err) + }) + }else if (typeof plus != 'undefined') { + plus.io.resolveLocalFileSystemURL(config.url,(obj)=>{ + obj.file((file)=>{ + let fileReader = new plus.io.FileReader() + fileReader.onload = (res)=>{ + resolve(res.target.result) + } + fileReader.onerror = (err)=>{ + reject(err) + } + fileReader.readAsDataURL(file) + }, (err)=>{ + reject(err) + }) + },(err)=>{ + reject(err) + }) + }else if(typeof wx != 'undefined'){ + wx.getFileSystemManager().readFile({ + filePath: config.url, + encoding: 'base64', + success: function(res) { + resolve('data:image/png;base64,' + res.data) + }, + fail: function(error) { + reject(error) + } + }) + } + }) + }, + setNativeBorderRadius(config){ + let border_radius = config.border_radius?(parseFloat(config.border_radius)*this.scale):(20*this.scale) + if ((parseFloat(config.w)*this.scale) < 2 * border_radius) border_radius = (parseFloat(config.w)*this.scale) / 2; + if ((parseFloat(config.h)*this.scale) < 2 * border_radius) border_radius = (parseFloat(config.h)*this.scale) / 2; + this.ctx.beginPath(); + this.ctx.moveTo(this.compatibilitySize((parseFloat(config.x)*this.scale) + border_radius), this.compatibilitySize((parseFloat(config.y)*this.scale))); + this.ctx.arcTo(this.compatibilitySize((parseFloat(config.x)*this.scale) + (parseFloat(config.w)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale)), this.compatibilitySize((parseFloat(config.x)*this.scale) + (parseFloat(config.w)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale) + (parseFloat(config.h)*this.scale)), this.compatibilitySize(border_radius)); + this.ctx.arcTo(this.compatibilitySize((parseFloat(config.x)*this.scale) + (parseFloat(config.w)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale) + (parseFloat(config.h)*this.scale)), this.compatibilitySize((parseFloat(config.x)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale) + (parseFloat(config.h)*this.scale)), this.compatibilitySize(border_radius)); + this.ctx.arcTo((this.compatibilitySize(parseFloat(config.x)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale) + (parseFloat(config.h)*this.scale)), this.compatibilitySize((parseFloat(config.x)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale)), this.compatibilitySize(border_radius)); + this.ctx.arcTo(this.compatibilitySize((parseFloat(config.x)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale)), this.compatibilitySize((parseFloat(config.x)*this.scale) + (parseFloat(config.w)*this.scale)), this.compatibilitySize((parseFloat(config.y)*this.scale)), this.compatibilitySize(border_radius)); + this.ctx.closePath(); + this.ctx.strokeStyle = config.color || config.border_color || 'rgba(0,0,0,0)'; // 设置绘制边框的颜色 + this.ctx.stroke(); + this.ctx.save() + this.ctx.clip(); + + }, + /** + * Download network file + * @param {Object} url : download url + */ + downLoadNetworkFile(url){ + return new Promise((resolve,reject)=>{ + uni.downloadFile({ + url, + success:(res)=>{ + if(res.statusCode == 200){ + resolve(res.tempFilePath) + }else{ + reject("Download Image Fail:102") + } + }, + fail:(err)=>{ + reject("Download Image Fail:101") + } + }) + }) + }, + /** + * Save image to natice + * @param {Object} filePath : native imageUrl + */ + saveImage(filePath){ + return new Promise((resolve,reject)=>{ + if(!filePath){ + reject("FilePath cannot be null:101") + return; + } + + // #ifdef H5 + var createA = document.createElement("a"); + createA.download = filePath; + createA.href = filePath; + document.body.appendChild(createA); + createA.click(); + createA.remove(); + resolve() + // #endif + + // #ifndef H5 + uni.saveImageToPhotosAlbum({ + filePath: filePath, + success:(res)=>{ + resolve(res) + }, + fail:(err)=>{ + reject(err) + } + }) + // #endif + }) + } + } +} diff --git a/components/r-canvas/r-canvas.vue b/components/r-canvas/r-canvas.vue new file mode 100644 index 0000000..5722790 --- /dev/null +++ b/components/r-canvas/r-canvas.vue @@ -0,0 +1,26 @@ + + + + diff --git a/package.json b/package.json index 0d5d9db..b4155c7 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,16 @@ { - "dependencies": { - "uview-ui": "^1.8.4" - }, - "name": "nursestationapp", - "version": "1.0.0", - "main": "main.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "http://192.168.16.64:3000/jihan/NurseStationApp.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "" + "dependencies": { + "uview-ui": "^1.8.4" + }, + "id": "r-canvas", + "name": "海报生成,随心所欲绘制样式,原生canvas方法的二次封装,自定义函数,持续更新", + "version": "1.3.1", + "description": "图片不失帧,保留原有画质,canvas方法扩展,暴露原生实例,可自行扩展,最好用的canvas插件", + "keywords": [ + "canvas", + "画布生成图片", + "绘制图片", + "商品海报", + "朋友圈海报" + ] } diff --git a/pages.json b/pages.json index 0dbee9f..a5a8b7a 100644 --- a/pages.json +++ b/pages.json @@ -9,7 +9,30 @@ "navigationBarTitleText": "", "navigationStyle": "custom" } - },{ + }, { + "path": "pages/confirmation/confirmation", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationBarTitleText": "预约时间" + } + }, { + "path": "pages/integral/integral", + "style": { + "navigationBarTitleText": "积分", + "enablePullDownRefresh": false, + "navigationBarBackgroundColor": "#ffffff" + } + }, { + "path": "pages/coupon/coupon", + "style": { + "navigationBarTitleText": "优惠券", + "enablePullDownRefresh": false, + "navigationBarBackgroundColor": "#ffffff", + "onReachBottomDistance": 40, //距离底部多远时触发 单位为px + "enablePullDownRefresh": true //设置参数为true + } + }, { "path": "pages/forgotPassword/forgotPassword", "style": { "navigationBarTitleText": "忘记密码", @@ -101,7 +124,6 @@ "navigationBarTitleText": "医路优品", "navigationBarBackgroundColor": "#ffffff", "onReachBottomDistance": 40, //距离底部多远时触发 单位为px - "navigationStyle": "custom", "enablePullDownRefresh": true //设置参数为true } }, { @@ -296,7 +318,8 @@ "style": { "navigationBarTitleText": "健康咨询", "enablePullDownRefresh": false, - "navigationBarBackgroundColor": "#ffffff" + "navigationBarBackgroundColor": "#ffffff", + "disableScroll": true } }, { @@ -377,12 +400,6 @@ "selectedIconPath": "static/homepagews.png", "text": "首页" }, - { - "pagePath": "pages/shopping/shopping", - "iconPath": "static/shoping.png", - "selectedIconPath": "static/shopingw.png", - "text": "商城" - }, { "pagePath": "pages/Personal/Personal", "iconPath": "static/userw.png", diff --git a/pages/CommodityOrder/CommodityOrder.scss b/pages/CommodityOrder/CommodityOrder.scss index daa0839..a5a0793 100644 --- a/pages/CommodityOrder/CommodityOrder.scss +++ b/pages/CommodityOrder/CommodityOrder.scss @@ -4,18 +4,6 @@ padding: 3%; .noorder{ margin-top: 20%; - image{ - display: block; - margin: 0 auto; - width: 200rpx; - height: 240rpx; - } - view{ - margin-top: 100rpx; - text-align: center; - font-size: 36rpx; - color: #BFBFBF; - } } .submits { width: 501rpx; diff --git a/pages/CommodityOrder/CommodityOrder.vue b/pages/CommodityOrder/CommodityOrder.vue index f54948e..f06cf2f 100644 --- a/pages/CommodityOrder/CommodityOrder.vue +++ b/pages/CommodityOrder/CommodityOrder.vue @@ -24,56 +24,74 @@ - {{item.goodsName}} - ¥{{item.goodsPrice}} + 健康咨询 + {{item.goodsName}} + + ¥{{item.goodsPrice}} - + 型号:{{item.goodsAttributeName}} ×{{item.goodsCount}} - 实付款: - ¥{{item.totalPrice}} + + 实付款: + + ¥{{item.totalPrice}} + {{item.integralExchangeSill}} + + 积分 + - 退款中 + 退款中 - 查看物流 + 查看物流 - + 去支付 - + 确认收货 - - 立即评价 + + 咨询完成 + + 去评价 查看评价 - - - 暂无商品订单 - + - + - 确认收到货了吗 - + 确认咨询完成了吗 + 确认收到货了吗 - - - 共1件 + + + 共1件 - 为了保证你的售后权益,请收到商品确认无误后再确认收货 + 为了保证您的售后权益,请确认健康咨询无误后再确认完成 + + 为了保证您的售后权益,请收到商品确认无误后再确认收货 确定 diff --git a/pages/Healthitem/Healthitem.vue b/pages/Healthitem/Healthitem.vue index 1a4da59..557677d 100644 --- a/pages/Healthitem/Healthitem.vue +++ b/pages/Healthitem/Healthitem.vue @@ -3,29 +3,53 @@ {{item.informationTitle}} - - + + - diff --git a/pages/ProductList/ProductList.vue b/pages/ProductList/ProductList.vue index 45597fa..9b6a720 100644 --- a/pages/ProductList/ProductList.vue +++ b/pages/ProductList/ProductList.vue @@ -28,11 +28,8 @@ - - - - 暂无商品 - + + @@ -187,26 +184,6 @@ uni.stopPullDownRefresh(); }, 1000); }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - url = decodeURIComponent(url) - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - url = decodeURIComponent(url) - return { - title: '泉医到家', - path: url, - } - }, } @@ -247,21 +224,6 @@ } } - .noorder { - view { - text-align: center; - font-size: 40rpx; - color: #BFBFBF; - } - - image { - display: block; - margin: 20% auto 50rpx; - width: 160rpx; - height: 200rpx; - } - } - .inputs { box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03); border: 1px solid #f0f0f0; diff --git a/pages/ProjectDetails/ProjectDetails.vue b/pages/ProjectDetails/ProjectDetails.vue index b52d54a..1395002 100644 --- a/pages/ProjectDetails/ProjectDetails.vue +++ b/pages/ProjectDetails/ProjectDetails.vue @@ -221,24 +221,6 @@ }) }, }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, } diff --git a/pages/classification/classification.vue b/pages/classification/classification.vue index 2a7416f..5d6c517 100644 --- a/pages/classification/classification.vue +++ b/pages/classification/classification.vue @@ -38,11 +38,8 @@ 用力上滑加载更多 - - - - 暂无商品 - + + @@ -233,26 +230,6 @@ // uni.stopPullDownRefresh(); // }, 1000); // }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - url = decodeURIComponent(url) - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - url = decodeURIComponent(url) - return { - title: '泉医到家', - path: url, - } - }, } @@ -418,21 +395,5 @@ } } - - - .noorder { - view { - text-align: center; - font-size: 40rpx; - color: #BFBFBF; - } - - image { - display: block; - margin: 20% auto 50rpx; - width: 160rpx; - height: 200rpx; - } - } } diff --git a/pages/confirmation/confirmation.vue b/pages/confirmation/confirmation.vue new file mode 100644 index 0000000..6e2892e --- /dev/null +++ b/pages/confirmation/confirmation.vue @@ -0,0 +1,308 @@ + + + diff --git a/pages/coupon/coupon.scss b/pages/coupon/coupon.scss new file mode 100644 index 0000000..0f18619 --- /dev/null +++ b/pages/coupon/coupon.scss @@ -0,0 +1,162 @@ + .app { + padding: 0; + + .noorder { + margin-top: 20%; + } + .content { + width: 96%; + margin: 20rpx auto 0; + background-color: #fff; + padding-bottom: 100rpx; + + .rollup { + border-radius: 5rpx; + + .item { + width: 94%; + height: 240rpx; + margin: 20rpx auto 0; + border: 1rpx solid #f4f5f7; + border-radius: 10rpx; + + .bottom { + font-size: 22rpx; + color: #969394; + line-height: 60rpx; + padding-left: 25rpx; + border-radius: 0 0 10rpx 10rpx; + } + + .top { + width: 100%; + height: 180rpx; + background: #FDE9E8; + position: relative; + color: #F44B2F; + border-radius: 10rpx 10rpx 0 0; + + .what { + padding: 0 10rpx; + height: 40rpx; + background: #FED1D2; + border-radius: 16rpx; + font-size: 20rpx; + line-height: 40rpx; + text-align: center; + position: absolute; + top: 120rpx; + left: 20rpx; + } + + .btngq { + width: 110rpx; + height: 50rpx; + border: 2rpx solid #DFDEDE; + border-radius: 24rpx; + font-size: 24rpx; + position: absolute; + top: 70rpx; + right: 20rpx; + text-align: center; + line-height: 50rpx; + background: #DFDEDE; + } + + .btn { + width: 98rpx; + height: 50rpx; + border: 2rpx solid #F44B2F; + border-radius: 24rpx; + font-size: 24rpx; + position: absolute; + top: 70rpx; + right: 20rpx; + text-align: center; + line-height: 50rpx; + } + + .time { + font-size: 24rpx; + position: absolute; + top: 120rpx; + left: 240rpx; + } + + .texts { + font-size: 32rpx; + font-weight: 800; + position: absolute; + top: 44rpx; + left: 240rpx; + } + + .title { + position: absolute; + top: 30rpx; + left: 10rpx; + + .price { + font-size: 54rpx; + font-weight: 700; + } + + .text { + font-weight: 600; + font-size: 34rpx; + } + } + } + } + } + + .statuss { + padding-top: 25rpx; + + span { + color: #c1c1c1; + font-size: 18rpx; + line-height: 60rpx; + } + + .statusitem { + text-align: center; + padding: 0 40rpx; + display: inline-block; + height: 60rpx; + font-size: 30rpx; + color: #969394; + line-height: 60rpx; + } + } + } + + .tabs { + width: 100%; + + .tab-item { + margin: 20rpx 0 0 24rpx; + text-align: center; + width: 20%; + + .text { + width: 70%; + margin-left: 15%; + height: 30rpx; + background: #F44B2F; + border-radius: 9rpx; + color: #fff; + font-size: 24rpx; + line-height: 30rpx; + } + + .title { + font-size: 40rpx; + font-family: Source Han Sans CN; + font-weight: 500; + color: #F44B2F; + line-height: 59rpx; + } + } + } + } \ No newline at end of file diff --git a/pages/coupon/coupon.vue b/pages/coupon/coupon.vue new file mode 100644 index 0000000..3664317 --- /dev/null +++ b/pages/coupon/coupon.vue @@ -0,0 +1,151 @@ + + + + diff --git a/pages/customerservice/customerservice.vue b/pages/customerservice/customerservice.vue index b083eb2..4d95ae2 100644 --- a/pages/customerservice/customerservice.vue +++ b/pages/customerservice/customerservice.vue @@ -42,24 +42,6 @@ }); }, }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, } diff --git a/pages/homepage/homepage.vue b/pages/homepage/homepage.vue index c90255d..68170b3 100644 --- a/pages/homepage/homepage.vue +++ b/pages/homepage/homepage.vue @@ -51,6 +51,7 @@ + @@ -218,6 +219,12 @@ url: '/pages/materialbenefits/materialbenefits' }) }, + //跳转商城 + goshopping() { + uni.navigateTo({ + url: '/pages/shopping/shopping' + }) + }, }, // onReachBottom() { //下滑加载 // if (this.informationCategoryVOList.length >= this.informationCategorytotal) {} else { @@ -239,24 +246,6 @@ // uni.stopPullDownRefresh(); // }, 1000); // }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, } diff --git a/pages/materialbenefits/materialbenefits.vue b/pages/materialbenefits/materialbenefits.vue index ba62d02..63a3dee 100644 --- a/pages/materialbenefits/materialbenefits.vue +++ b/pages/materialbenefits/materialbenefits.vue @@ -1,83 +1,418 @@ - diff --git a/pages/medicine/medicine.scss b/pages/medicine/medicine.scss new file mode 100644 index 0000000..281772e --- /dev/null +++ b/pages/medicine/medicine.scss @@ -0,0 +1,220 @@ +.app{ + padding: 0%; + margin-top: 390rpx; + .mask { + .information { + width: 70%; + height: 400rpx; + margin: 50% auto; + background: #FFFFFF; + border-radius: 30rpx; + text-align: center; + color: #FFFFFF; + position: relative; + + .determine, + .cancel { + width: 200rpx; + height: 70rpx; + border-radius: 26rpx; + font-size: 34rpx; + line-height: 70rpx; + position: absolute; + top: 74%; + } + + .determine { + background: #4C7BC9; + right: 36rpx; + } + + .cancel { + background: #C5BFBF; + left: 36rpx; + } + + .title { + font-size: 42rpx; + margin-top: 40rpx; + color: #000000; + } + + image { + width: 100rpx; + height: 100rpx; + margin: 10% 0 0 0; + } + } + } + .swiper { + position: fixed; + top:88rpx; + width: 100%; + height: 380rpx; + z-index: 999; + + .swiper-box { + width: 100%; + height: 380rpx; + } + + .swiper-item { + height: 380rpx; + text-align: center; + + image { + width: 100%; + height: 380rpx !important; + z-index: 999; + } + } + + video { + height: 100%; + width: 100%; + } + } + + .hospital { + width: 97%; + margin: 0 auto; + height: 100%; + background-color: #fff; + + .appointmenthospital { + height: 90rpx; + font-size: 35rpx; + line-height: 90rpx; + border-bottom: 1rpx solid #D8D4D4; + width: 94%; + margin: 0 auto; + font-weight: 600; + } + + .tabbar { + display: flex; + height: calc(100vh - 470rpx); + width: 100%; + + + .lefttabbar { + width: 30%; + // display: inline-block; + height: 100%; + padding-top: 20rpx; + + .lefttabbarlist { + overflow: scroll; + -webkit-overflow-scrolling: touch; + height: 100%; + + .actives { + width: 80%; + color: red; + font-size: 34rpx; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0 auto; + line-height: 80rpx; + border-bottom: 1rpx solid #D8D4D4; + text-align: center; + font-size: 30rpx; + // border-radius: 25rpx 0 0 25rpx; + } + + .active { + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + font-size: 30rpx; + white-space: nowrap; + border-bottom: 1rpx solid #D8D4D4; + width: 80%; + margin: 0 auto; + line-height: 80rpx; + } + } + } + + .righttabbar { + width: 70%; + height: 100%; + + .productlist { + padding-bottom: 40rpx; + overflow: scroll; + -webkit-overflow-scrolling: touch; + width: 100%; + height: 100%; + margin: 0 auto; + border-radius: 25rpx; + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + background-color: #ffffff; + + .content { + height: 500rpx; + position: relative; + width: 100%; + border-bottom: 1rpx solid #D8D4D4; + + .hospitalimage { + position: absolute; + width: 120rpx; + height: 150rpx; + top: 30rpx; + left: 30rpx; + } + + .hospitalteacher { + font-size: 36rpx; + position: absolute; + top: 60rpx; + left: 180rpx; + } + + .physician { + font-size: 24rpx; + color: #666666; + position: absolute; + top: 120rpx; + left: 183rpx; + + } + + .words { + white-space: normal; + word-break: break-all; + margin-left: 41rpx; + width: 85%; + margin-top: 190rpx; + text-indent: 2em; + font-size: 30rpx; + line-height: 55rpx; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 4; + } + + .appointment { + position: absolute; + bottom: 25rpx; + right: 30rpx; + width: 125rpx; + height: 52rpx; + background: #F44B2F; + border-radius: 26rpx; + color: #fff; + line-height: 52rpx; + text-align: center; + } + } + } + } + } + } +} \ No newline at end of file diff --git a/pages/medicine/medicine.vue b/pages/medicine/medicine.vue index f9e6a0b..f620feb 100644 --- a/pages/medicine/medicine.vue +++ b/pages/medicine/medicine.vue @@ -1,106 +1,270 @@ diff --git a/pages/nursestation/nursestation.scss b/pages/nursestation/nursestation.scss index 29451ad..8826af8 100644 --- a/pages/nursestation/nursestation.scss +++ b/pages/nursestation/nursestation.scss @@ -82,17 +82,6 @@ padding-bottom: 60rpx; .noorder{ margin-top: 90rpx; - image{ - display: block; - margin: 0 auto; - width: 100rpx; - height: 120rpx; - } - view{ - text-align: center; - font-size: 36rpx; - color: #BFBFBF; - } } .item { width: 100%; diff --git a/pages/nursestation/nursestation.vue b/pages/nursestation/nursestation.vue index 82b439f..115e814 100644 --- a/pages/nursestation/nursestation.vue +++ b/pages/nursestation/nursestation.vue @@ -121,10 +121,7 @@ - - - 暂无服务项目 - + @@ -138,10 +135,7 @@ - - - 暂无产品 - + @@ -483,24 +477,6 @@ uni.stopPullDownRefresh(); }, 1000); }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, onPageScroll(e) { this.scrollTop = e.scrollTop; }, diff --git a/pages/orderDetails/orderDetails.scss b/pages/orderDetails/orderDetails.scss index 92d848f..d5f4fe4 100644 --- a/pages/orderDetails/orderDetails.scss +++ b/pages/orderDetails/orderDetails.scss @@ -201,13 +201,19 @@ line-height: 54rpx; text-align: center; background: #FFFFFF; - border: 1rpx solid #969394; - border-radius: 26rpx; font-size: 26rpx; color: #969394; position: absolute; right: 20rpx; bottom: 100rpx; + border-radius: 26rpx; + text{ + border-radius: 26rpx; + display: block; + width: 100%; + height: 100%; + border: 1rpx solid #969394; + } } } @@ -246,7 +252,8 @@ font-size: 30rpx; color: #020000; - view { + span { + display: block; line-height: 65rpx; margin-left: 20rpx; diff --git a/pages/orderDetails/orderDetails.vue b/pages/orderDetails/orderDetails.vue index 6c96d78..125547c 100644 --- a/pages/orderDetails/orderDetails.vue +++ b/pages/orderDetails/orderDetails.vue @@ -18,47 +18,62 @@ - {{order.goodsName}} - ¥{{order.goodsPrice}} + 健康咨询 + {{order.goodsName}} + ¥{{order.goodsPrice}} - + 型号:{{order.goodsAttributeName}} X{{order.goodsCount}} - - 申请退款 + + 优惠金额: + -¥{{order.discountPrice}} - + + 取消兑换 + 申请退款 + 取消咨询 + + 退款中 - + 退款成功 - - + 待退货 + + 已取消 + 实付款 - ¥{{order.totalPrice}} + ¥{{order.totalPrice}} + {{order.integralExchangeSill}}积分 - 收货人:{{order.receiver}} - 联系电话:{{order.phone}} - 收货地址:{{order.receiveAddress}} - 订单编号:{{order.goOrderNo}} - - 下单时间:{{order.orderTime}} - 退款时间:{{order.updateTime}} - - + 收货人:{{order.receiver}} + 联系电话:{{order.phone}} + 咨询医生:{{order.hospitalPersonName}} + 咨询时间:{{order.healthAppointDate}} + 收货地址:{{order.receiveAddress}} + 订单编号:{{order.goOrderNo}} + 下单时间:{{order.orderTime}} + 退款时间:{{order.updateTime}} + 退款时间:{{order.appleTime}} @@ -75,6 +90,37 @@ 去评价 + + 查看物流 + + + 确认收货 + + + + + 咨询完成 + + + + + + 确认咨询完成了吗 + 确认收到货了吗 + + + + + 共1件 + + 为了保证您的售后权益,请确认健康咨询无误后再确认完成 + + 为了保证您的售后权益,请收到商品确认无误后再确认收货 + + 确定 + + @@ -87,9 +133,13 @@ import { appletGoodsOrderPay } from '@/api/confirmOrder/index.js' + import { + confirmReceipt + } from '@/api/CommodityOrder/index.js' export default { data() { return { + show: false, baseurl: '', order: {}, patientId: '', @@ -97,9 +147,40 @@ pageSize: 10, pageNum: 1, timestamp: 0, //倒计时 + goodsOrderId: null, } }, - methods: { + methods: { //收货 + Receipts() { + confirmReceipt(this.order.goOrderNo).then(res => { + if (res.code == 200) { + this.$refs.uToast.show({ + title: '完成订单成功', + type: 'success', + duration: '1000' + }) + this.show = false + uni.setStorageSync("Refresh", 'Refresh') + this.goodsOrderinfo() + setTimeout(e => { + uni.navigateTo({ + url: `/pages/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.order)}&delta=${4}` + }) + }, 1000) + } else { + this.$refs.uToast.show({ + title: '完成订单失败', + type: 'error', + duration: '1000' + }) + this.show = false + } + }) + }, + //收货 + Receipt() { + this.show = true + }, //查看评价 golookrate() { uni.navigateTo({ @@ -133,26 +214,17 @@ }) }, }, + onShow() { + this.goodsOrderinfo(this.goodsOrderId) + }, onLoad(options) { this.baseurl = baseurl + this.goodsOrderId = options.goodsOrderId let that = this - try { - const value = uni.getStorageSync('patientId'); - if (value) { - that.patientId = value - that.goodsOrderinfo(options.goodsOrderId) - } - } catch (e) { - // error + const value = uni.getStorageSync('patientId'); + if (value) { + that.patientId = value } - - /* uni.getStorage({ - key: 'patientId', - success: function(res) { - that.patientId = res.data - that.goodsOrderinfo(options.goodsOrderId) - } - }); */ } } diff --git a/pages/payorderDetails/payorderDetails.vue b/pages/payorderDetails/payorderDetails.vue index a242901..5fbde9a 100644 --- a/pages/payorderDetails/payorderDetails.vue +++ b/pages/payorderDetails/payorderDetails.vue @@ -103,28 +103,6 @@ paydata.orderNo = this.order.goOrderNo // appletGoodsOrderPay(paydata).then(response => { // if (response.code == 200) { - // uni.requestPayment({ - // timeStamp: response.data.timeStamp, - // nonceStr: response.data.nonceStr, - // package: response.data.prepayId, - // signType: response.data.signType, - // paySign: response.data.paySign, - // success: function(res) { - // that.$refs.uToast.show({ - // title: '支付成功', - // type: 'success', - // duration: 1500, - // url: `/pages/paysuccess/paysuccess?delta=${3}` - // }) - // }, - // fail: function(err) { - // that.$refs.uToast.show({ - // title: '取消支付', - // type: 'error', - // duration: 1500, - // }) - // } - // }); // } else { // that.$refs.uToast.show({ // title: response.msg, diff --git a/pages/picker/picker.vue b/pages/picker/picker.vue deleted file mode 100644 index 591b840..0000000 --- a/pages/picker/picker.vue +++ /dev/null @@ -1,562 +0,0 @@ - - - - - diff --git a/pages/picker/style.components.scss b/pages/picker/style.components.scss deleted file mode 100644 index 6835876..0000000 --- a/pages/picker/style.components.scss +++ /dev/null @@ -1,7 +0,0 @@ -// 定义混入指令,用于在非nvue环境下的flex定义,因为nvue没有display属性,会报错 -@mixin vue-flex($direction: row) { - /* #ifndef APP-NVUE */ - display: flex; - flex-direction: $direction; - /* #endif */ -} \ No newline at end of file diff --git a/pages/shopping/shopping.vue b/pages/shopping/shopping.vue index 4520790..1c6971d 100644 --- a/pages/shopping/shopping.vue +++ b/pages/shopping/shopping.vue @@ -28,24 +28,6 @@ listcolor: ['#E69874', '#09C87E', '#E4B958', '#6592DC', '#EF6A80'] //颜色随动 }; }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, //初始化加载 onLoad(options) { this.pageNum = 1 diff --git a/pages/site/site.scss b/pages/site/site.scss index b3cfd7e..face2c4 100644 --- a/pages/site/site.scss +++ b/pages/site/site.scss @@ -99,17 +99,6 @@ height: 100%; .noorder{ margin-top: 90rpx; - image{ - display: block; - margin: 0 auto; - width: 100rpx; - height: 120rpx; - } - view{ - text-align: center; - font-size: 36rpx; - color: #BFBFBF; - } } .title{ font-size: 32rpx; diff --git a/pages/site/site.vue b/pages/site/site.vue index 4e555d1..3fc0667 100644 --- a/pages/site/site.vue +++ b/pages/site/site.vue @@ -48,10 +48,7 @@ - - - 暂无护理站 - + @@ -281,24 +278,6 @@ onLoad() { this.getNurseClassifyinfo(); }, - //1.分享给朋友 - onShareAppMessage(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, - //2.分享到朋友圈 - onShareTimeline(res) { - let pages = getCurrentPages(); - let url = pages[pages.length - 1].$page.fullPath - return { - title: '泉医到家', - path: url, - } - }, onPageScroll(e) { this.scrollTop = e.scrollTop; }, diff --git a/static/noorder.png b/static/noorder.png deleted file mode 100644 index 66be3561479af86dbf93de376c9f0cea48a754d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2577 zcmcgu`#Td18=jm`uVI>o=%AKrV$!C~siA3Pr58EH>t#zsv+T`jq-2^@5;=rnsf2`b zF60m+lf1EEatPZTmO1-+zklHS>HU6q?&o^$AMWe9uKT*5>q&HSv{P1qC;$KeW$bCp zxnI5WR|({#eqkTpNfH2%AH-s;oGIVe$OvCWq5Ij$R9;e*h!9UF?#GIvpa*malKHrOP03yq;_ig{*;}vDe@q!kzTAG zh%FNuTQ*m^#J5p94ehu+_ZMr4!x7HHI#>b{>ttR#TF;-zZu>Z; z4s>+1ir}bt>mf!r+(>)!#7(-!W0~mCefI2)Cf_xrLpl1xMhmA-|BEZBK*-#J9##Jf zi4KS$tkSinSLZJPLIAn?=@&5*RkDwS&rp@m^yNf$SQOABPBuuzK#11#ct8OFv~!D1 zL`sI1P0Q(vUQ}>=4$(kbTkn`|CG<6VuXL_lW$Y?dvKKWR5MlCsB+8^zm~Q-a`E+;-rp?3iY{JgT+~1{js6p=PU! z$rGIhw!!W1wBX0o^^2}{<5K0KFelGt3*4q&G#zJWj)Eb=XnH3lt>R8&z@o?uj^Eqi z`Tj9@w+ZsfVb~bzTP%mqQd3y+oD6Qqq)Nu#4iV_T%d06~Mcr69LsHq~>P}~DSs}Be z0MEabD>J)18^w6Xw?SiB$bA$()%aZxZwJnh zBf4xB)-Guj7~_uB*-4$oeGG#H%zQ(8x3*{Bd|i|E^kD9Kwq3>a-(ZKa=faVzVfS3C z*LO#&DR$LUP3A55C@aNoK2Sc(8=2(LP;?>${M~ph=uGj_^$9Ggxr#aAz9MaL#&)U^ zhk~g!G@oB7N4Eh(OG8;l(oadVDB@X@gu~qjj4HWbsn8qUCD@r-AkCrlno7F6FwpY8 z?nqur#I>!CK-2$gBL7#~Gdy1%tF=*O?uTow=f{o_QirgMHq4v%#z!^UTjv;qZ*&d&Sl_lIwwU-U*hTXr*`n&9?t{}u%5{uP#>FMN z!_hQ5;UUw4GM!KEDg(+(@g9s7!(9=KkO}T7a&v=iA2d4YQs7wU{Qdi|e0-!0m{VPB z9vS)l3=w4Uv%pl^2ui-Ix2h|8C~(1Dh+N8SVud_et(D2G=s z7X^&j^RVLXaoX3tgPn)rCl}lql*2R!*NouH<~np`>*H;Pwr#MCbGTSFNk;U9?y#YVV))-bj% z*|5JflS@)uRQTH%*$+;ISJR0O0jNQHucYdUY}ol zzFG8&E1~DhX*r^n6x8~?Be6Ht5LHCq4bSZoEY)F2UTs$7hfIF$wiWUgf8F)$JQ{?(I$ek!IC6j!UJ`%gQ0$ zf&D-%!~Da*K@?%R#Z&!_8@a=MK5rXK-Imbv%)uuF0;7JtdH}4ABj%O$rMUk9!(GSc diff --git a/static/shoping.png b/static/shoping.png index 93f8eaa71db7a41286e89b80b7ec72c66f99e0ba..907b58494ef5e82e41f237f026d5874d9446416a 100644 GIT binary patch literal 78667 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⋙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 V)r0>g)Bwv322WQ%mvv4FO#m9?#O(k8 diff --git a/static/shopingw.png b/static/shopingw.png deleted file mode 100644 index 1ea489619d46d2f9b3379739450290e75ed33961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 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