@@ -4,13 +4,13 @@ let request = new Request().http
export function getStoreActivity(data) {
- return request('/app/activity/getStoreActivity',data,'GET');
+ return request('/store/app/activity/getStoreActivity',data,'GET');
}
export function getStoreActivityDetails(data) {
- return request('/app/activity/getStoreActivityDetails',data,'GET');
+ return request('/store/app/activity/getStoreActivityDetails',data,'GET');
export function share(activityId) {
- return request('/app/activity/share?activityId='+activityId,null,'POST');
+ return request('/store/app/activity/share?activityId='+activityId,null,'POST');
@@ -2,36 +2,36 @@ import Request from '../common/request.js';
let request = new Request().http
export function getCity() {
- return request('/app/address/getCity',null,'GET');
+ return request('/store/app/address/getCity',null,'GET');
export function getCitys() {
- return request('/app/address/getCitys',null,'GET');
+ return request('/store/app/address/getCitys',null,'GET');
export function getAddressList() {
- return request('/app/address/getAddressList',null,'GET');
+ return request('/store/app/address/getAddressList',null,'GET');
export function getAddressById(data) {
- return request('/app/address/getAddressById',data,'GET');
+ return request('/store/app/address/getAddressById',data,'GET');
export function addAddress(data) {
- return request('/app/address/addAddress',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/address/addAddress',data,'POST','application/json;charset=UTF-8');
export function editAddress(data) {
- return request('/app/address/editAddress',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/address/editAddress',data,'POST','application/json;charset=UTF-8');
export function delAddress(data) {
- return request('/app/address/delAddress',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/address/delAddress',data,'POST','application/json;charset=UTF-8');
export function parseAddress(data) {
- return request('/app/address/parseAddress',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/address/parseAddress',data,'POST','application/json;charset=UTF-8');
export function delAllAddress(data) {
- return request('/app/address/delAllAddress',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/address/delAllAddress',data,'POST','application/json;charset=UTF-8');
@@ -1,6 +1,6 @@
import Request from '../common/request.js';
export function getAdv(data) {
- return request('/app/adv/getAdv',data,'GET');
+ return request('/store/app/adv/getAdv',data,'GET');
@@ -3,23 +3,23 @@ let request = new Request().http
export function getArticleCate() {
- return request('/app/article/getArticleCate',null,'GET');
+ return request('/store/app/article/getArticleCate',null,'GET');
export function getArticleList(data) {
- return request('/app/article/getArticleList',data,'GET');
+ return request('/store/app/article/getArticleList',data,'GET');
export function getArticleByArticleId(data) {
- return request('/app/article/getArticleByArticleId',data,'GET');
+ return request('/store/app/article/getArticleByArticleId',data,'GET');
export function updateView(articleId) {
- return request('/app/article/updateView?articleId='+articleId,null,'POST');
+ return request('/store/app/article/updateView?articleId='+articleId,null,'POST');
export function getArticleViewList(data) {
- return request('/app/article/getArticleViewList',data,'GET');
+ return request('/store/app/article/getArticleViewList',data,'GET');
@@ -3,33 +3,33 @@ let request = new Request().http
export function uploadOSS(data) {
- return request('/app/common/uploadOSS',data,'POST');
+ return request('/store/app/common/uploadOSS',data,'POST');
export function getTlsSig(data) {
- return request('/app/common/getTlsSig',data,'GET');
+ return request('/store/app/common/getTlsSig',data,'GET');
export function getStoreConfig() {
- return request('/app/common/getStoreConfig',null,'GET');
+ return request('/store/app/common/getStoreConfig',null,'GET');
export function getProductConfig() {
- return request('/app/common/getProductConfig',null,'GET');
+ return request('/store/app/common/getProductConfig',null,'GET');
export function getWeixinTemps() {
- return request('/app/common/getWeixinTemps',null,'GET');
+ return request('/store/app/common/getWeixinTemps',null,'GET');
export function getWeixinOrderTemps() {
- return request('/app/common/getWeixinOrderTemps',null,'GET');
+ return request('/store/app/common/getWeixinOrderTemps',null,'GET');
export function getWeixinPrescribeTemps() {
- return request('/app/common/getWeixinPrescribeTemps',null,'GET');
+ return request('/store/app/common/getWeixinPrescribeTemps',null,'GET');
export function getDictByKey(data) {
- return request('/app/common/getDictByKey',data,'GET');
+ return request('/store/app/common/getDictByKey',data,'GET');
@@ -2,33 +2,35 @@ import Request from '../common/request.js';
export function getSalesProducts(data) {
- return request('/app/companyOrder/getSalesProducts',data,'GET');
+ return request('/store/app/companyOrder/getSalesProducts',data,'GET');
export function createSalesOrder(data) {
- return request('/app/companyOrder/createSalesOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/companyOrder/createSalesOrder',data,'POST','application/json;charset=UTF-8');
export function updateSalseOrderMoney(data) {
- return request('/app/companyOrder/updateSalseOrderMoney',data,'GET' );
+ return request('/store/app/companyOrder/updateSalseOrderMoney',data,'GET' );
// 多店铺修改实付金额
export function updateSaleOrderMoney(data) {
- return request('/app/companyOrder/updateSaleOrderMoney',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/companyOrder/updateSaleOrderMoney',data,'POST','application/json;charset=UTF-8');
export function getSalesOrder(data) {
- return request('/app/companyOrder/getSalesOrder',data,'GET' );
+ return request('/store/app/companyOrder/getSalesOrder',data,'GET' );
export function getSalesOrders(data) {
- return request('/app/companyOrder/getSalesOrders',data,'GET' );
+ return request('/store/app/companyOrder/getSalesOrders',data,'GET' );
export function addUserCart(data) {
- return request('/app/companyOrder/addUserCart',data,'GET' );
+ return request('/store/app/companyOrder/addUserCart',data,'GET' );
export function editOrderMoney(data) {
- return request('/app/companyOrder/editOrderMoney',data,'GET' );
+ return request('/store/app/companyOrder/editOrderMoney',data,'GET' );
+
@@ -1,23 +1,247 @@
-
- export function login(data) {
- return request('/app/companyUser/login',data,'POST','application/json;charset=UTF-8');
- }
- export function getUserInfo(data) {
- return request('/app/companyUser/getUserInfo',data,'GET','application/json;charset=UTF-8');
- export function getQrImg(data) {
- return request('/app/companyUser/getQrImg',data,'GET','application/json;charset=UTF-8');
- export function getCompanyUserCard(data) {
- return request('/app/companyUser/getCompanyUserCard',data,'GET','application/json;charset=UTF-8');
+export function login(data) {
+ return request('/store/app/companyUser/login', data, 'POST', 'application/json;charset=UTF-8');
+}
+export function getUserInfo(data) {
+ return request('/store/app/companyUser/getUserInfo', data, 'GET', 'application/json;charset=UTF-8');
+export function getQrImg(data) {
+ return request('/store/app/companyUser/getQrImg', data, 'GET', 'application/json;charset=UTF-8');
+export function getCompanyUserCard(data) {
+ return request('/store/app/companyUser/getCompanyUserCard', data, 'GET', 'application/json;charset=UTF-8');
+//获取所有投诉类型
+export function getCategory(data) {
+ return request('/app/complaint/category', data, 'GET', 'application/json;charset=UTF-8');
+//提交投诉
+export function submitComplaint(data) {
+ return request('/app/complaint/submitComplaint', data, 'POST', 'application/json;charset=UTF-8');
+//获取投诉列表
+export function getComplaintList(data) {
+ return request('/app/complaint/list', data, 'POST', 'application/json;charset=UTF-8');
+//修改i投诉
+export function updateComplaint(id, data) {
+ return request('/app/complaint/' + id, data, 'PUT', 'application/json;charset=UTF-8');
+//投诉详情
+export function getComplaintById(data) {
+ return request('/app/complaint/' + data, data, 'GET', 'application/json;charset=UTF-8');
+//管理
+export function getAdmin(data) {
+ return request('/app/food-record/admin/list', data, 'GET', 'application/json;charset=UTF-8');
+//某日饮食列表
+export function getDayRecords(data) {
+ return request('/app/food-record/getDayRecords', data, 'GET', 'application/json;charset=UTF-8');
+//饮食列表
+export function getMyRecordList(data) {
+ return request('/app/food-record/getMyRecordList', data, 'POST', 'application/json;charset=UTF-8');
+//新增饮食
+export function addRecord(data) {
+ return request('/app/food-record/addRecord', data, 'POST', 'application/json;charset=UTF-8');
+//修改饮食
+export function editRecord(data) {
+ return request('/app/food-record/editRecord', data, 'POST', 'application/json;charset=UTF-8');
+//删除饮食
+export function deleteRecord(data) {
+ return request('/app/food-record/deleteRecord/' + data, data, 'POST', 'application/json;charset=UTF-8');
+//饮食详情
+export function getRecordInfo(data) {
+ return request('/app/food-record/getRecordInfo/' + data, data, 'GET');
+//待办列表
+export function getToDoList(data) {
+ return request('/app/todoItems/listPage', data, 'POST', 'application/json;charset=UTF-8');
+//待办事项详情
+export function getFindById(data) {
+ return request('/app/todoItems/findById', data, 'POST', 'application/json;charset=UTF-8');
+//更新详情
+export function updateById(data) {
+ return request('/app/todoItems/updateById', data, 'POST', 'application/json;charset=UTF-8');
+//商品列表
+export function getServiceList(data) {
+ return request('/app/serviceGoods/listPage', data, 'POST', 'application/json;charset=UTF-8');
+//商品详情
+export function getServiceById(data) {
+ return request('/app/serviceGoods/findById', data, 'POST', 'application/json;charset=UTF-8');
+//新增商品
+export function saveService(data) {
+ return request('/app/serviceGoods/save', data, 'POST', 'application/json;charset=UTF-8');
+//更新商品信息
+export function updateService(data) {
+ return request('/app/serviceGoods/updateById', data, 'POST', 'application/json;charset=UTF-8');
+//删除商品
+export function deleteService(data) {
+ return request('/app/serviceGoods/deleteById', data, 'POST', 'application/json;charset=UTF-8');
+//竞品列表
+export function getCompetitorList(data) {
+ return request('/app/competitorInfo/listPage', data, 'POST', 'application/json;charset=UTF-8');
+//竞品详情
+export function getCompetitorById(data) {
+ return request('/app/competitorInfo/findById', data, 'POST', 'application/json;charset=UTF-8');
+//竞品商品
+export function saveCompetitor(data) {
+ return request('/app/competitorInfo/save', data, 'POST', 'application/json;charset=UTF-8');
+//更新竞品信息
+export function updateCompetitor(data) {
+ return request('/app/competitorInfo/updateById', data, 'POST', 'application/json;charset=UTF-8');
+//删除竞品
+export function deleteCompetitor(data) {
+ return request('/app/competitorInfo/deleteById', data, 'POST', 'application/json;charset=UTF-8');
+//新增体检报告
+export function addReport(data) {
+ return request('/app/medical/report/add', data, 'POST', 'application/json;charset=UTF-8');
+//用户ID查询体检报告信息
+export function getByUserAndDate(data) {
+ return request('/app/medical/report/getByUserAndDate', data, 'GET', 'application/json;charset=UTF-8');
+//用户查询体检报告列表
+export function getUserReportList(data) {
+ return request('/app/medical/report/listByUser/' + data, data, 'GET', 'application/json;charset=UTF-8');
+//查询体检报告列表
+export function getReportList(data) {
+ return request('/app/medical/report/page', data, 'GET', 'application/json;charset=UTF-8');
+//查询体检报告详情
+export function getReportById(data) {
+ return request('/app/medical/report/' + data, data, 'GET', 'application/json;charset=UTF-8');
+//删除体检报告
+export function deleteReport(data) {
+ return request('/app/medical/report/' + data, data, 'DELETE', 'application/json;charset=UTF-8');
+//更新体检报告
+export function updateReport(data) {
+ return request('/app/medical/report/update', data, 'PUT', 'application/json;charset=UTF-8');
+//对比报告
+export function compareReport(data) {
+ return request('/app/medical/report/compareReport', data, 'POST', 'application/json;charset=UTF-8');
+//获取指定报告的指标分类
+export function getAllCateByReportId(data) {
+ return request('/app/medical/result/getAllCateByReportId', data, 'GET', 'application/json;charset=UTF-8');
+//新增指标
+export function addIndicator(data) {
+ return request('/app/medical/indicator/add', data, 'POST', 'application/json;charset=UTF-8');
+//根据分类查询指标
+export function listByCategory(data) {
+ return request('/app/medical/indicator/listByCategory', data, 'GET', 'application/json;charset=UTF-8');
+//查询所有启用的指标
+export function listEnabled(data) {
+ return request('/app/medical/indicator/listEnabled', data, 'GET', 'application/json;charset=UTF-8');
+//过滤所有启用的指标
+export function listAllEnabledByReportId(data) {
+ return request('/app/medical/indicator/listAllEnabledByReportId', data, 'GET', 'application/json;charset=UTF-8');
+//分页查询医疗指标列表
+export function getPage(data) {
+ return request('/app/medical/indicator/page', data, 'GET', 'application/json;charset=UTF-8');
+//更新指标
+export function updateIndicator(data) {
+ return request('/app/medical/indicator/update', data, 'PUT', 'application/json;charset=UTF-8');
+//根据ID查询指标详情
+export function getIndicatorById(data) {
+ return request('/app/medical/indicator/'+ data, data, 'GET', 'application/json;charset=UTF-8');
+//删除指标
+export function deleteIndicator(data) {
+ return request('/app/medical/indicator/' + data, data, 'DELETE', 'application/json;charset=UTF-8');
+//新增检查结果
+export function addResult(data) {
+ return request('/app/medical/result/add', data, 'POST', 'application/json;charset=UTF-8');
+//批量新增检查结果
+export function addBatchAdd(data) {
+ return request('/app/medical/result/batchAdd', data, 'POST', 'application/json;charset=UTF-8');
+//批量更新检查结果
+export function updateBatch(data) {
+ return request('/app/medical/result/updateBatch', data, 'POST', 'application/json;charset=UTF-8');
+//根据指标ID查询所有结果
+export function listByIndicator(data) {
+ return request('/app/medical/result/listByIndicator/'+ data, data, 'GET');
+//根据ID查询所有结果
+export function listByReport(data) {
+ return request('/app/medical/result/listByReport/'+ data, data, 'GET');
+//分页查询报告指标检查结果列表
+export function getResult(data) {
+ return request('/app/medical/result/page', data, 'GET');
+//更新检查结果
+export function updateResult(data) {
+ return request('/app/medical/result/update', data, 'PUT', 'application/json;charset=UTF-8');
+//查询检查结果详情
+export function getResultById(data) {
+ return request('/app/medical/result/'+ data, data, 'GET');
+//删除检查结果
+export function deleteResult(data) {
+ return request('/app/medical/result/'+ data, data, 'DELETE');
+//查询所有单位
+export function getListAll(data) {
+ return request('/app/medical/unit/listAll', data, 'GET');
+//新建附件
+export function addAttachment(data) {
+ return request('/app/attachment', data, 'POST', 'application/json;charset=UTF-8');
+//查询附件
+export function getAttachment(data) {
+ return request('/app/attachment/list', data, 'GET', 'application/json;charset=UTF-8');
+//删除附件
+export function deleteAttachment(data) {
+ return request('/app/attachment/'+data, data, 'DELETE');
+//工作完成百分比
+export function queryCateStatis(data) {
+ return request('/app/todoItems/queryCateStatis', data, 'GET');
@@ -2,26 +2,26 @@ import Request from '../common/request.js';
export function getCouponIssueList(data) {
- return request('/app/coupon/getCouponIssueList',data,'GET');
+ return request('/store/app/coupon/getCouponIssueList',data,'GET');
export function getCompanyCouponIssueList(data) {
- return request('/app/coupon/getCompanyCouponIssueList',data,'GET');
+ return request('/store/app/coupon/getCompanyCouponIssueList',data,'GET');
export function getCouponIssueById(data) {
- return request('/app/coupon/getCouponIssueById',data,'GET');
+ return request('/store/app/coupon/getCouponIssueById',data,'GET');
export function receive(data) {
- return request('/app/coupon/receive',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/coupon/receive',data,'POST','application/json;charset=UTF-8');
export function getMyCouponList(data) {
- return request('/app/coupon/getMyCouponList',data,'GET');
+ return request('/store/app/coupon/getMyCouponList',data,'GET');
export function getMyEnableCouponList(data) {
- return request('/app/coupon/getMyEnableCouponList',data,'GET');
+ return request('/store/app/coupon/getMyEnableCouponList',data,'GET');
@@ -2,7 +2,7 @@ import Request from '../common/request.js';
export function getDepartmentList(data) {
- return request('/app/department/getDepartmentList',data,'GET');
+ return request('/store/app/department/getDepartmentList',data,'GET');
@@ -2,10 +2,10 @@ import Request from '../common/request.js';
export function getDiseaseList(data) {
- return request('/app/disease/getDiseaseList',data,'GET');
+ return request('/store/app/disease/getDiseaseList',data,'GET');
export function getDiseaseById(data) {
- return request('/app/disease/getDiseaseById',data,'GET');
+ return request('/store/app/disease/getDiseaseById',data,'GET');
@@ -3,43 +3,43 @@ let request = new Request().http
export function getMyDocList(data) {
- return request('/app/doc/getMyDocList',data,'GET');
+ return request('/store/app/doc/getMyDocList',data,'GET');
export function getDocDetails(data) {
- return request('/app/doc/getDocDetails',data,'GET');
+ return request('/store/app/doc/getDocDetails',data,'GET');
export function addDoc(data) {
- return request('/app/doc/addDoc',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doc/addDoc',data,'POST','application/json;charset=UTF-8');
export function editDoc(data) {
- return request('/app/doc/editDoc',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doc/editDoc',data,'POST','application/json;charset=UTF-8');
export function delDoc(data) {
- return request('/app/doc/delDoc',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doc/delDoc',data,'POST','application/json;charset=UTF-8');
export function getMyDocRecordList(data) {
- return request('/app/doc/getMyDocRecordList',data,'GET');
+ return request('/store/app/doc/getMyDocRecordList',data,'GET');
export function getDocRecordReplyList(data) {
- return request('/app/doc/getDocRecordReplyList',data,'GET');
+ return request('/store/app/doc/getDocRecordReplyList',data,'GET');
export function addDocRecord(data) {
- return request('/app/doc/addDocRecord',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doc/addDocRecord',data,'POST','application/json;charset=UTF-8');
export function getMyDocOrderList() {
- return request('/app/doc/getMyDocOrderList',null,'GET');
+ return request('/store/app/doc/getMyDocOrderList',null,'GET');
export function addDocOrder(data) {
- return request('/app/doc/addDocOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doc/addDocOrder',data,'POST','application/json;charset=UTF-8');
export function getDoctorArticleList(data) {
- return request('/app/doctorArticle/getDoctorArticleList',data,'GET');
+ return request('/store/app/doctorArticle/getDoctorArticleList',data,'GET');
export function getDoctorArticleById(data) {
- return request('/app/doctorArticle/getDoctorArticleById',data,'GET');
+ return request('/store/app/doctorArticle/getDoctorArticleById',data,'GET');
@@ -5,43 +5,43 @@ let request = new Request().http
- return request('/app/doctorOrder/getDepartmentList',data,'GET');
+ return request('/store/app/doctorOrder/getDepartmentList',data,'GET');
export function getDoctorList(data) {
- return request('/app/doctorOrder/getDoctorList',data,'GET');
+ return request('/store/app/doctorOrder/getDoctorList',data,'GET');
export function getDoctorCase(data) {
- return request('/app/doctorOrder/getDoctorCase',data,'GET');
+ return request('/store/app/doctorOrder/getDoctorCase',data,'GET');
export function getMyDoctorOrderList(data) {
- return request('/app/doctorOrder/getMyDoctorOrderList',data,'GET');
+ return request('/store/app/doctorOrder/getMyDoctorOrderList',data,'GET');
export function getDoctorDetail(data) {
- return request('/app/doctorOrder/getDoctorDetail',data,'GET');
+ return request('/store/app/doctorOrder/getDoctorDetail',data,'GET');
export function getDoctorOrderDetail(data) {
- return request('/app/doctorOrder/getDoctorOrderDetail',data,'GET');
+ return request('/store/app/doctorOrder/getDoctorOrderDetail',data,'GET');
export function create(data) {
- return request('/app/doctorOrder/create',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doctorOrder/create',data,'POST','application/json;charset=UTF-8');
export function pay(data) {
- return request('/app/doctorOrder/pay',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doctorOrder/pay',data,'POST','application/json;charset=UTF-8');
export function cancelOrder(data) {
- return request('/app/doctorOrder/cancelOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doctorOrder/cancelOrder',data,'POST','application/json;charset=UTF-8');
export function pingOrder(data) {
- return request('/app/doctorOrder/pingOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/doctorOrder/pingOrder',data,'POST','application/json;charset=UTF-8');
export function getImOrderDetail(data) {
- return request('/app/doctorOrder/getImOrderDetail',data,'GET');
+ return request('/store/app/doctorOrder/getImOrderDetail',data,'GET');
@@ -3,9 +3,82 @@ let request = new Request().http
//获取咨询人员列表
export function getuserlist(data) {
- return request('/app/common/getDicts',data,'GET');
-}
+ return request('/store/app/common/getDicts', data, 'GET');
//提交咨询内容
export function submitconsult(data) {
+//获取用户列表
+export function getInfoList(data) {
+ return request('/companyapp/app/fs/userinfo/list', data, 'GET');
+//获取用户基本信息
+export function getInfo(data) {
+ return request('/companyapp/app/fs/userinfo/info', data, 'GET');
+//添加用户基本信息
+export function addInfo(data) {
+ return request('/companyapp/app/fs/userinfo/add', data, 'POST','application/json;charset=UTF-8');
+//修改用户基本信息
+export function updateInfo(data) {
+ return request('/companyapp/app/fs/userinfo/update', data, 'POST','application/json;charset=UTF-8');
+//删除用户基本信息
+export function deleteInfo(data) {
+ return request('/companyapp/app/fs/userinfo/delete', data, 'GET','application/json;charset=UTF-8');
+//获取会员分类
+export function getMember(data) {
+ return request('/companyapp/app/common/getDictByKey?key=user_member_classify', data, 'GET');
+//主页信息
+export function homeInfo(data) {
+ return request('/companyapp/app/fs/health/profile/home/info', data, 'GET');
+//健康档案主页信息
+export function getDoc(data) {
+ return request('/companyapp/app/fs/health/profile/info', data, 'GET');
+//添加健康档案信息
+export function addDoc(data) {
+ return request('/companyapp/app/fs/health/profile/add', data, 'POST','application/json;charset=UTF-8');
+//修改健康档案信息
+export function updateDoc(data) {
+ return request('/companyapp/app/fs/health/profile/update', data, 'POST','application/json;charset=UTF-8');
+//删除健康档案信息
+export function deleteDoc(data) {
+ return request('/companyapp/app/fs/health/profile/delete', data, 'GET','application/json;charset=UTF-8');
+//最新数据查询
+export function getLatest(data) {
+ return request('/companyapp/app/fs/health/data/latest/info', data, 'GET','application/json;charset=UTF-8');
+//数据新增
+export function addData(data) {
+ return request('/companyapp/app/fs/health/data/add', data, 'POST','application/json;charset=UTF-8');
+//数据列表查询
+export function getDataList(data) {
+ return request('/companyapp/app/fs/health/data/list', data, 'GET','application/json;charset=UTF-8');
+//数据更新
+export function updateData(data) {
+ return request('/companyapp/app/fs/health/data/update', data, 'POST','application/json;charset=UTF-8');
+//数据数据删除
+export function deleteData(data) {
+ return request('/companyapp/app/fs/health/data/delete', data, 'GET','application/json;charset=UTF-8');
+//数据数据详情
+export function getDataById(data) {
+ return request('/companyapp/app/fs/health/data/info', data, 'GET','application/json;charset=UTF-8');
@@ -0,0 +1,84 @@
+import Request from '../common/request.js';
+let request = new Request().http
+//获取咨询人员列表
+export function getuserlist(data) {
+//提交咨询内容
+export function submitconsult(data) {
+ return request('/app/fs/userinfo/info', data, 'GET');
+ return request('/app/fs/userinfo/add', data, 'POST','application/json;charset=UTF-8');
+ return request('/app/fs/userinfo/update', data, 'POST','application/json;charset=UTF-8');
+ return request('/app/fs/userinfo/delete', data, 'GET','application/json;charset=UTF-8');
+ return request('/app/common/getDictByKey?key=user_member_classify', data, 'GET');
+ return request('/app/fs/health/profile/home/info', data, 'GET');
+ return request('/app/fs/health/profile/info', data, 'GET');
+ return request('/app/fs/health/profile/add', data, 'POST','application/json;charset=UTF-8');
+ return request('/app/fs/health/profile/update', data, 'POST','application/json;charset=UTF-8');
+ return request('/app/fs/health/profile/delete', data, 'GET','application/json;charset=UTF-8');
+ return request('/app/fs/health/data/latest/info', data, 'GET','application/json;charset=UTF-8');
+//最新数据查询可视化
+export function getLatestList(data) {
+ return request('/app/fs/health/data/latest/list', data, 'GET','application/json;charset=UTF-8');
+ return request('/app/fs/health/data/add', data, 'POST','application/json;charset=UTF-8');
+ return request('/app/fs/health/data/list', data, 'GET','application/json;charset=UTF-8');
+ return request('/app/fs/health/data/update', data, 'POST','application/json;charset=UTF-8');
+ return request('/app/fs/health/data/delete', data, 'GET','application/json;charset=UTF-8');
+ return request('/app/fs/health/data/info', data, 'GET','application/json;charset=UTF-8');
@@ -2,62 +2,62 @@ import Request from '../common/request.js';
export function getDicts(data) {
+ return request('/store/app/common/getDicts',data,'GET');
export function getCanvas() {
- return request('/app/index/getCanvas',null,'GET');
+ return request('/store/app/index/getCanvas',null,'GET');
export function getMenu() {
- return request('/app/index/getMenu',null,'GET');
+ return request('/store/app/index/getMenu',null,'GET');
export function getIndexData(data) {
- return request('/app/index/getIndexData',data,'GET');
+ return request('/store/app/index/getIndexData',data,'GET');
export function getTuiArticle(data) {
- return request('/app/index/getTuiArticle',data,'GET');
+ return request('/store/app/index/getTuiArticle',data,'GET');
export function getTuiDoctor(data) {
- return request('/app/index/getTuiDoctor',data,'GET');
+ return request('/store/app/index/getTuiDoctor',data,'GET');
export function getTuiDoctorOrder(data) {
- return request('/app/index/getTuiDoctorOrder',data,'GET');
+ return request('/store/app/index/getTuiDoctorOrder',data,'GET');
export function getCartCount() {
- return request('/app/index/getCartCount',null,'GET');
+ return request('/store/app/index/getCartCount',null,'GET');
export function getFamousPrescribeList(data) {
- return request('/app/index/getFamousPrescribeList',data,'GET');
+ return request('/store/app/index/getFamousPrescribeList',data,'GET');
export function getFamousPrescribeById(data) {
- return request('/app/index/getFamousPrescribeById',data,'GET');
+ return request('/store/app/index/getFamousPrescribeById',data,'GET');
export function getQuestionsList(data) {
- return request('/app/index/getQuestionsList',data,'GET');
+ return request('/store/app/index/getQuestionsList',data,'GET');
export function getQuestionsById(data) {
- return request('/app/index/getQuestionsById',data,'GET');
+ return request('/store/app/index/getQuestionsById',data,'GET');
export function getMedicatedFoodList(data) {
- return request('/app/index/getMedicatedFoodList',data,'GET');
+ return request('/store/app/index/getMedicatedFoodList',data,'GET');
export function getMedicatedFoodById(data) {
- return request('/app/index/getMedicatedFoodById',data,'GET');
+ return request('/store/app/index/getMedicatedFoodById',data,'GET');
export function getVesselList(data) {
- return request('/app/index/getVesselList',data,'GET');
+ return request('/store/app/index/getVesselList',data,'GET');
export function getVesselById(data) {
- return request('/app/index/getVesselById',data,'GET');
+ return request('/store/app/index/getVesselById',data,'GET');
export function getChineseMedicineList(data) {
- return request('/app/index/getChineseMedicineList',data,'GET');
+ return request('/store/app/index/getChineseMedicineList',data,'GET');
export function getChineseMedicineById(data) {
- return request('/app/index/getChineseMedicineById',data,'GET');
+ return request('/store/app/index/getChineseMedicineById',data,'GET');
@@ -3,20 +3,20 @@ let request = new Request().http
export function getPatientList() {
- return request('/app/patient/getPatientList',null,'GET');
+ return request('/store/app/patient/getPatientList',null,'GET');
export function getPatientById(data) {
- return request('/app/patient/getPatientById',data,'GET');
+ return request('/store/app/patient/getPatientById',data,'GET');
export function addPatient(data) {
- return request('/app/patient/addPatient',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/patient/addPatient',data,'POST','application/json;charset=UTF-8');
export function editPatient(data) {
- return request('/app/patient/editPatient',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/patient/editPatient',data,'POST','application/json;charset=UTF-8');
export function delPatient(data) {
- return request('/app/patient/delPatient',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/patient/delPatient',data,'POST','application/json;charset=UTF-8');
@@ -3,9 +3,20 @@ let request = new Request().http
export function payment(data) {
- return request('/app/payment/payment',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/payment/payment',data,'POST','application/json;charset=UTF-8');
+ //余额充值套餐列表
+ export function getTemplates(data) {
+ return request('/recharge-templates/list',data,'GET');
+ }
+ //余额充值套餐详情
+ export function getTemplatesById(data) {
+ return request('/recharge-templates/'+data,data,'GET');
+ //余额充值套餐支付
+ export function toPayment(data) {
+ return request('/recharge-templates/payment',data,'POST','application/json;charset=UTF-8');
export function doPrescribe(data) {
- return request('/app/prescribe/doPrescribe',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/prescribe/doPrescribe',data,'POST','application/json;charset=UTF-8');
export function getMyPrescribeList(data) {
- return request('/app/prescribe/getMyPrescribeList',data,'GET');
+ return request('/store/app/prescribe/getMyPrescribeList',data,'GET');
@@ -3,46 +3,46 @@ let request = new Request().http
export function getProductCate(data) {
- return request('/app/product/getProductCate',data,'GET');
+ return request('/store/app/product/getProductCate',data,'GET');
export function getProductCateByPid(data) {
- return request('/app/product/getProductCateByPid',data,'GET');
+ return request('/store/app/product/getProductCateByPid',data,'GET');
export function getProducts(data) {
- return request('/app/product/getProducts',data,'GET');
+ return request('/store/app/product/getProducts',data,'GET');
export function getProductDetails(data) {
- return request('/app/product/getProductDetails',data,'GET');
+ return request('/store/app/product/getProductDetails',data,'GET');
export function getCarts(data) {
- return request('/app/product/getCarts',data,'GET');
+ return request('/store/app/product/getCarts',data,'GET');
export function addCart(data) {
- return request('/app/product/addCart',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/product/addCart',data,'POST','application/json;charset=UTF-8');
export function delCart(data) {
- return request('/app/product/delCart',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/product/delCart',data,'POST','application/json;charset=UTF-8');
export function cartNum(data) {
- return request('/app/product/cartNum',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/product/cartNum',data,'POST','application/json;charset=UTF-8');
export function getCartCount(data) {
- return request('/app/product/getCartCount',data,'GET');
+ return request('/store/app/product/getCartCount',data,'GET');
export function getGoodsProduct() {
- return request('/app/product/getGoodsProduct',null,'GET');
+ return request('/store/app/product/getGoodsProduct',null,'GET');
export function getGoodsProducts(data) {
- return request('/app/product/getGoodsProducts',data,'GET');
+ return request('/store/app/product/getGoodsProducts',data,'GET');
export function getTuiProducts(data) {
- return request('/app/product/getTuiProducts',data,'GET');
+ return request('/store/app/product/getTuiProducts',data,'GET');
export function getStoreProductAttrValueList(data) {
- return request('/app/product/getStoreProductAttrValueList',data,'GET');
+ return request('/store/app/product/getStoreProductAttrValueList',data,'GET');
export function getProductStoreStock(data) {
@@ -50,8 +50,6 @@ let request = new Request().http
@@ -3,6 +3,12 @@ let request = new Request().http
// 获取门店详情
export function getStoreById(data) {
- return request('/app/store/getStoreById',data,'GET');
+ return request('/store/app/store/getStoreById',data,'GET');
+ // 获取门店详情新
+ export function getNewStoreById(data) {
+ return request('/store/app/store/'+data,data,'GET');
+ export function getIndexData(data) {
@@ -2,24 +2,24 @@ import Request from '../common/request.js';
export function getMyStoreOrderItemByOrderId(data) {
- return request('/app/storeAfterSales/getMyStoreOrderItemByOrderId',data,'GET');
+ return request('/store/app/storeAfterSales/getMyStoreOrderItemByOrderId',data,'GET');
export function applyAfterSales(data) {
- return request('/app/storeAfterSales/applyAfterSales',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeAfterSales/store/applyAfterSales',data,'POST','application/json;charset=UTF-8');
export function getAfterSalesList(data) {
- return request('/app/storeAfterSales/getAfterSalesList',data,'GET');
+ return request('/store/app/storeAfterSales/getAfterSalesList',data,'GET');
export function getAfterSalesDetails(data) {
- return request('/app/storeAfterSales/getAfterSalesDetails',data,'GET');
+ return request('/store/app/storeAfterSales/getAfterSalesDetails',data,'GET');
export function revoke(data) {
- return request('/app/storeAfterSales/revoke',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeAfterSales/revoke',data,'POST','application/json;charset=UTF-8');
export function addDelivery(data) {
- return request('/app/storeAfterSales/addDelivery',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeAfterSales/addDelivery',data,'POST','application/json;charset=UTF-8');
@@ -3,88 +3,88 @@ let request = new Request().http
export function getMyStoreOrderList(data) {
- return request('/app/storeOrder/getMyStoreOrderList',data,'GET');
+ return request('/store/app/storeOrder/getMyStoreOrderList',data,'GET');
export function getCompanyStoreOrderList(data) {
- return request('/app/storeOrder/getCompanyStoreOrderList',data,'GET');
+ return request('/store/app/storeOrder/getCompanyStoreOrderList',data,'GET');
export function getMyStoreOrderById(data) {
- return request('/app/storeOrder/getMyStoreOrderById',data,'GET');
+ return request('/store/app/storeOrder/getMyStoreOrderById',data,'GET');
export function getStoreOrderById(data) {
- return request('/app/storeOrder/getStoreOrderById',data,'GET');
+ return request('/store/app/storeOrder/getStoreOrderById',data,'GET');
export function getStoreOrderByCombinationId(data) {
- return request('/app/storeOrder/getStoreOrderByCombinationId',data,'GET');
+ return request('/store/app/storeOrder/getStoreOrderByCombinationId',data,'GET');
export function otherPaymentByCombinationId(data) {
- return request('/app/storeOrder/otherPaymentByCombinationId',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/otherPaymentByCombinationId',data,'POST','application/json;charset=UTF-8');
export function confirm(data) {
- return request('/app/storeOrder/confirm',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/confirm',data,'POST','application/json;charset=UTF-8');
export function computed(data) {
- return request('/app/storeOrder/computed',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/computed',data,'POST','application/json;charset=UTF-8');
- return request('/app/storeOrder/create',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/create',data,'POST','application/json;charset=UTF-8');
- return request('/app/storeOrder/pay',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/pay',data,'POST','application/json;charset=UTF-8');
export function payByCombinationId(data) {
- return request('/app/storeOrder/payByCombinationId',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/payByCombinationId',data,'POST','application/json;charset=UTF-8');
export function editPayType(data) {
- return request('/app/storeOrder/editPayType',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/editPayType',data,'POST','application/json;charset=UTF-8');
export function editPayTypeByCombinationId(data) {
- return request('/app/storeOrder/editPayTypeByCombinationId',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/editPayTypeByCombinationId',data,'POST','application/json;charset=UTF-8');
export function payRemain(data) {
- return request('/app/storeOrder/payRemain',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/payRemain',data,'POST','application/json;charset=UTF-8');
export function otherPayment(data) {
- return request('/app/storeOrder/otherPayment',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/otherPayment',data,'POST','application/json;charset=UTF-8');
export function otherPaymentRemain(data) {
- return request('/app/storeOrder/otherPaymentRemain',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/otherPaymentRemain',data,'POST','application/json;charset=UTF-8');
- return request('/app/storeOrder/cancelOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/cancelOrder',data,'POST','application/json;charset=UTF-8');
export function finishOrder(data) {
- return request('/app/storeOrder/finishOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/finishOrder',data,'POST','application/json;charset=UTF-8');
export function getExpress(data) {
- return request('/app/storeOrder/getExpress',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/getExpress',data,'POST','application/json;charset=UTF-8');
export function confirmPackageOrder(data) {
- return request('/app/storeOrder/confirmPackageOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/confirmPackageOrder',data,'POST','application/json;charset=UTF-8');
export function computedPackageOrder(data) {
- return request('/app/storeOrder/computedPackageOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/computedPackageOrder',data,'POST','application/json;charset=UTF-8');
export function createPackageOrder(data) {
- return request('/app/storeOrder/createPackageOrder',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/storeOrder/createPackageOrder',data,'POST','application/json;charset=UTF-8');
export function getOrderCount() {
- return request('/app/storeOrder/getOrderCount',null,'GET');
+ return request('/store/app/storeOrder/getOrderCount',null,'GET');
@@ -2,11 +2,11 @@ import Request from '../common/request.js';
export function getStoreProductPackage(data) {
- return request('/app/storeProductPackage/getStoreProductPackage',data,'GET');
+ return request('/store/app/storeProductPackage/getStoreProductPackage',data,'GET');
export function getStoreProductPackageDetails(data) {
- return request('/app/storeProductPackage/getStoreProductPackageDetails',data,'GET');
+ return request('/store/app/storeProductPackage/getStoreProductPackageDetails',data,'GET');
@@ -2,23 +2,23 @@ import Request from '../common/request.js';
export function getTestList(data) {
- return request('/app/test/getTestList',data,'GET');
+ return request('/store/app/test/getTestList',data,'GET');
export function getTestDetails(data) {
- return request('/app/test/getTestDetails',data,'GET');
+ return request('/store/app/test/getTestDetails',data,'GET');
export function getTestTempDetails(data) {
- return request('/app/test/getTestTempDetails',data,'GET');
+ return request('/store/app/test/getTestTempDetails',data,'GET');
export function getTestReport(data) {
- return request('/app/test/getTestReport',data,'GET');
+ return request('/store/app/test/getTestReport',data,'GET');
export function getTestReportImg(data) {
- return request('/app/test/getTestReportImg',data,'GET');
+ return request('/store/app/test/getTestReportImg',data,'GET');
export function doReport(data) {
- return request('/app/test/doReport',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/test/doReport',data,'POST','application/json;charset=UTF-8');
@@ -2,59 +2,59 @@ import Request from '../common/request.js';
export function loginByMiniApp(data) {
- return request('/app/wx/loginByMiniApp',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/wx/loginByMiniApp',data,'POST','application/json;charset=UTF-8');
export function loginByMp(data) {
- return request('/app/wx/loginByMp',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/wx/loginByMp',data,'POST','application/json;charset=UTF-8');
export function getUserInfo() {
- return request('/app/user/getUserInfo',null,'GET');
+ return request('/store/app/user/getUserInfo',null,'GET');
export function editUser(data) {
- return request('/app/user/editUser',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/user/editUser',data,'POST','application/json;charset=UTF-8');
export function getWeixinInfo(data) {
- return request('/app/wx/getWeixinInfo',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/wx/getWeixinInfo',data,'POST','application/json;charset=UTF-8');
export function checkLogin() {
- return request('/app/user/checkLogin',null,'GET');
+ return request('/store/app/user/checkLogin',null,'GET');
export function getTuiImg() {
- return request('/app/user/getTuiImg',null,'GET');
+ return request('/store/app/user/getTuiImg',null,'GET');
export function getMyTuiOrderList(data) {
- return request('/app/user/getMyTuiOrderList',data,'GET');
+ return request('/store/app/user/getMyTuiOrderList',data,'GET');
export function getTuiMoney() {
- return request('/app/user/getTuiMoney',null,'GET');
+ return request('/store/app/user/getTuiMoney',null,'GET');
export function getMyTuiList(data) {
- return request('/app/user/getMyTuiList',data,'GET');
+ return request('/store/app/user/getMyTuiList',data,'GET');
export function getTuiMoneyLogs(data) {
- return request('/app/user/getTuiMoneyLogs',data,'GET');
+ return request('/store/app/user/getTuiMoneyLogs',data,'GET');
export function getProductFoots(data) {
- return request('/app/user/getProductFoots',data,'GET');
+ return request('/store/app/user/getProductFoots',data,'GET');
export function delProductFoots(data) {
- return request('/app/user/delProductFoots',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/user/delProductFoots',data,'POST','application/json;charset=UTF-8');
export function doExtract(data) {
- return request('/app/user/doExtract',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/user/doExtract',data,'POST','application/json;charset=UTF-8');
export function getExtractList(data) {
- return request('/app/user/getExtractList',data,'GET');
+ return request('/store/app/user/getExtractList',data,'GET');
export function applyPromoter(data) {
- return request('/app/user/applyPromoter',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/user/applyPromoter',data,'POST','application/json;charset=UTF-8');
export function bindPromoter(data) {
- return request('/app/user/bindPromoter',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/user/bindPromoter',data,'POST','application/json;charset=UTF-8');
@@ -67,5 +67,4 @@ let request = new Request().http
@@ -3,14 +3,14 @@ let request = new Request().http
export function getUserSign() {
- return request('/app/sign/getUserSign',null,'GET');
+ return request('/store/app/sign/getUserSign',null,'GET');
export function getIntegral(data) {
- return request('/app/sign/getIntegral',data,'GET');
+ return request('/store/app/sign/getIntegral',data,'GET');
export function doSign(data) {
- return request('/app/sign/sign',data,'POST','application/json;charset=UTF-8');
+ return request('/store/app/sign/sign',data,'POST','application/json;charset=UTF-8');
@@ -3,9 +3,11 @@ export default class Request {
http(router, data = {}, method,contentType) {
let that = this;
// let path = 'http://localhost:7014';
- let path = 'https://api.qinggetai.com';
- //let path = "http://d7zwsx.natappfree.cc"
- //let path = "http://taf8642b.natappfree.cc/store"
+ let path = 'https://user.test.ylrztop.com/api';
+ // let path = 'http://d7zwsx.natappfree.cc';
+ // let path = "http://d7zwsx.natappfree.cc"
+ // let path = "https://api.qinggetai.com"
+ // console.log(router,'router')
uni.setStorageSync('requestPath',path)
// uni.showLoading({
// title: '加载中'
@@ -43,7 +43,7 @@
<view class="date-tr" v-for="(i,index) in dates" :key="index">
- <view v-for="(j,k) in i" :key="k" :style="{color:j[0]}" :class="j[2]=='#008FD3'?'td active':'td'" @click="itemChose(j,index,k)">{{j[1]}}</view>
+ <view v-for="(j,k) in i" :key="k" :style="{color:(k==0||k==6)&&j[0]!=='#BBBBBB'?'#FF7700':j[0]}" :class="j[2]=='#008FD3'?'td active':'td'" @click="itemChose(j,index,k)">{{j[1]}}</view>
</view>
<view class="btn-box">
<view class="sub-btn" @click="submit()">
@@ -194,7 +194,6 @@ import config from '../../uni_modules/uview-ui/libs/config/config';
- console.log(this.dates,'array')
},
//计算当月的天数和上个月的天数
@@ -446,12 +445,12 @@ import config from '../../uni_modules/uview-ui/libs/config/config';
font-weight: 400;
color: #222222;
text-align: center;
- // &:first-child{
- // color: #FF7700;
- // }
- // &:last-child{
+ &:first-child{
+ color: #FF7700;
+ &:last-child{
.date-tr{
@@ -1,181 +0,0 @@
-<template>
- <view>
- <view class="like-title">
- <image src="/static/images/tui.png" mode=""></image>
- <text class="text">精选药品</text>
- </view>
- <view class="like-list">
- <view class="item" v-for="(item,index) in list" :key="index" @click="showProduct(item)">
- <view class="img-box">
- <image :src="item.image" mode=""></image>
- <view class="info-box">
- <view class="title ellipsis2">{{ item.productName }}</view>
- <view class="price-box">
- <view class="now">
- <text class="unit">¥</text>
- <text class="num">{{item.price.toFixed(2)}}</text>
- <view class="old">¥{{item.otPrice.toFixed(2)}}</view>
- <Loading :loaded="loaded" :loading="loading"></Loading>
-</template>
-<script>
- import {getTuiProducts} from '@/api/product'
- import Loading from "@/components/Loading";
- export default {
- components: {Loading },
- name: "likeProduct",
- data() {
- return {
- page:{
- page: 1,
- pageSize: 10
- },
- total:0,
- list:[],
- loaded: false,
- loading: false
- };
- created() {
- mounted() {
- this.getTuiProducts();
- methods: {
- getTuiProducts(){
- console.log(1)
- var that=this;
- if (that.loaded == true || that.loading == true) return;
- that.loading = true;
- uni.showLoading({
- title:"加载中..."
- })
- getTuiProducts(that.page).then(
- res => {
- if(res.code==200){
- that.total=res.data.total;
- that.list.push.apply(that.list, res.data.list);
- that.loading = false;
- that.loaded = that.list.length<that.total?false:true;
- that.page.page = that.page.page + 1;
- uni.hideLoading()
- err => {
- uni.showToast({
- title: err.msg ,
- icon: 'none',
- duration: 2000
- });
- );
- showProduct(item){
- uni.navigateTo({
- url: '/pages/shopping/productDetails?productId='+item.productId
-</script>
-<style lang="scss">
- .like-title{
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 15upx 0rpx 30upx 0rpx;
- image{
- width: 37upx;
- height: 37upx;
- margin-right: 20upx;
- .text{
- font-size: 36upx;
- font-family: PingFang SC;
- font-weight: bold;
- color: #111111;
- line-height: 1;
- .like-list{
- flex-wrap: wrap;
- .item{
- margin-right: 20rpx;
- margin-bottom: 20rpx;
- width: 345rpx;
- background: #FFFFFF;
- box-shadow: 0px 0px 10rpx 4rpx rgba(199, 199, 199, 0.22);
- border-radius: 20rpx;
- overflow: hidden;
- &:nth-child(2n) {
- margin-right: 0;
- .img-box{
- width: 100%;
- height: 334upx;
- height: 100%;
- .info-box{
- box-sizing: border-box;
- height: 182upx;
- padding: 20upx 20upx 30upx;
- flex-direction: column;
- justify-content: space-between;
- .title{
- font-size: 26upx;
- font-weight: 500;
- line-height: 40upx;
- .price-box{
- align-items: flex-end;
- .now{
- .unit{
- font-size: 24upx;
- color: #FF6633;
- line-height: 1.2;
- margin-right: 4upx;
- .num{
- .old{
- text-decoration: line-through;
- color: #BBBBBB;
- line-height: 1.1;
-</style>
@@ -0,0 +1,361 @@
+<template>
+ <scroll-view scroll-y :show-scrollbar="showScrollBar" class="w-drag-sorts-scroll" :style="{height: scrollBoxPxHeight+'px'}">
+ <view class="w-drag-sorts" :style="{height: boxHeight+'px'}" :class="{'inited':inited}">
+ <view class="w-drag-sorts-item" v-for="(vo,i) in newList" :key="i"
+ :style="{'top': vo.__top + 'px', ...finallyItemStyles}"
+ :class="{'draging':currentIndex == i}" @longpress="onRemove(i)" @click="navTo(i)">
+ <view class="align-center">
+ <view class="ctrl"
+ v-if="showDragCtrl"
+ @touchmove.stop.prevent
+ @touchstart="onTouchstart($event, i)"
+ @touchmove="onTouchmove"
+ @touchend="onTouchend"
+ >
+ <!-- <image class="icon" :src="ctrlIcon" /> -->
+ <image class="w32 h32" src="@/static/images/user/drag_icon.png"></image>
+ </view>
+ <view class="text">
+ {{vo.indicatorName}}
+ <!-- <view class="content2"> -->
+ <view v-if="isRemove==true" class="item-icon" @click.stop="onDisabledClick(i,vo)" >
+ <!-- <image class="icon" :src="vo.icon"/> -->
+ <image class="w40 h40" src="@/static/images/user/remove_icon.png"></image>
+ <view v-if="isAdd==true" class="item-icon" @click.stop="onAddClick(i,vo)">
+ <image class="w40 h40" src="@/static/images/user/remove_add_icon.png"></image>
+ <!-- </view> -->
+ </scroll-view>
+</template>
+<script>
+ export default {
+ name: "wDragSorts",
+ props: {
+ //列表数据
+ listData: {
+ type: Array,
+ default: () => []
+ },
+ //列表项高度
+ itemHeight: {
+ type: Number,
+ default: 80
+ //列表内边距,
+ itemStyles: {
+ type: Object,
+ default: () => {
+ return {};
+ //控制图标
+ ctrlIcon:{
+ type:String,
+ default:'/static/images/user/drag_icon.png'
+ //是否显示拖动控制器
+ showDragCtrl:{
+ type:Boolean,
+ default: true,
+ //滚动去高度,如果单位rpx,如果不设置,内容容器高度一致
+ scrollBoxHeight:{
+ default:-1
+ //是否显示删除图标
+ isRemove:{
+ //是否显示新增图标
+ isAdd:{
+ data() {
+ return {
+ newList: [],
+ //当前列表项的下标
+ currentIndex: -1,
+ //记录拖动位置
+ moveY: 0,
+ //拖动状态
+ draging: false,
+ //初始化完成
+ inited:false,
+ computed:{
+ itemPxHeight(){
+ return uni.rpx2px(this.itemHeight);
+ boxHeight(){
+ return this.itemPxHeight * this.listData.length;
+ finallyItemStyles(){
+ return { ...(this.itemStyles || {}), height: this.itemHeight+'rpx'}
+ scrollBoxPxHeight(){
+ if( this.scrollBoxHeight < 0 ){
+ return this.boxHeight
+ }else{
+ let _height = uni.rpx2px(this.scrollBoxHeight);
+ if( _height > this.boxHeight ){
+ _height = this.boxHeight
+ return _height;
+ showScrollBar(){
+ return (this.boxHeight - this.scrollBoxPxHeight) > 10;
+ watch:{
+ showScrollBar:{
+ handler(v){
+ console.log(v)
+ immediate:true
+ listData:{
+ this.listData=v
+ this.init()
+ created() {
+ mounted() {
+ methods: {
+ init() {
+ this.inited = false;
+ this.newList = this.listData.map(vo => {
+ ...vo,
+ __top: 0,
+ __height: 0,
+ __otop: 0
+ });
+ // console.log(this.listData,'888')
+ // #ifdef MP-WEIXIN
+ const selector = uni.createSelectorQuery().in(this);
+ // #endif
+ // #ifndef MP-WEIXIN
+ const selector = uni.createSelectorQuery();
+ this.$nextTick(() => {
+ selector.selectAll('.w-drag-sorts-item').fields({
+ rect: true,
+ size: true,
+ }, nodeItem => {
+ nodeItem.forEach((item, index) => {
+ const top = item.height * index;
+ this.$set(this.newList, index, {
+ ...this.newList[index],
+ __height: item.height,
+ __top: top,
+ __otop: top
+ this.inited = true;
+ }).exec();
+ onTouchstart(e, i) {
+ const pageY = e.touches[0]?.pageY || 0;
+ // 记录当前拖动元素的下标
+ this.currentIndex = i;
+ // 记录拖动前的位置
+ this.moveY = pageY
+ onTouchmove(e) {
+ const index = this.currentIndex;
+ //列表项替换的阈值,如果移动的位置大于上下项的一半就执行位置占位操作
+ const currentItem = this.newList[index];
+ const changeVar = currentItem?.__height / 2;
+ //判断上下移动的边界
+ let newTop = this.newList[index].__top + (pageY - this.moveY);
+ const max = currentItem?.__height * (this.newList.length - 1);
+ if (newTop < 0) {
+ newTop = 0;
+ if (newTop > max) {
+ newTop = max;
+ // 设置被拖动项最新的位置
+ this.newList[index].__top = newTop;
+ // 记录位置
+ this.moveY = pageY;
+ // 向下拖动
+ if (currentItem.__top >= this.newList[index + 1]?.__top - changeVar) {
+ this.moveChange(1);
+ // 向上拖动
+ if (currentItem.__top <= this.newList[index - 1]?.__top + changeVar) {
+ this.moveChange(-1);
+ moveChange(addValue) {
+ if (this.draging) {
+ return
+ this.draging = true
+ let currentItem = this.newList[index];
+ const newIndex = index + addValue;
+ //取出被替换项的位置,等交换完位置之后,给当前列表项
+ const changeItemOTop = this.newList[newIndex].__otop;
+ //交换位置
+ this.newList[index] = this.newList[newIndex];
+ this.newList[newIndex] = currentItem;
+ //把当前项的位置给被替换的列表项
+ this.newList[index].__top = currentItem.__otop;
+ this.newList[index].__otop = currentItem.__otop;
+ //由于当前列表项的top一直在改变,所以这里只需要把被替换列表项的原有位置给当前列表项
+ //等到停止拖动再把这个被替换项的位置赋给当前项的top
+ this.newList[newIndex].__otop = changeItemOTop;
+ this.currentIndex = newIndex;
+ this.draging = false;
+ onTouchend(e) {
+ this.newList[index].__top = this.newList[index].__otop;
+ this.currentIndex = -1;
+ const returnData = this.getReturnData();
+ this.$emit('draged', [...returnData]);
+ //返回移除操作附加属性的列表数据
+ getReturnData(){
+ const tmp = JSON.parse(JSON.stringify(this.newList));
+ tmp.map(vo => {
+ for (let key in vo) {
+ if (key.indexOf('__') == 0) {
+ delete vo[key];
+ })
+ return tmp;
+ navTo(i){
+ const item = this.getReturnData()[i]
+ this.$emit("navClick",i, item);
+ //长按删除
+ onRemove( i ){
+ console.log(i,'1')
+ this.$emit("itemRemoveClick",i, item);
+ //禁用
+ onDisabledClick( i ){
+ this.$emit("itemDisabledClick",i, item);
+ //启用
+ onAddClick( i ){
+ this.$emit("itemAddClick",i, item);
+ //列表项图标点击事件点击
+ onItemIconClick( i ){
+ this.$emit("itemIconClick",i, item);
+</script>
+<style scoped lang="scss">
+ @mixin iconSize {
+ width: 48rpx;
+ height: 48rpx;
+ .w-drag-sorts {
+ width: 100%;
+ position: relative;
+ z-index: 1;
+ height: auto;
+ .icon {
+ @include iconSize();
+ &.inited>&-item{
+ position: absolute;
+ &-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ box-sizing: border-box;
+ background-color: #fff;
+ padding: 0 30rpx;
+ border-bottom: 0 !important;
+ &.draging {
+ box-shadow: 0 0px 30rpx #ddd;
+ .text{
+ margin-left: 20rpx;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ font-size: 32rpx;
+ color: #222426;
+ text-align: left;
+ .item-icon{
+ // .content2 {
+ // flex:1;
+ // height: 100%;
+ // display: flex;
+ // align-items: center;
+ // }
+ .ctrl {
+ width: 32rpx;
+ height: 32rpx;
+</style>
@@ -50,7 +50,7 @@
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
- "appid" : "wx29d26f63f836be7f",
+ "appid" : "wxd56333375d59f1b8",
"lazyCodeLoading" : "requiredComponents",
"setting" : {
"urlCheck" : false,
@@ -567,6 +567,16 @@
"enablePullDownRefresh": false
+ ,{
+ "path" : "user/pointsMall",
+ "style" :
+ {
+ "navigationBarTitleText": "积分商城",
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
,{
"path" : "user/refundOrderList",
@@ -841,6 +851,159 @@
+ },{
+ "path" : "recharge/index",
+ "navigationBarTitleText": "充值",
+ "app-plus": {
+ "titleNView": false
+ "path" : "recharge/detail",
+ "navigationBarTitleText": "充值详情",
+ "path" : "user/addInformation",
+ "navigationBarTitleText": "体检信息",
+ "path" : "user/information",
+ "path" : "user/reportList",
+ "navigationBarTitleText": "体检报告列表",
+ "path" : "user/dataAnalysis",
+ "navigationBarTitleText": "数据分析",
+ "path" : "user/batchRecord",
+ "navigationBarTitleText": "批量记录",
+ "path" : "user/editIndicator",
+ "navigationBarTitleText": "编辑指标",
+ "path" : "user/addIndicator",
+ "navigationBarTitleText": "新增指标",
+ "path" : "user/addResult",
+ "navigationBarTitleText": "检查结果",
+ "path" : "user/myFolder",
+ "navigationBarTitleText": "我的附件",
+ "path" : "user/default",
+ "navigationBarTitleText": "默认",
+ "path" : "user/dietList",
+ "navigationBarTitleText": "饮食列表",
+ "path" : "user/dietDetail",
+ "navigationBarTitleText": "饮食详情",
+ "path": "user/complaint",
+ "style": {
+ "navigationBarTitleText": "投诉反馈",
]
@@ -885,6 +1048,33 @@
+ "path": "todoDetail",
+ "navigationBarTitleText": "事项详情",
+ "path": "complaintList",
+ "navigationBarTitleText": "投诉列表",
+ "path": "complaintDetail",
+ "navigationBarTitleText": "投诉详情",
{
"path": "clientDetail",
"style": {
@@ -894,6 +1084,60 @@
+ "path": "doc",
+ "navigationBarTitleText": "添加用户信息",
+ "path": "addUser",
+ "navigationBarTitleText": "用户信息",
+ "path": "addDoc",
+ "navigationBarTitleText": "健康档案",
+ "path": "buyOrder",
+ "navigationBarTitleText": "购买信息",
+ "path": "addServe",
+ "navigationBarTitleText": "商品信息",
+ "path": "addCompetitors",
+ "navigationBarTitleText": "竟品信息",
"path": "executionRecord",
@@ -1208,16 +1452,6 @@
- {
- "path": "ConsultationDetails",
- "style": {
- "navigationBarTitleText": "病例描述",
- "enablePullDownRefresh": false,
- "app-plus": {
- "titleNView": false
"path": "healthfiles",
@@ -1230,9 +1464,9 @@
- "path": "doc",
+ "path": "ConsultationDetails",
- "navigationBarTitleText": "添加用户信息",
+ "navigationBarTitleText": "病例描述",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
@@ -1257,36 +1491,6 @@
- "path": "buyOrder",
- "navigationBarTitleText": "购买信息",
- "path": "addServe",
- "navigationBarTitleText": "商品信息",
- "path": "addCompetitors",
- "navigationBarTitleText": "竞品信息",
},{
@@ -134,6 +134,7 @@ export default {
uni.showLoading({
title:"处理中..."
})
+ console.log(e,"e")
if (e.mp.detail.errMsg == 'getPhoneNumber:ok') {
this.utils.getProvider()
.then(provider => {
@@ -2,7 +2,7 @@
<view class="content">
[[]]
<view class="loadding" v-if="loadding==true">
- <image src="/static/images/logo.png"></image>
+ <image src="https://user.test.ylrztop.com/images/logo.png"></image>
<text class="text">壹柒玖康养集团</text>
@@ -276,7 +276,7 @@
display: flex;
justify-items: center;
align-items: center;
- box-shadow: 2rpx 2rpx 2rpx 2rpx rgba(0, 0, 0, 0.1);
+ // box-shadow: 2rpx 2rpx 2rpx 2rpx rgba(0, 0, 0, 0.1);
text{
transform: skew(8deg);
display: block;
@@ -1,7 +1,7 @@
<template>
<!-- 背景图片 -->
- <image class="bg" src="../../static/images/home_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/home_top_bg.png" mode="widthFix"></image>
<view>
<view class="top-inner">
<view class="fixed-top-box" :style="{ background: bgColor }">
@@ -68,7 +68,7 @@
<view class="online-inquiry">
<!-- <view class="item" @click="navTo('/pages/doctor/doctorQr')"> -->
<view class="item" @click="navTo('/pages_health/healthConsulting')">
- <image class="bg-img" src="../../static/images/online_treat.png" mode="aspectFill"></image>
+ <image class="bg-img" src="https://user.test.ylrztop.com/images/online_treat.png" mode="aspectFill"></image>
<view class="inner">
<text class="title">健康<text class="color-pink">咨询</text></text>
<text class="sub-title">三师在线服务</text>
@@ -76,7 +76,7 @@
<!-- <view class="item" @click="goAuthUrl('/pages_user/user/prescribeOrder')"> -->
<view class="item" @click="navTo('/pages_health/healthfiles')">
- <image class="bg-img" src="../../static/images/chu_query.png" mode="aspectFill"></image>
+ <image class="bg-img" src="https://user.test.ylrztop.com/images/chu_query.png" mode="aspectFill"></image>
<text class="title">健康<text class="color-yellow">专管</text></text>
<text class="sub-title">糖尿病/体重</text>
@@ -517,7 +517,7 @@
import Menu from '@/components/Menu.vue'
import HotProduct from './components/HotProduct.vue'
import NewProduct from './components/NewProduct.vue'
- import TuiProduct from '@/components/tuiProduct.vue'
+ // import TuiProduct from '@/components/tuiProduct.vue'
import {
getUserInfo,
bindPromoter
@@ -528,8 +528,7 @@
freeAudio,
Menu,
HotProduct,
- NewProduct,
- TuiProduct
+ NewProduct
data() {
return {
@@ -697,7 +696,7 @@
title: '壹柒玖康养集团-您的专属健康解决方案',
path: `/pages/common/launch`,
- imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
+ imageUrl: 'https://user.test.ylrztop.com/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
onReachBottom() {
@@ -709,7 +708,7 @@
query: '', //页面参数
computed: {
@@ -732,7 +731,7 @@
this.getStoreConfig();
//this.getTuiDoctor()
- this.getCanvas();
+ // this.getCanvas();
this.getDoctorArticleList();
this.getArticleList();
@@ -69,7 +69,7 @@
noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
textNoMore:"已经到底了",
empty: {
- icon:'/static/images/empty_icon.png',
+ icon:'https://user.test.ylrztop.com/images/empty_icon.png',
tip: '暂无数据'
@@ -61,7 +61,7 @@
title: this.item.medicineName,
path: '/pages_index/chineseMedicineDetails?id='+this.id,
@@ -71,7 +71,7 @@
if(this.utils.isLogin()){
title: this.item.title,
@@ -45,7 +45,7 @@
title: this.item.diseaseName,
path: '/pages_index/diseaseDetails?id='+this.diseaseId,
@@ -55,7 +55,7 @@
@@ -62,7 +62,7 @@
title: this.item.prescribeName,
path: '/pages_index/famousPrescribeDetails?id='+this.id,
@@ -39,7 +39,7 @@
title: this.item.foodName,
path: '/pages_index/medicatedFoodDetails?id='+this.id,
@@ -49,7 +49,7 @@
@@ -78,7 +78,7 @@
@@ -36,7 +36,7 @@
title: this.item.vesselName,
path: '/pages_index/questionsDetails?id='+this.id,
@@ -46,7 +46,7 @@
@@ -135,7 +135,7 @@
title: "健康体质检测",
path: '/pages_index/test?tempId='+this.tempId,
@@ -145,7 +145,7 @@
<view class="bg-box">
- <image src="/static/images/71014b69fdcc4b56ae2a84bdc28f11c3.png"></image>
+ <image src="https://user.test.ylrztop.com/images/71014b69fdcc4b56ae2a84bdc28f11c3.png"></image>
<view class="title-box">
<view class="title">
{{item.name}}
title: "健康自测",
path: '/pages_index/testDetails?tempId='+this.tempId,
@@ -56,7 +56,7 @@
<view class="bg">
- <image src="/static/images/8e52ab17eabc4534b3ce56026fd5c624.jpg"></image>
+ <image src="https://user.test.ylrztop.com/images/8e52ab17eabc4534b3ce56026fd5c624.jpg"></image>
<mescroll-body top="0rpx" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
<view class="test-list">
@@ -47,7 +47,7 @@
@@ -63,7 +63,7 @@
path: '/pages_index/testList',
@@ -73,7 +73,7 @@
<view class="cont">
- <image src="/static/images/8e52ab17eabc4534b3ce56026fd5c624.jpg" ></image>
+ <image src="https://user.test.ylrztop.com/images/8e52ab17eabc4534b3ce56026fd5c624.jpg" ></image>
<view class="cont-box" v-if="report!=null">
<view class="user">
@@ -41,7 +41,7 @@
path: '/pages_index/vesselDetails?id='+this.id,
@@ -51,7 +51,7 @@
@@ -306,7 +306,7 @@
justify-content: center;
&.active .label{
- color: #0bb3f2;
+ color: #008FD3;
.label{
font-size: 26upx;
@@ -145,8 +145,8 @@
<div class="coupon-list" v-if="couponsList.length > 0">
<div class="item acea-row row-center-wrapper" v-for="(item, index) in couponsList" :key="index">
<div class="money" >
- <image v-if="item.status==0" class="img" src="../../static/images/coupon1.png" mode="widthFix"></image>
- <image v-if="item.status!=0" class="img" src="../../static/images/coupon2.png" mode="widthFix"></image>
+ <image v-if="item.status==0" class="img" src="https://user.test.ylrztop.com/images/coupon1.png" mode="widthFix"></image>
+ <image v-if="item.status!=0" class="img" src="https://user.test.ylrztop.com/images/coupon2.png" mode="widthFix"></image>
<div style="z-index: 999;">
¥<span class="num">{{ item.couponPrice }}</span>
</div>
@@ -91,8 +91,8 @@
@@ -189,7 +189,7 @@
title: "帮TA支付",
path: '/pages_user/user/otherPaymentOrder?orderId='+this.orderId + combinationOrderId,
@@ -230,7 +230,7 @@
title: "填写处方信息",
path: "/pages/shopping/prescribe?orderId="+this.prescribeOrder + combinationOrderId,
</view> -->
<!-- 健康师 -->
- <view class="tech-pBox" style="margin-top: 20rpx;">
+ <!-- <view class="tech-pBox" style="margin-top: 20rpx;">
<view class="label">选择健康管理师</view>
<view
v-for="(item,index) in storePriceList.slice(0,2)"
@@ -323,15 +323,8 @@
<view class="tech-right-bottom">{{item.storeName}}</view>
- <!-- <view class="bot x-bc shop-pBox-name">
- <view class="name">{{item.storeName}}</view>
- <view @click.stop="navgetTo('/pages_shopping/store/index?storeId='+item.storeId)">
- <u-icon name="arrow-right" color="#000" size="14"></u-icon>
- </view> -->
+ </view> -->
<!-- 门店 -->
<!-- <view class="spec-box form-item" v-if="stores.length>0">
<text class="label">所属门店</text>
@@ -344,7 +337,7 @@
</picker>
- <!-- <view class="shop-pBox" style="margin-top: 20rpx;" v-if="storePriceList&&storePriceList.length>0">
+ <view class="shop-pBox" style="margin-top: 20rpx;" v-if="storePriceList&&storePriceList.length>0">
v-for="(item,index) in storePriceList.slice(0,3)"
:key="index"
@@ -370,7 +363,7 @@
<text>¥{{productValueSelect.price.toFixed(2)}}</text>
<!-- 店铺弹窗 -->
<u-popup :show="showStorePicker" :round="16" mode="bottom">
<view class="storepopup">
@@ -430,7 +423,7 @@
</popupBottom>
- <image src="../../static/images/logo.png"></image>
+ <image src="../..https://user.test.ylrztop.com/images/logo.png"></image>
<text class="text">加载中...</text>
<u-modal :show="showModal" title="温馨提示" content="处方药须凭处方在药师指导下购买和使用" @confirm="hideModal()"></u-modal>
@@ -523,6 +516,7 @@
onShow() {
this.getProductDetails();
+ // this.getStoreList();
//发送给朋友
onShareAppMessage(res) {
@@ -531,7 +525,7 @@
title: this.product.productName,
path: '/pages/shopping/productDetails?productId='+this.product.productId+"&userId="+user.userId,
@@ -542,7 +536,7 @@
query:'productId='+this.product.productId+"&userId="+user.userId,//页面参数
@@ -558,6 +552,16 @@
rej => {}
);
+ getStoreList(){
+ getStoreList().then(
+ res => {
+ if(res.code==200){
+ // uni.setStorageSync('dicts',JSON.stringify(res));
+ rej => {}
+ );
showImg(img) {
if(img!=null){
var imgs=[];
@@ -667,14 +671,12 @@
// 加入购物车
addCart(type) {
- this.type=type;
- this.specVisible = true
- // this.utils.isLogin().then(res => {
- // if(res){
- // this.type=type;
- // this.specVisible = true
- // });
+ this.utils.isLogin().then(res => {
+ if(res){
+ this.type=type;
+ this.specVisible = true
getProductDetails(){
let data = {
@@ -834,6 +836,7 @@
if(this.specNum>=this.productValueSelect.stock){
this.specNum=this.productValueSelect.stock
+ console.log(this.specNum,'===')
// 确定选择该规格
submit() {
@@ -11,21 +11,40 @@
<view class="name-phone">
<view class="name">{{user.nickname}}</view>
- <view class="phone">{{utils.parsePhone(user.phone)}}</view>
+ <view class="phone">
+ <image class="w32 h32" src="../../static/images/company/phone_icon16.png" mode=""></image>
+ <text>{{user.phone?utils.parsePhone(user.phone):'-'}}</text>
<view class="right">
<uni-badge size="small" :text="msgNum" absolute="rightTop" type="error">
<view class="set" @click="navgetTo('/pages_user/user/personInfo')">
- <image src="../../static/images/icon-set.png" mode=""></image>
+ <image class="w48 h48" src="../../static/images/user/center_set_icon.png" mode=""></image>
</uni-badge>
<view class="msg-box" @click="navgetTo('/pages_user/user/message')">
- <image src="../../static/images/icon-msg.png" mode=""></image>
+ <image class="w48 h48" src="../../static/images/user/center_new_icon.png" mode=""></image>
+ <uni-badge size="small" absolute="rightTop" type="error">
+ <view class="msg-box ml10" @click="navgetTo('/pages_user/user/complaint')">
+ <u-icon name="edit-pen" color="#222426" size="28"></u-icon>
+ </uni-badge>
+ <view class="balance">
+ <view class="left">
+ <view class="text">账户余额</view>
+ <image @click="seeChange" class="w32 h32" :src="isShow?'../../static/images/user/eye_open_icon.png':'../../static/images/user/eye_close_icon.png'" mode=""></image>
+ <view v-if="isShow" class="num">{{user.money||0}}</view>
+ <view v-else class="num">{{utils.parsePrice(user.money||0)}}</view>
+ <view class="right" @click="navgetTo('/pages_user/recharge/index')">充值</view>
<!-- 我的订单 -->
<view class="my-order">
@@ -34,35 +53,35 @@
<text class="title">我的订单</text>
<view class="all-order" @click="showOrder('')">
<text class="text">全部订单</text>
- <image src="../../static/images/arrow4.png" mode=""></image>
+ <image class="w48 h48" src="../../static/images/right.png" mode=""></image>
<view class="status-box">
<uni-badge size="small" :text=count0 absolute="rightTop" type="error">
<view class="item" @click="showOrder('0')">
- <image src="../../static/images/payment.png" mode=""></image>
+ <image src="../../static/images/user/obligation_icon24.png" mode=""></image>
<text class="text">待付款</text>
<uni-badge size="small" :text=count1 absolute="rightTop" type="error">
<view class="item" @click="showOrder('1')">
- <image src="../../static/images/send_goods.png" mode=""></image>
+ <image src="../../static/images/user/pending_shipment_icon24.png" mode=""></image>
<text class="text">待发货</text>
<uni-badge size="small" :text=count2 absolute="rightTop" type="error">
<view class="item" @click="showOrder('2')">
- <image src="../../static/images/sou_goods.png" mode=""></image>
+ <image src="../../static/images/user/dai_shouhuo_icon24.png" mode=""></image>
<text class="text">待收货</text>
<view class="item" @click="showOrder('3')">
- <image src="../../static/images/completed.png" mode=""></image>
+ <image src="../../static/images/user/completed_icon24.png" mode=""></image>
<text class="text">已完成</text>
<uni-badge size="small" :text=afterSalesCount absolute="rightTop" type="error">
<view class="item" @click="navgetTo('/pages_user/user/refundOrderList')">
- <image src="../../static/images/after_sales.png" mode=""></image>
+ <image src="../../static/images/user/after_sales_icon24.png" mode=""></image>
<text class="text">售后/退款</text>
@@ -88,57 +107,61 @@
<text class="text">我的问诊</text>
<view class="item" @click="navgetTo('/pages_user/user/prescribeOrder')">
- <image src="../../static/images/prescription.png" mode=""></image>
+ <image src="../../static/images/user/purple_my_prescription_icon24.png" mode=""></image>
<text class="text">我的处方</text>
<view class="item" @click="navgetTo('/pages_user/user/patient')">
- <image src="../../static/images/management.png" mode=""></image>
+ <image src="../../static/images/user/purple_the_patient_icon24.png" mode=""></image>
<text class="text">就诊人管理</text>
<view class="item" @click="navgetTo('/pages_user/user/address')">
- <image src="../../static/images/address.png" mode=""></image>
+ <image src="../../static/images/user/purple_address_management_icon24.png" mode=""></image>
<text class="text">收货地址</text>
<view class="item no-marin-bottom" @click="navgetTo('/pages_user/user/integral')">
- <image src="../../static/images/integral.png" mode=""></image>
+ <image src="../../static/images/user/purple_points_management_icon24.png" mode=""></image>
<text class="text">积分管理</text>
+ <!-- <view class="item no-marin-bottom" @click="navgetTo('/pages_user/user/pointsMall')">
+ <text class="text">积分管理</text>
<view class="item no-marin-bottom" @click="navgetTo('/pages_shopping/shopping/myCoupon')">
- <image src="../../static/images/mycoupon.png" mode=""></image>
+ <image src="../../static/images/user/purple_coupon_icon24.png" mode=""></image>
<text class="text">优惠券</text>
<view class="item no-marin-bottom" @click="navgetTo('/pages_user/user/storeProductRelation')">
- <image src="../../static/images/service_file.png" mode=""></image>
+ <image src="../../static/images/user/purple_my_footprint_icon24.png" mode=""></image>
<text class="text">我的足迹</text>
<view class="item no-marin-bottom" @click="openH5('/h5/userAgreement')">
+ <image src="../../static/images/user/purple_user_agreement_icon24.png" mode=""></image>
<text class="text">用户协议</text>
<view class="item no-marin-bottom align-top" @click="openH5('/h5/privacyPolicy')">
- <image src="../../static/images/advice.png" mode=""></image>
+ <image src="../../static/images/user/purple_privacy_protection_icon24.png" mode=""></image>
<text class="text">隐私保护</text>
<view class="item no-marin-bottom">
- <image src="../../static/images/customer1.png" mode=""></image>
+ <image src="../../static/images/user/purple_service_center_icon24.png" mode=""></image>
<text class="text">专属客服</text>
<button class="contact-btn" open-type="contact"></button>
<view v-if="user.isPromoter==0" class="item no-marin-bottom" @click="navgetTo('/pages_user/user/userTuiAdd')">
- <image src="../../static/images/my_promotion.png" mode=""></image>
+ <image src="../../static/images/user/purple_health_ambassador_icon24.png" mode=""></image>
<text class="text">申请健康大使</text>
<view v-if="user.isPromoter==1" class="item no-marin-bottom" @click="navgetTo('/pages_user/user/userTui')">
<text class="text">我的推广</text>
<view class="item no-marin-bottom" @click="navgetTo('/pages/home/cert')">
+ <image src="../../static/images/user/purple_qualification_certificate_icon24.png" mode=""></image>
<text class="text">资质证书</text>
<view class="item no-marin-bottom" @click="toManager()">
- <image src="../../static/images/sale_file.png" mode=""></image>
+ <image src="../../static/images/user/purple_sales_management_icon24.png" mode=""></image>
<text class="text">销售管理</text>
@@ -186,7 +209,7 @@
statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
// 消息数量
msgNum: 0,
+ isShow:true
};
@@ -195,14 +218,17 @@
console.log("onshow")
- // this.getUserInfo();
- // this.getOrderCount();
+ this.getUserInfo();
+ this.getOrderCount();
console.log("onReachBottom")
this.$refs.product.getGoodsProducts();
methods: {
+ seeChange(){
+ this.isShow=!this.isShow
callService(){
uni.makePhoneCall({
phoneNumber:"4000717770",
@@ -229,20 +255,19 @@
toManager(){
- console.log('---')
- url: '/pages_company/index'
- // if(this.utils.checkCompanyUserLoginState()){
- // uni.navigateTo({
- // url: '/pages_company/index'
- // })
- // else{
- // url: '/pages_company/auth/login'
+ // uni.navigateTo({
+ // url: '/pages_company/index'
+ // })
+ if(this.utils.checkCompanyUserLoginState()){
+ uni.navigateTo({
+ url: '/pages_company/index'
+ else{
+ url: '/pages_company/auth/login'
openH5(url){
@@ -298,9 +323,10 @@
width: 100%;
height: 494upx;
position: relative;
- background-image: url(../../static/images/personl_top_bg.png);
- background-repeat: repeat-x;
- background-size: 40upx 100%;
+ // background-image: url(../../static/images/personl_top_bg.png);
+ // background-repeat: repeat-x;
+ // background-size: 40upx 100%;
+ background: linear-gradient(266deg, #CDEAFE 0%, #EBF4F9 100%);
.top-inner{
height: 100%;
@@ -339,12 +365,24 @@
line-height: 1;
.phone{
- font-size: 28upx;
- color: #666666;
+ width: 220rpx;
margin-top: 30upx;
+ background: linear-gradient( 90deg, #FEA501 0%, #FECB8A 100%);
+ border-radius: 24rpx 24rpx 24rpx 24rpx;
+ border: 1rpx solid #FEDDB9;
+ justify-content: center;
+ text{
+ font-size: 24upx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #fff;
+ line-height: 1;
+ margin-left: 4rpx;
@@ -353,28 +391,74 @@
.msg-box{
- margin-left: 10upx;
- width: 44upx;
- height: 44upx;
+ // margin-left: 10upx;
+ width: 48upx;
+ height: 48upx;
+ // image{
+ // width: 100%;
.set{
+ margin-right: 20rpx;
+ .balance{
+ padding: 30rpx;
+ height: 180rpx;
+ margin: 50rpx 20rpx 0;
+ border-radius: 16rpx 16rpx 16rpx 16rpx;
+ background: linear-gradient( 266deg, #E83924 0%, #FEA603 100%);
+ // background-image:url(../../static/images/balancebg.png);
+ // background-repeat: no-repeat;
+ // background-size: 100%;
+ .left{
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content:space-around;
+ height: 100%;
+ font-size: 26rpx;
+ color: #FFFFFF;
+ margin-right: 16rpx;
+ .num{
+ font-family: Roboto, Roboto;
+ font-size: 64rpx;
+ .right{
+ width: 132rpx;
+ height: 64rpx;
+ line-height: 64rpx;
+ background: #FFFFFF;
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ color: #FF5030;
+ text-align: center;
.my-order{
- padding: 50upx 20upx 0;
+ padding: 20upx 20upx 0;
.inner{
box-sizing: border-box;
height: 245upx;
@@ -389,7 +473,7 @@
justify-content: space-between;
.title{
- font-size: 34upx;
+ font-size: 36upx;
font-family: PingFang SC;
font-weight: bold;
@@ -406,10 +490,10 @@
margin-right: 8upx;
- width: 14upx;
- height: 24upx;
+ // width: 14upx;
+ // height: 24upx;
.status-box{
@@ -423,8 +507,8 @@
image{
- width: 40upx;
- height: 40upx;
margin-bottom: 18upx;
.text{
@@ -454,7 +538,7 @@
padding: 40upx 30upx;
@@ -475,14 +559,14 @@
margin-bottom: 50upx;
font-size: 24upx;
font-weight: 500;
+ color: #333;
margin-top: 20upx;
@@ -531,6 +615,7 @@
width:100%;
.tel_btn{
@@ -0,0 +1,391 @@
+ <view class="content">
+ <view class="inner">
+ <view class="form-box">
+ <view class="form-item">
+ <text class="label">竞品公司<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.competitorCompany" placeholder="请输入竞品公司"
+ placeholder-class="form-input" />
+ <text class="label">产品<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.product" placeholder="请输入产品"
+ <text class="label">价格<text class="color-price">*</text></text>
+ <input class="input-width" type="digit" v-model="form.price" placeholder="请输入价格"
+ <text class="label">服务<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.service" placeholder="请输入竞品公司服务方式"
+ <text class="label">免费服务次数<text class="color-price">*</text></text>
+ <input class="input-width" type="number" v-model="form.freeServiceTimes" placeholder="请输入服务次数"
+ <view class="btn-box">
+ <view class="sub-btn" @click="submit()">
+ <image src="/static/images/health/nav_add_icon24.png" class="w48 h48"></image>
+ <text>新增竞品信息</text>
+ import {
+ getCompetitorById,saveCompetitor,updateCompetitor
+ } from '@/api/companyUser.js'
+ type: null,
+ patientId: null,
+ famaleurl:"/static/images/health/female_profile.png",
+ maleurl:"/static/images/health/my_heads.png",
+ checked:1,
+ array:['是','否'],
+ tags: [{
+ name: '心脏病',
+ checked:true,
+ id: 1
+ name: '脑梗死',
+ checked:false,
+ id: 2
+ name: '肾病',
+ id: 3
+ name: '脂肪肝',
+ id: 4
+ }],
+ form: {
+ "competitorCompany": null,
+ "freeServiceTimes":null,
+ "price":null,
+ "product": null,
+ "remark": null,
+ "service": null,
+ id:null
+ };
+ onLoad(options) {
+ this.type = options.type;
+ this.form.userId=options.userId
+ this.form.companyUserId=options.companyUserId;
+ console.log(this.type)
+ if (this.type == 'edit') {
+ this.id=options.id;
+ this.getCompetitorInfo();
+ getCompetitorInfo() {
+ var data = {
+ id: this.id
+ getCompetitorById(data).then(
+ if (res.code == 200) {
+ this.form = res.data;
+ } else {
+ uni.showToast({
+ title: res.msg,
+ submit() {
+ if (this.form.competitorCompany == null || this.form.competitorCompany == '') {
+ icon: 'none',
+ title: "公司名称不能为空",
+ return;
+ if (this.form.product == null || this.form.product == '') {
+ title: "产品不能为空",
+ if (this.form.price == null || this.form.price == '') {
+ title: "价格不能为空",
+ if (this.form.service == null || this.form.service == '') {
+ title: "服务不能为空",
+ if (this.form.freeServiceTimes == null || this.form.freeServiceTimes == '') {
+ title: "次数不能为空",
+ if (this.type == "add") {
+ this.saveCompetitor()
+ } else if (this.type == "edit") {
+ this.updateCompetitor()
+ updateCompetitor() {
+ updateCompetitor(this.form).then(
+ icon: 'success',
+ title: "操作成功",
+ setTimeout(function() {
+ uni.$emit('refreshBuyOrder');
+ uni.navigateBack({
+ delta: 1
+ }, 500);
+ saveCompetitor() {
+ saveCompetitor(this.form).then(
+<style lang="scss">
+ page {
+ .content {
+ .inner {
+ // height: calc(100% - 120upx);
+ padding: 20upx;
+ .form-box {
+ padding: 0 30upx;
+ border-radius: 16upx;
+ margin-bottom: 20upx;
+ .form-title {
+ font-weight: 600;
+ font-size: 40rpx;
+ padding: 30rpx 0;
+ display: block;
+ .form-item {
+ padding: 30upx 0;
+ border-bottom: 1px solid #F1F1F1;
+ &:last-child {
+ border-bottom: none;
+ .label {
+ width: 300upx;
+ font-size: 32upx;
+ line-height: 44upx;
+ color: #222222;
+ flex-shrink: 0;
+ input {
+ text-align: right;
+ .form-input {
+ font-size: 30upx;
+ color: #999999;
+ .form-item-tag{
+ .tag{
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ border: 2rpx solid #ECECEC;
+ padding: 24rpx;
+ font-size: 24rpx;
+ &.active{
+ background: #F0FAFF;
+ border: 2rpx solid #008FD3;
+ .sex-box{
+ flex:1;
+ justify-content: flex-end;
+ .sex-item{
+ width: 146rpx;
+ background: #F5F7FA;
+ margin-left: 16rpx;
+ .u-icon__icon{
+ margin: 0;
+ // font-family: PingFang SC, PingFang SC;
+ font-size: 28rpx;
+ color: #898E91;
+ margin-left: 12rpx;
+ background: #FCF0E7;
+ color:#FF5030
+ .form-textarea{
+ height: 100upx;
+ padding: 4upx 0;
+ .birth-picker {
+ flex: 1;
+ .right-box{
+ .input-box{
+ // width: 470upx;
+ .arrow{
+ width: 13upx;
+ height: 23upx;
+ margin-left: 20upx;
+ .btn-box {
+ height: 120upx;
+ // position: fixed;
+ // width: 90%;
+ // bottom: 0;
+ // left: 50%;
+ // transform: translate(-50%,-50%);
+ // background: #FFFFFF;
+ .sub-btn {
+ height: 88upx;
+ line-height: 88upx;
+ font-weight: bold;
+ background: #008FD3 ;
+ border-radius: 44upx;
+ margin-bottom: 40upx;
+ image{
@@ -0,0 +1,620 @@
+ <text class="form-title">身体信息</text>
+ <text class="label">身高<text class="color-price">*</text></text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.height" placeholder="请输入身高"
+ <text class="unit">cm</text>
+ <text class="label">体重<text class="color-price">*</text></text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.weight" placeholder="请输入体重"
+ <text class="unit">kg</text>
+ <text class="label">腰围<text class="color-price">*</text></text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.waistCircumference"
+ placeholder="请输入腰围" placeholder-class="form-input" />
+ <text class="label">臀围<text class="color-price">*</text></text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.hipCircumference"
+ placeholder="请输入臀围" placeholder-class="form-input" />
+ <text class="form-title">疾病史</text>
+ <text class="label">高血糖</text>
+ <radio-group style="display: flex;align-items: center;">
+ <label style="margin-right: 50upx;">
+ <radio @click="hyperglycemiaChange(0)" value="0" :checked="form.hyperglycemia==0"
+ style="margin-right: 16upx;" />
+ <text class="sex-text">无</text>
+ </label>
+ <radio @click="hyperglycemiaChange(1)" value="1" :checked="form.hyperglycemia==1"
+ <text class="sex-text">轻微</text>
+ <label>
+ <radio @click="hyperglycemiaChange(2)" value="2" :checked="form.hyperglycemia==2"
+ <text class="sex-text">严重</text>
+ </radio-group>
+ <text class="label">测量值</text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.hyperglycemiaValue"
+ placeholder="请输入测量值" placeholder-class="form-input" />
+ <text class="unit">mmol/L</text>
+ <text class="label">高血压</text>
+ <radio @click="hypertensionChange(0)" value="0" :checked="form.hypertension==0"
+ <radio @click="hypertensionChange(1)" value="1" :checked="form.hypertension==1"
+ <radio @click="hypertensionChange(2)" value="2" :checked="form.hypertension==2"
+ <text class="label">收缩压</text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.systolicPressure"
+ <text class="unit">mmHg</text>
+ <text class="label">舒张压</text>
+ <input maxlength="10" class="input-width" type="digit" v-model="form.diastolicPressure"
+ <text class="label">高血脂</text>
+ <radio @click="hyperlipidemiaChange(0)" value="0" :checked="form.hyperlipidemia==0"
+ <radio @click="hyperlipidemiaChange(1)" value="1" :checked="form.hyperlipidemia==1"
+ <radio @click="hyperlipidemiaChange(2)" value="2" :checked="form.hyperlipidemia==2"
+ <text class="label">高尿酸</text>
+ <radio @click="hyperuricemiaChange(0)" value="0" :checked="form.hyperuricemia==0"
+ <radio @click="hyperuricemiaChange(1)" value="1" :checked="form.hyperuricemia==1"
+ <radio @click="hyperuricemiaChange(2)" value="2" :checked="form.hyperuricemia==2"
+ <input maxlength="10" class="input-width" type="digit" v-model="form.hyperuricemiaValue"
+ <text class="unit">μmol/L</text>
+ <text class="label">高体重</text>
+ <radio @click="bodyWeightStatusChange(0)" value="0" :checked="form.bodyWeightStatus==0"
+ <text class="sex-text">正常</text>
+ <radio @click="bodyWeightStatusChange(1)" value="1" :checked="form.bodyWeightStatus==1"
+ <text class="sex-text">偏瘦</text>
+ <radio @click="bodyWeightStatusChange(2)" value="2" :checked="form.bodyWeightStatus==2"
+ <text class="sex-text">偏重</text>
+ <text class="form-title">其他病史</text>
+ <view class="form-item wrap">
+ <view class="form-item-tag mb16" v-for="(item, index) in tags" :key="index"
+ @click="tagsClick(item)">
+ <view :class="checkedItems.includes(item.dictValue)?'tag active':'tag'">
+ {{item.dictLabel}}
+ <!-- 其他选项 -->
+ <view class="form-item-tag" @click="toggleOther">
+ <view :class="otherSelected ? 'tag active' : 'tag'">
+ + 其他
+ <view class="form-item" v-if="otherSelected">
+ <text class="label">其他病史</text>
+ <input class="input-width" type="text" v-model="symptom" placeholder="请输入病史"
+ <text class="form-title">症状史</text>
+ <view class="form-item-tag mb16" v-for="(item, index) in cates" :key="index"
+ @click="catesClick(item)">
+ <view :class="checkedItems2.includes(item.dictValue)?'tag active':'tag'">
+ <view class="form-item-tag" @click="toggleOther2">
+ <view :class="otherSelected2 ? 'tag active' : 'tag'">
+<!-- 其他症状输入框(选中"其他"时显示) -->
+ <view class="form-item" v-if="otherSelected2">
+ <text class="label">其他症状</text>
+ <input class="input-width" type="text" v-model="symptom2" placeholder="请输入症状"
+ <view class="sub-btn" @click="submit()">保存</view>
+ getDoc,
+ addDoc,
+ updateDoc
+ } from '@/api/health.js'
+ getDictByKey
+ } from '@/api/common.js'
+ symptom: null,
+ symptom2: null,
+ famaleurl: "/static/images/health/female_profile.png",
+ maleurl: "/static/images/health/my_heads.png",
+ // 存储所有选中的症状值
+ checkedItems: [],
+ checkedItems2: [],
+ text: [],
+ text2: [],
+ // 其他选项是否选中
+ otherSelected: false,
+ otherSelected2: false,
+ // 其他症状输入内容
+ tags: [
+ // {
+ // name: '心脏病',
+ // checked:true,
+ // id: 1
+ // },
+ // name: '脑梗死',
+ // checked:false,
+ // id: 2
+ // },{
+ // name: '肾病',
+ // id: 3
+ // name: '脂肪肝',
+ // id: 4
+ ],
+ cates: [],
+ "height": null,
+ "weight": null,
+ "waistCircumference": null,
+ "hipCircumference": null,
+ "hyperglycemia": 0,
+ "hyperglycemiaValue": null,
+ "hypertension": 0,
+ "systolicPressure": null,
+ "diastolicPressure": null,
+ "hyperlipidemia": 0,
+ "hyperuricemia": 0,
+ "hyperuricemiaValue": null,
+ "bodyWeightStatus": 0,
+ "otherMedicalHistory": null,
+ "symptomHistory": null,
+ // this.type = options.type;
+ this.companyUserId = options.companyUserId;
+ this.form.userId =options.userId;
+ this.form.companyUserId = options.companyUserId;
+ // if (this.type == 'edit') {
+ this.getDoc();
+ this.getDictByKey('other_medical_history')
+ this.getDictByKey('medical_history')
+ sexChange(type) {
+ this.form.sex = type
+ //血糖
+ hyperglycemiaChange(e) {
+ this.form.hyperglycemia = e
+ //血压
+ hypertensionChange(e) {
+ this.form.hypertension = e
+ //血脂
+ hyperlipidemiaChange(e) {
+ this.form.hyperlipidemia = e
+ //尿酸
+ hyperuricemiaChange(e) {
+ this.form.hyperuricemia = e
+ bodyWeightStatusChange(e) {
+ this.form.bodyWeightStatus = e
+ tagsClick(item) {
+ const index = this.checkedItems.indexOf(item.dictValue);
+ if (index > -1) {
+ // 如果已选中则移除
+ this.checkedItems.splice(index, 1);
+ // 如果未选中则添加
+ this.checkedItems.push(item.dictValue);
+ this.text.push(item.dictLabel)
+ catesClick(item) {
+ const index = this.checkedItems2.indexOf(item.dictValue);
+ this.checkedItems2.splice(index, 1);
+ this.checkedItems2.push(item.dictValue);
+ this.text2.push(item.dictLabel)
+ // 切换其他选项
+ toggleOther() {
+ this.otherSelected = !this.otherSelected;
+ // 清空其他症状输入
+ if (!this.otherSelected) {
+ this.symptom = null;
+ toggleOther2() {
+ this.otherSelected2 = !this.otherSelected2;
+ if (!this.otherSelected2) {
+ this.symptom2 = null;
+ getDictByKey(key) {
+ key: key
+ getDictByKey(data).then(
+ if (key == "other_medical_history") {
+ this.tags = res.data;
+ if (key == "medical_history") {
+ this.cates = res.data;
+ err => {}
+ getDoc() {
+ userId: this.form.userId
+ getDoc(data).then(
+ if(res.data==null){
+ this.type='add'
+ this.type='edit'
+ if (this.form.height == null) {
+ title: "身高不能为空",
+ if (this.form.weight == null) {
+ title: "体重不能为空",
+ if (this.form.waistCircumference == null) {
+ title: "腰围不能为空",
+ if (this.form.hipCircumference == null) {
+ title: "臀围不能为空",
+ // console.log(this.text,'---')
+ this.form.otherMedicalHistory = this.utils.joinWithSymptom(this.text, this.symptom)
+ this.form.symptomHistory = this.utils.joinWithSymptom(this.text2, this.symptom2)
+ this.addDoc()
+ this.editDoc()
+ editDoc() {
+ updateDoc(this.form).then(
+ uni.$emit('refreshHealthFiles');
+ addDoc() {
+ addDoc(this.form).then(
+ // 出生日期选择
+ bindDateChange: function(e) {
+ this.form.birthdate = e.target.value
+ width: 150upx;
+ .unit {
+ .form-item-tag {
+ .tag {
+ &.active {
+ background: #008FD3;
@@ -3,50 +3,45 @@
<view class="form-box">
<view class="form-item">
- <text class="label">商品名称</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入商品名称"
+ <text class="label">商品名称<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.productName" placeholder="请输入商品名称"
placeholder-class="form-input" />
- <view class="form-item">
- <text class="label">出生年月</text>
- <picker class="birth-picker" mode="date" @change="bindDateChange">
- <view class="right-box">
- <view class="input-box">
- <input type="text" :value="form.birthday" placeholder="请选择出生年月" placeholder-class="form-input" disabled="disabled" />
- <image class="w48 h48" src="/static/images/health/right_arrow_right_icon24.png"></image>
- </picker>
+ <view class="form-item justify-between">
+ <text class="label">购买数量<text class="color-price">*</text></text>
+ <!-- <input class="input-width" type="number" v-model="" placeholder="请输入金额"
+ placeholder-class="form-input" /> -->
+ <view class="num-box"><u-number-box v-model="form.purchaseQuantity" integer></u-number-box></view>
- <text class="label">金额</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入金额"
+ <text class="label">金额<text class="color-price">*</text></text>
+ <input class="input-width" type="digit" v-model="form.amount" placeholder="请输入金额"
- <text class="label">预计用完时间</text>
+ <text class="label">预计用完时间<text class="color-price">*</text></text>
+ <picker class="birth-picker" mode="date" :start="startDate" @change="bindDateChange">
<view class="right-box">
<view class="input-box">
- <input type="text" :value="form.birthday" placeholder="请选择时间" placeholder-class="form-input" disabled="disabled" />
+ <input type="text" :value="form.plannedCompletionDate" placeholder="请选择时间" placeholder-class="form-input" disabled="disabled" />
<image class="w48 h48" src="/static/images/health/right_arrow_right_icon24.png"></image>
- <text class="label">购买次数</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入购买次数"
+ <text class="label">购买次数<text class="color-price">*</text></text>
+ <input class="input-width" type="number" v-model="form.purchaseTimes" placeholder="请输入购买次数"
- <text class="label">剩余次数</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入剩余次数"
+ <text class="label">剩余次数<text class="color-price">*</text></text>
+ <input class="input-width" type="number" v-model="form.surplusTimes" placeholder="请输入剩余次数"
- <text class="label">会员情况</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入会员情况"
+ <text class="label">会员情况<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.memberStatus" placeholder="请输入会员情况"
@@ -62,13 +57,12 @@
<script>
- getDocDetails,
- addDoc,
- editDoc
- } from '@/api/doc.js'
+ getServiceById,updateService,saveService
export default {
+ startDate:this.utils.timeFormat(new Date()),
type: null,
patientId: null,
famaleurl:"/static/images/health/female_profile.png",
@@ -94,20 +88,26 @@
id: 4
}],
form: {
- userName: null,
- idCard: null,
- sex: null,
- birthday: null,
- remark: null,
+ "amount": null,
+ "memberStatus": null,
+ "plannedCompletionDate": null,
+ "productName":null,
+ "purchaseQuantity":1,
+ "purchaseTimes":null,
+ "surplusTimes":null,
- onLoad(option) {
- this.type = option.type;
console.log(this.type)
if (this.type == 'edit') {
- this.docId = option.docId;
- // this.getDocDetails();
+ this.getServiceInfo();
@@ -117,15 +117,16 @@
radioClick(item) {
this.checked=item.id
- getDocDetails() {
+ getServiceInfo() {
var data = {
- docId: this.docId
- getDocDetails(data).then(
+ getServiceById(data).then(
res => {
if (res.code == 200) {
this.form = res.data;
+ this.form.plannedCompletionDate=this.utils.timeFormat(res.data.plannedCompletionDate,'yyyy-mm-dd')
+ this.startDate=this.form.plannedCompletionDate
} else {
uni.showToast({
title: res.msg,
@@ -135,62 +136,65 @@
- onChooseAvatar(e){
- let {
- avatarUrl
- } = e.detail;
- uni.uploadFile({
- url: uni.getStorageSync('requestPath')+'/app/common/uploadOSS', //仅为示例,非真实的接口地址
- filePath: avatarUrl,
- name: 'file',
- formData: {
- 'user': 'test' // 上传附带参数
- success: (uploadFileRes) => {
- this.user.avatar =JSON.parse(uploadFileRes.data).url
- // if (this.form.userName == null) {
- // uni.showToast({
- // icon: 'none',
- // title: "姓名不能为空",
- // return;
- // if (this.form.idCard == null) {
- // title: "身份证号不能为空",
- // if (this.form.sex == null) {
- // title: "性别不能为空",
- // if (this.form.birthday == null) {
- // title: "出生年月不能为空",
- // if (this.type == "add") {
- // this.addDoc()
- // } else if (this.type == "edit") {
- // this.editDoc()
- url: '/pages_health/doc?type=edit&docId='
+ if (this.form.productName == null) {
+ title: "名称不能为空",
+ if (this.form.purchaseQuantity == null) {
+ title: "数量不能为空",
+ if (this.form.amount == null) {
+ title: "金额不能为空",
+ if (this.form.plannedCompletionDate == null) {
+ title: "时间不能为空",
+ if (this.form.purchaseTimes == null) {
+ title: "购买次数不能为空",
+ if (this.form.surplusTimes == null) {
+ title: "剩余次数不能为空",
+ if (this.form.memberStatus == null) {
+ title: "会员情况不能为空",
+ this.saveService()
+ this.updateService()
- editDoc() {
- editDoc(this.form).then(
+ updateService() {
+ updateService(this.form).then(
@@ -198,7 +202,7 @@
title: "操作成功",
});
setTimeout(function() {
- uni.$emit('refreshDoc');
uni.navigateBack({
delta: 1
@@ -213,8 +217,8 @@
- addDoc() {
- addDoc(this.form).then(
+ saveService() {
+ saveService(this.form).then(
@@ -222,7 +226,7 @@
@@ -239,7 +243,7 @@
// 出生日期选择
bindDateChange: function(e) {
- this.form.birthday = e.target.value
+ this.form.plannedCompletionDate = e.target.value
@@ -296,11 +300,15 @@
flex-shrink: 0;
input {
text-align: right;
+ .num-box{
+ input{
+ text-align: center !important;
.form-input {
font-size: 30upx;
@@ -0,0 +1,733 @@
+ <text class="form-title">基本信息</text>
+ <text class="label">头像</text>
+ <view class="right">
+ <image :src="form.avatar==null?maleurl:form.avatar" class="w90 h90"></image>
+ <image class="w48 h48" src="/static/images/health/right_arrow_right_icon24.png"></image>
+ <button class="wx-head" type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
+ </button>
+ <text class="label">姓名<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.username" placeholder="请输入姓名"
+ <text class="label">性别<text class="color-price">*</text></text>
+ <view class="sex-box">
+ <view :class="form.sex==0?'sex-item active':'sex-item'" @click="sexChange(0)" >
+ <u-icon name="man" :color="form.sex==0?'#008FD3':'#898E91'" size="20"></u-icon>
+ <text>男</text>
+ <view :class="form.sex==1?'sex-item active2':'sex-item'" @click="sexChange(1)" >
+ <u-icon name="woman" :color="form.sex==1?'#FF5030':'#898E91'" size="20"></u-icon>
+ <text>女</text>
+ <text class="label">出生年月<text class="color-price">*</text></text>
+ <picker class="birth-picker" mode="date" @change="bindDateChange">
+ <view class="right-box">
+ <view class="input-box">
+ <input type="text" :value="form.birthdate" placeholder="请选择出生年月" placeholder-class="form-input" disabled="disabled" />
+ </picker>
+ <text class="label">手机号<text class="color-price">*</text></text>
+ <input maxlength="11" class="input-width" type="number" v-model="form.phone" placeholder="请输入手机号" placeholder-class="form-input" />
+ <text class="label">身份证号<text class="color-price">*</text></text>
+ <input maxlength="18" class="input-width" type="idcard" v-model="form.idCard" placeholder="请如实填写身份证号" placeholder-class="form-input" />
+ <text class="label">退休前工作单位<text class="color-price">*</text></text>
+ <input class="input-width" type="text" v-model="form.previousEmployer" placeholder="请输入工作单位"
+ <text class="label">可支配收入<text class="color-price">*</text></text>
+ <input class="input-width" type="digit" v-model="form.disposableIncome" placeholder="请输入支配收入"
+ <text class="label">实际消费<text class="color-price">*</text></text>
+ <input class="input-width" type="digit" v-model="form.actualConsumption" placeholder="请输入实际消费"
+ <text class="form-title">家庭地址及居住情况</text>
+ <text class="label">市区<text class="color-price">*</text></text>
+ <picker class="birth-picker" mode="region" level="city" @change="bindCityChange">
+ <input type="text" :value="form.city" placeholder="请选择市区" placeholder-class="form-input" disabled="disabled" />
+ <text class="label">小区名称</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.residentialCommunity" placeholder="请输入小区名称"
+ <text class="label">门牌</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.houseNumber" placeholder="请输入门牌号"
+ <text class="label">面积</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.area" placeholder="请输入面积"
+ <text class="label">楼层</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.floor" placeholder="请输入楼层"
+ <text class="form-title">家庭情况</text>
+ <text class="label">伴侣</text>
+ <input class="input-width" type="text" v-model="form.partnerName" placeholder="请输入伴侣姓名"
+ <text class="label">伴侣年龄</text>
+ <input class="input-width" type="number" v-model="form.partnerAge" placeholder="请输入伴侣年龄"
+ <text class="label">子辈单位</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.partnerEmployer" placeholder="请输入子辈工作单位"
+ <text class="label">孙辈学校</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.grandchildrenSchool" placeholder="请输入所在学校"
+ <text class="form-title">会员情况</text>
+ <text class="label">是否是会员</text>
+ <radio @click="radioClick(1)" value="1" :checked="form.isMember==1"
+ <text class="sex-text">是</text>
+ <radio @click="radioClick(0)" value="0" :checked="form.isMember==0"
+ <text class="sex-text">否</text>
+ <text class="label">会员分类</text>
+ <picker class="birth-picker" mode="selector" @change="bindMemberChange($event,tags)" :range="tags" range-key="dictLabel">
+ <input type="text" :value="form.memberLevel" placeholder="请选择会员分类" placeholder-class="form-input" disabled="disabled" />
+ <text class="label">加入时间</text>
+ <picker class="birth-picker" mode="date" @change="bindJoinChange">
+ <input type="text" :value="form.joinTime" placeholder="请选择加入时间" placeholder-class="form-input" disabled="disabled" />
+ <text class="label">到期时间</text>
+ <picker class="birth-picker" mode="date" @change="bindEndChange">
+ <input type="text" :value="form.expiryTime" placeholder="请选择到期时间" placeholder-class="form-input" disabled="disabled" />
+ <text class="label">管理月份</text>
+ <picker class="birth-picker" mode="date" fields="month" @change="bindMonthChange">
+ <input type="text" :value="form.managementMonth" placeholder="请选择管理月份" placeholder-class="form-input" disabled="disabled" />
+ <text class="form-title">特殊情况</text>
+ <text class="label">职位</text>
+ <input class="input-width" type="text" v-model="form.position" placeholder="请输入职位"
+ <text class="label">癖好</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.hobbies" placeholder="请输入癖好"
+ <text class="label">平日喜好</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.specialties" placeholder="请输入平日喜好"
+ <text class="label">信仰</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.faith" placeholder="请输入信仰"
+ <text class="label">担忧</text>
+ <input maxlength="10" class="input-width" type="text" v-model="form.concerns" placeholder="请输入担忧"
+ <text class="form-title">其他<text class="color-price">*</text></text>
+ <!-- <text class="label">备注</text> -->
+ <textarea maxlength="200" class="form-textarea" v-model="form.problemsToSolve" placeholder="请输入用户想解决的问题" placeholder-class="textarea-input" />
+ <textarea maxlength="200" class="form-textarea" v-model="form.healthSuggestions" placeholder="请输入健康管理师对用户的建议" placeholder-class="textarea-input"/>
+ import {getInfo,updateInfo,deleteInfo,addInfo,getMember} from '@/api/health.js'
+ getDocDetails,
+ editDoc
+ } from '@/api/doc.js'
+ array:[
+ {id:1,name:'是'},
+ {id:0,name:'否'},
+ tags: [],
+ municipalities: ['北京市', '上海市', '天津市', '重庆市'],
+ isAdd:null,
+ "username": null,
+ avatar:null,
+ "sex":0,
+ "birthdate": null,
+ "age": 0,
+ "phone": null,
+ "idCard": null,
+ "previousEmployer": null,
+ "disposableIncome": null,
+ "actualConsumption": null,
+ "city": null,
+ "residentialCommunity": null,
+ "houseNumber": null,
+ "area": null,
+ "floor": null,
+ "partnerName": null,
+ "partnerAge": null,
+ "partnerEmployer": null,
+ "grandchildrenSchool": null,
+ "isMember": 1,
+ "memberLevel": null,
+ "joinTime": null,
+ "expiryTime": null,
+ "managementMonth":null,
+ "position":null,
+ "hobbies": null,
+ "specialties": null,
+ "faith": null,
+ "concerns": null,
+ "problemsToSolve": null,
+ "healthSuggestions": null,
+ this.userId=options.userId;
+ this.companyUserId=options.companyUserId;
+ this.form.userId=options.userId;
+ this.getInfo();
+ this.getMember()
+ radioClick(id) {
+ this.form.isMember=id
+ getMember(){
+ getMember().then(
+ this.tags= res.data;
+ getInfo() {
+ userId: this.userId
+ getInfo(data).then(
+ onChooseAvatar(e){
+ // 处理用户取消的情况
+ if (e.detail.errMsg && e.detail.errMsg.includes('cancel')) {
+ console.log('选择头像已取消')
+ let {
+ avatarUrl
+ } = e.detail;
+ uni.uploadFile({
+ url: uni.getStorageSync('requestPath')+'/app/common/uploadOSS', //仅为示例,非真实的接口地址
+ filePath: avatarUrl,
+ name: 'file',
+ formData: {
+ 'user': 'test' // 上传附带参数
+ success: (uploadFileRes) => {
+ this.form.avatar =JSON.parse(uploadFileRes.data).url
+ if (this.form.username == null) {
+ title: "姓名不能为空",
+ if (this.form.phone == null) {
+ title: "手机号不能为空",
+ if (this.form.idCard == null) {
+ title: "身份证号不能为空",
+ if (this.form.sex == null) {
+ title: "性别不能为空",
+ if (this.form.birthdate == null) {
+ title: "出生年月不能为空",
+ if (this.form.city == null) {
+ title: "市区不能为空",
+ if (this.form.problemsToSolve == null) {
+ title: "用户问题不能为空",
+ if(this.type=="add"){
+ else if(this.type=="edit"){
+ // url: '/pages_health/doc?type=edit&docId='
+ updateInfo(this.form).then(
+ uni.$emit('refreshDoc');
+ addInfo(this.form).then(
+ //市区
+ bindCityChange:function(e) {
+ const region = e.detail.value; // 格式: [省, 市, 区]
+ let displayText = '';
+ // 处理直辖市重复问题
+ if (this.municipalities.includes(region[0])) {
+ // 直辖市:省和市名称相同,只显示一次
+ // 格式变为 "北京市 海淀区" 而非 "北京市 北京市 海淀区"
+ displayText = `${region[0]}`;
+ // 非直辖市:正常显示省市区
+ displayText = region;
+ this.form.city = displayText;
+ //会员情况
+ // bindIsMemberChange:function(e) {
+ // this.form.isMember = e
+ //会员分类
+ bindMemberChange:function(e,list) {
+ var index=e.target.value
+ this.form.memberLevel = list[e.target.value].dictLabel
+ //加入时间
+ bindJoinChange:function(e) {
+ this.form.joinTime = e.target.value
+ //到期时间
+ bindEndChange:function(e) {
+ this.form.expiryTime = e.target.value
+ //月份
+ bindMonthChange:function(e) {
+ this.form.managementMonth = e.target.value
+ border-radius: 50%;
+ .wx-head{
+ width: 140upx;
+ height: 80upx;
+ opacity: 0;
+ background: #EBF8FF;
+ color:#008FD3
+ &.active2{
+ // color: #999999;
+ .textarea-input{
@@ -18,16 +18,17 @@
<view class="consu-list">
- <mescroll-body top="88upx" ref="mescrollRef">
+ <mescroll-body top="88upx" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
+ <view v-if="orderStatusValue==0">
<view v-for="(item,index) in dataList" :key="index" class="item" >
<view class="item-top">
<view class="item-title">
- <view class="ask-text">{{item.name}}</view>
- <view class="fs28">X {{item.num}}</view>
+ <view class="ask-text">{{item.productName}}</view>
+ <view class="fs28">X {{item.purchaseQuantity}}</view>
- <view class="ask-time">购买次数:{{item.num}}</view>
- <view class="ask-time">购买时间:{{item.time}}</view>
- <view class="ask-time">备注:{{item.remark}}</view>
+ <view class="ask-time">购买次数:{{item.purchaseTimes}}</view>
+ <view class="ask-time">购买时间:{{utils.timeFormat(item.createTime,'yyyy-mm-dd hh:MM')}}</view>
+ <view class="ask-time">备注:{{item.remark||''}}</view>
<view class="bottom-box">
<view class="amount-paid">
@@ -38,11 +39,39 @@
- <view class="btn cancel" @click="cancel(item)">删除</view>
- <view class="btn pay" @click="showDetail(item)">编辑</view>
+ <view class="btn cancel" @click="deleteService(item)">删除</view>
+ <view class="btn pay" @click="showDetail(orderStatusValue,item)">编辑</view>
+ <view v-if="orderStatusValue==1">
+ <view v-for="(item,index) in dataList" :key="index" class="item" >
+ <view class="item-top">
+ <view class="item-title">
+ <view class="ask-text">{{item.product}}</view>
+ <!-- <view class="fs28">X {{item.freeServiceTimes}}</view> -->
+ <view class="ask-time">服务次数:{{item.freeServiceTimes}}</view>
+ <view class="bottom-box">
+ <view class="amount-paid">
+ <text class="label">订单金额:</text>
+ <view class="price-box">
+ <view class="unit">¥</view>
+ <view class="num">{{item.price.toFixed(2)}}</view>
+ <view class="btn cancel" @click="deleteCompetitor(item)">删除</view>
+ <view class="h160"></view>
</mescroll-body>
<view class="btn-box2">
@@ -55,15 +84,15 @@
</template>
- import {getMyDoctorOrderList,cancelOrder} from '@/api/doctorOrder.js'
+ import {getServiceList,getCompetitorList,deleteCompetitor,deleteService} from '@/api/companyUser.js'
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
mixins: [MescrollMixin],
orderStatus:[
- {name:"购买服务信息",val:"0"},
- {name:"购买服务信息",val:"1"},
+ {name:"购买服务信息",val:0},
+ {name:"购买竞品信息",val:1},
],
orderStatusValue:0,
mescroll:null,
@@ -77,54 +106,125 @@
- icon:'/static/images/no_data.png',
// 列表数据
- dataList: [
- {orderId:1, name:'极诺泰1',num:12,time:'2025-2-20 10:29',remark:'请尽快发货',amount:340.00,},
- {orderId:2, name:'极诺泰2',num:12,time:'2025-2-20 10:29',remark:'请尽快发货',amount:340.00,},
- {orderId:3, name:'极诺泰3',num:12,time:'2025-2-20 10:29',remark:'请尽快发货',amount:340.00,}
- ],
- dataList2: [
- {orderId:1, name:'竞品1',num:12,time:'2025-2-20 10:29',remark:'请尽快发货',amount:340.00,},
- {orderId:2, name:'竞品2',num:12,time:'2025-2-20 10:29',remark:'请尽快发货',amount:340.00,},
- {orderId:3, name:'竞品3',num:12,time:'2025-2-20 10:29',remark:'请尽快发货',amount:340.00,}
- ]
+ dataList: [],
- onLoad() {
- // uni.$on('refreshDoctorOrder', () => {
- // this.mescroll.resetUpScroll()
+ uni.$on('refreshBuyOrder', () => {
+ this.mescroll.resetUpScroll()
- pay(item){
- url: '/pages_/doctor/paymentOrder?orderId='+item.orderId
navgetTo(index){
uni.navigateTo({
- url: index==0?'/pages_health/addServe':'/pages_health/addCompetitors'
+ url: index==0?'/pages_company/addServe?type=add&userId='+this.userId+"&companyUserId="+this.companyUserId:'/pages_company/addCompetitors?type=add&userId='+this.userId+"&companyUserId="+this.companyUserId
- cancel(item){
+ // tab切换
+ orderStatusChange(item) {
+ this.orderStatusValue = item.val
+ mescrollInit(mescroll) {
+ this.mescroll = mescroll;
+ /*下拉刷新的回调 */
+ downCallback(mescroll) {
+ mescroll.resetUpScroll()
+ upCallback(page) {
+ if(this.orderStatusValue==0){
+ this.getServiceList(page)
+ }else if(this.orderStatusValue==1){
+ this.getCompetitorList(page)
+ getServiceList(page){
+ //联网加载数据
+ var that = this;
+ userId:this.userId,
+ // status:this.orderStatusValue,
+ pageNum: page.num,
+ pageSize: page.size
+ getServiceList(data).then(res => {
+ //设置列表数据
+ if (page.num == 1) {
+ that.dataList = res.data.list;
+ that.dataList = that.dataList.concat(res.data.list);
+ that.mescroll.endBySize(res.data.list.length, res.data.total);
+ icon:'none',
+ title: "请求失败",
+ that.dataList = null;
+ that.mescroll.endErr();
+ getCompetitorList(page){
+ // companyUserId:this.companyUserId,
+ getCompetitorList(data).then(res => {
+ //删除商品
+ deleteService(item){
var that=this;
uni.showModal({
title: '提示',
- content: '确定取消订单吗',
+ content: '确定删除商品订单吗',
success: function (res) {
if (res.confirm) {
- orderId:item.orderId
+ id:item.id
- cancelOrder(data).then(res => {
+ deleteService(data).then(res => {
if(res.code==200){
icon:'success',
- title: '订单已取消',
+ title: '订单已删除',
that.mescroll.resetUpScroll()
}else{
@@ -140,57 +240,41 @@
- // tab切换
- orderStatusChange(item) {
- this.orderStatusValue = item.val
- if(item.val==1){
- this.dataList=this.dataList2
- this.mescroll.resetUpScroll()
- mescrollInit(mescroll) {
- this.mescroll = mescroll;
- /*下拉刷新的回调 */
- downCallback(mescroll) {
- mescroll.resetUpScroll()
- upCallback(page) {
- //联网加载数据
- var that = this;
- var data = {
- status:this.orderStatusValue,
- page: page.num,
- pageSize: page.size
- // getMyDoctorOrderList(data).then(res => {
- // if(res.code==200){
- // //设置列表数据
- // if (page.num == 1) {
- // that.dataList = res.data.list;
- // } else {
- // that.dataList = that.dataList.concat(res.data.list);
- // that.mescroll.endBySize(res.data.list.length, res.data.total);
- // }else{
- // icon:'none',
- // title: "请求失败",
- // that.dataList = null;
- // that.mescroll.endErr();
+ //删除竞品
+ deleteCompetitor(item){
+ var that=this;
+ uni.showModal({
+ title: '提示',
+ content: '确定删除竞品订单吗',
+ success: function (res) {
+ if (res.confirm) {
+ deleteCompetitor(data).then(res => {
+ icon:'success',
+ that.mescroll.resetUpScroll()
+ else if (res.cancel) {
- showDetail(item) {
- if(item.orderType==1){
- url: '/pages_doctor/doctorOrderIM?orderId='+item.orderId
+ showDetail(index,item) {
+ url: index==0?'/pages_company/addServe?type=edit&id='+item.id+'&userId='+this.userId+"&companyUserId="+this.companyUserId:'/pages_company/addCompetitors?type=edit&id='+item.id+'&userId='+this.userId+"&companyUserId="+this.companyUserId
@@ -7,14 +7,14 @@
<image :src="user.avatar==null?'../static/images/health/my_heads.png':user.avatar" mode="aspectFill"></image>
- <view class="name">{{user.nickName}}</view>
+ <view class="name">{{user.username||'微信用户'}}</view>
<view class="phone-box" v-if="user!=null">
<image class="w32 h32" src="../static/images/company/address_icon.png" mode=""></image>
<view class="address">
- 重庆
+ {{user.city||'-'}}
<view class="phone">
- {{utils.parsePhone(user.phonenumber)}}
+ {{user.phone?utils.parsePhone(user.phone):'-'}}
@@ -37,42 +37,42 @@
<view class="demands">
<view class="title">健康诉求</view>
- <view class="text">希望能够调理好糖尿病</view>
+ <view class="text">{{user.problemsToSolve||'-'}}</view>
<view class="used-tools2">
<view class="title">管理</view>
<view class="tools-list">
- <view class="item" @click="navgetTo('/pages_health/doc')">
+ <view class="item" @click="toHealth()">
<image src="../static/images/company/health_records_icon.png" mode=""></image>
<text class="text">健康档案</text>
- <view class="item" @click="navgetTo('')">
+ <view class="item" @click="toReport()">
<image src="../static/images/company/physical_examination_icon.png" mode=""></image>
<text class="text">体检信息</text>
- <view class="item" @click="navgetTo('/pages_company/executionRecord')">
+ <view class="item" @click="toRecord()">
<image src="../static/images/company/execution_record_icon.png" mode=""></image>
<text class="text">执行记录</text>
- <view class="item" @click="navgetTo('/pages_company/returnRecord')">
+ <view class="item" @click="navgetTo()">
<image src="../static/images/company/return_records_icon.png" mode=""></image>
<text class="text">回访记录</text>
- <view class="item" @click="navgetTo('/pages_health/buyOrder')">
+ <view class="item" @click="toOrder()">
<image src="../static/images/company/consumables_mall_icon.png" mode=""></image>
<text class="text">购买信息</text>
+ <view class="item" @click="toData()">
<image src="../static/images/company/comparison_indicators_icon.png" mode=""></image>
<text class="text">指标对比</text>
- <view class="item" @click="navgetTo('/pages_company/testRecord')">
<image src="../static/images/company/evaluation_record_icon.png" mode=""></image>
<text class="text">测评记录</text>
<image src="../static/images/company/follow_up_records_icon.png" mode=""></image>
<text class="text">跟进记录</text>
@@ -89,18 +89,20 @@
import {getUserInfo,getQrImg} from '@/api/companyUser'
+ import {getInfo,homeInfo} from '@/api/health.js'
statusBarHeight:'',
top:0,
- user:{
- nickName:'健康管家小左',
- phonenumber:'13996660261',
- deptName:'测试企业',
- avatar:null
- // user:null,
+ // user:{
+ // nickName:'健康管家小左',
+ // phonenumber:'13996660261',
+ // deptName:'测试企业',
+ // avatar:null
+ user:null,
+ info:null
@@ -110,14 +112,34 @@
return 'rgba(11,179,242, ' + top + ')';
- console.log("onload")
+ this.companyId=options.companyId;
+ this.getUserInfo()
- // this.getUserInfo()
+ // this.getHome()
+ getUserInfo(){
+ // var data={token:uni.getStorageSync('CompanyUserToken')}
+ getInfo({userId:this.userId}).then(
+ this.user=res.data;
alipay(){
// var url="http://alipay.yjf.runtzh.com/#/?companyId="+this.user.companyId+"&companyUserId="+this.user.userId
// uni.setClipboardData({
@@ -135,6 +157,31 @@
url:'/pages_company/alipayImg'
+ toHealth(){
+ url:'/pages_company/addDoc?userId='+this.userId+"&companyUserId="+this.companyUserId
+ toReport(){
+ url:'/pages_user/user/reportList?userId='+this.userId+"&companyUserId="+this.companyUserId
+ toRecord(){
+ url:'/pages_company/executionRecord?userId='+this.userId+"&companyUserId="+this.companyUserId
+ toData(){
+ url:'/pages_user/user/dataAnalysis?userId='+this.userId+"&companyUserId="+this.companyUserId
toCard(){
url:'/pages_company/card?cardId='+this.user.cardId
@@ -152,7 +199,7 @@
toOrder(){
- url:'/pages_company/storeOrder?companyId='+this.user.companyId+"&companyUserId="+this.user.userId
+ url:'/pages_company/buyOrder?userId='+this.user.userId+"&companyUserId="+this.companyUserId
toPackage(){
@@ -175,18 +222,13 @@
url:'/pages_company/order/coupon'
- getUserInfo(){
- var data={token:uni.getStorageSync('CompanyUserToken')}
- getUserInfo(data).then(
+ getHome(){
+ homeInfo({userId:this.userId}).then(
- this.user=res.data;
- else if(res.code==403){
- uni.setStorageSync('CompanyUserToken',null);
- uni.navigateBack({
- delta:-1
+ this.info=res.data;
icon:'none',
@@ -218,13 +260,13 @@
// 跳转页面
navgetTo(url) {
- url: url
+ // if(res){
+ // url: url+'?companyId='+this.companyId+"&companyUserId="+this.companyUserId
@@ -35,21 +35,39 @@
- <view class="btn-proxy" @click.stop="showDetail(item)">
+ <view class="btn-proxy" @click.stop="openEditMoney(1)">
设置代理价格
- <view class="btn-sale" @click.stop="showDetail(item)">
+ <view class="btn-sale" @click.stop="openEditMoney(2)">
设置销售价格
+ <view class="h20"></view>
+ <view class="popup-box" v-if="editShow">
+ <view class="info-mask" @click.stop="cancelEditMoney()" ></view>
+ <view class="info-form" >
+ <view class="title">{{type==1?'设置代理价格':'设置销售价格'}}</view>
+ <text class="label">{{type==1?'代理价格':'销售价格'}}</text>
+ <input type="text" v-model="proxyPrice" maxlength="10" placeholder="请输入价格" class="form-input" />
+ <view class="btns">
+ <view class="sub-btn" @click.stop="confirmEditMoney()">提交</view>
import {getCompanyStoreOrderList} from '@/api/storeOrder'
+ import {getUserInfo} from '@/api/companyUser'
@@ -57,6 +75,9 @@
searchKey:"",
+ type:0,
+ editShow:false,
+ proxyPrice:0,
// 上拉加载的配置
upOption: {
onScroll:true,
@@ -74,8 +95,8 @@
dataList: [
{name:'西航宇',phone:'18056647845',proxyPrice:0.8,salePrice:0.6,createTime:'2025-06-10 14:20',img:'/static/images/health/my_heads.png'},
- {name:'蓝西',phone:'18056647845',proxyPrice:1.0,salePrice:0.8,createTime:'2025-07-10 14:20',img:'/static/images/health/female_profile.png'}
+ ]
onLoad(options) {
@@ -91,6 +112,62 @@
this.searchKey=e.detail.value;
this.mescroll.resetUpScroll()
+ // getUserInfo(){
+ // getUserInfo(data).then(
+ // res => {
+ // if(res.code==200){
+ // this.user=res.data;
+ // else if(res.code==403){
+ // uni.setStorageSync('CompanyUserToken',null);
+ // uni.navigateBack({
+ // delta:-1
+ // }else{
+ // uni.showToast({
+ // icon:'none',
+ // title: res.msg,
+ // });
+ // rej => {}
+ // );
+ openEditMoney(value){
+ this.type=value
+ this.editShow = true
+ cancelEditMoney(){
+ this.editShow = false
+ confirmEditMoney(){
+ if(parseFloat(this.proxyPrice)>=0){
+ // var data={orderId:this.order.id,token:uni.getStorageSync('CompanyUserToken'),money:this.payMoney}
+ // editOrderMoney(data).then(
+ // this.editShow = false
+ // this.getMyStoreOrderById();
+ title: "价格应大于等于0",
mescrollInit(mescroll) {
this.mescroll = mescroll;
@@ -108,74 +185,13 @@
page: page.num,
pageSize: page.size
- // getCompanyStoreOrderList(data).then(res => {
showDetail(item) {
- url: './clientDetail?id='
+ // url: './clientDetail?companyId='+this.companyId+"&companyUserId="+this.companyUserId
- // cancel(item){
- // var that=this;
- // uni.showModal({
- // title: '提示',
- // content: '确定取消订单吗',
- // success: function (res) {
- // if (res.confirm) {
- // var data = {
- // orderId:item.id
- // };
- // cancelOrder(data).then(res => {
- // icon:'success',
- // title: "操作成功",
- // that.mescroll.resetUpScroll()
- // title: res.msg,
- // else if (res.cancel) {
- // },
- // pay(item) {
- // url: '../shopping/paymentOrder?orderId='+item.id
- // 查看物流
- // showDelivery(item) {
- // url: './storeOrderDelivery?orderId='+item.id
@@ -251,6 +267,98 @@
text-align: left;
padding:22rpx ;
+ .popup-box{
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ z-index: 999;
+ .info-mask {
+ background-color: rgba($color: #000000, $alpha: 0.5);
+ .info-form {
+ z-index: 1000;
+ width: 650rpx;
+ .title{
+ padding: 30rpx 0rpx 15rpx;
+ font-size: 40upx;
+ .form-box{
+ .form-item{
+ .label{
+ width: 160upx;
+ .form-input{
+ font-size: 34upx;
+ .btns{
+ .sub-btn{
.client-list{
.item{
background: #fff;
@@ -366,6 +474,7 @@
border-radius: 30rpx 30rpx 30rpx 30rpx;
@@ -0,0 +1,522 @@
+ <view class="datebox">
+ <!-- <view class="form-item">
+ <text class="label">日期</text>
+ {{form.completeTime}}
+ <input type="text" :value="form.dueDate" placeholder="请选择日期" placeholder-class="form-input" disabled="disabled" />
+ <image class="w48 h48" src="@/static/images/health/right_arrow_right_icon24.png"></image>
+ <text class="label">创建时间</text>
+ {{utils.timeFormat(form.createTime,'yyyy-mm-dd hh:MM:ss')}}
+ <text class="label">联系方式</text>
+ {{form.contactPhone}}
+ <text class="label">处理状态</text>
+ <picker class="birth-picker" mode="selector" @change="bindStatusChange($event,tags)" :range="tags" range-key="dictLabel">
+ <input type="text" :value="form.statusName" placeholder="请选择状态" placeholder-class="form-input" disabled="disabled" />
+ <view class="datebox2">
+ <view class="bold">投诉内容</view>
+ <view class="textinput">
+ <textarea v-model="form.content" auto-height maxlength='500' placeholder="请输入事项情况" disabled="true"/>
+ 确定
+ import {getComplaintById,updateComplaint,getCategory} from '@/api/companyUser.js'
+ import {getDictByKey} from '@/api/common.js'
+ import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+ mixins: [MescrollMixin],
+ time:this.utils.timeFormat(new Date(),'yyyy-mm-dd'),
+ type:null,
+ showType:1,
+ mescroll:null,
+ tags:[
+ {id:1,dictLabel:'待处理'},
+ {id:2,dictLabel:'处理中'},
+ {id:3,dictLabel:'已完成'},
+ {id:4,dictLabel:'已关闭'},
+ // 上拉加载的配置
+ upOption: {
+ onScroll:true,
+ use: true, // 是否启用上拉加载; 默认true
+ page: {
+ num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
+ size: 10 // 每页数据的数量,默认10
+ noMoreSize: 10, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
+ empty: {
+ icon:'/static/images/no_data.png',
+ tip: '暂无数据'
+ form:{
+ onLoad(option) {
+ this.type=option.type;
+ if(this.type=='edit'){
+ this.id=option.id;
+ // this.getDictByKey()
+ navgetTo(url){
+ url:url
+ this.form.dueDate= e.target.value
+ bindTimeChange: function(e) {
+ this.form.completeTime = e.target.value
+ bindStatusChange: function(e,list) {
+ this.form.status = list[e.target.value].id
+ this.form.statusName=list[e.target.value].dictLabel
+ getDictByKey(){
+ // var data={key:'todo_item_status'}
+ getCategory().then(
+ this.tags=res.data;
+ err => {
+ getInfo(){
+ // var data={id:this.recordId};
+ getComplaintById(this.id).then(
+ this.form=res.data;
+ // this.form.completeTime=this.form.completeTime.slice(0,5)
+ submit(){
+ if(this.form.status==null){
+ title: "请选择状态",
+ // if(this.form.recordTime==null){
+ // title: "记录时间不能为空",
+ // return;
+ // if(this.form.mealDescription==null){
+ // title: "用餐情况不能为空",
+ this.addRecord()
+ this.updateById()
+ updateById(){
+ updateComplaint(this.id,this.form).then(
+ uni.$emit('refreshComplaintList');
+ addRecord(){
+ addRecord(this.form).then(
+ uni.$emit('refreshToDoList');
+<style lang="scss" scoped>
+ @mixin u-flex($flexD, $alignI, $justifyC) {
+ flex-direction: $flexD;
+ align-items: $alignI;
+ justify-content: $justifyC;
+ .flex-bt {
+ @include u-flex(row, center, space-between);
+ .default {
+ .content{
+ .datebox {
+ margin-bottom: 20rpx;
+ line-height: 34rpx;
+ .datebox2{
+ padding:30rpx;
+ .textinput{
+ margin-top: 30rpx;
+ height:200rpx;
+ color: #999;
+ overflow-y: scroll;
+ .top-fixed{
+ z-index: 10;
+ .pub-tab-box{
+ padding: 0 40upx;
+ background-color: #FFFFFF;
+ .tab-inner{
+ overflow-x: auto;
+ .item{
+ font-size: 28upx;
+ white-space: nowrap;
+ color: #626468;
+ // margin-right: 60upx;
+ margin-right: 0;
+ color:#008FD3;
+ &::after {
+ content: "";
+ height: 8rpx;
+ background: linear-gradient(120deg, #31A1FE 0%, #008FD3 100%);
+ border-radius: 6upx 6upx 0upx 0;
+ .tab-bg{
+ width: 72upx;
+ height: 28upx;
+ top: 17upx;
+ left: 50%;
+ transform: translateX(-36upx);
+ z-index: -1;
+ .btn-box{
+ z-index: 9999;
+ padding: 30upx;
+ padding-bottom: 40rpx;
+ .sub-btn2{
+ border-radius: 44rpx 44rpx 44rpx 44rpx;
+ .phone-list{
+ // padding: 30rpx;
+ // border-bottom: 1rpx solid #ECECEC;
+ padding: 20rpx;
+ margin-bottom: 0;
+ .phone-name{
+ // justify-content: flex-start;
+ // padding-left: 24rpx;
+ .name{
+ .type{
+ .time{
+ margin-top: 14rpx;
+ .sms-list{
+ .box{
+ padding-top: 22rpx;
+ .state{
+ color: #2CAE5C;
@@ -0,0 +1,362 @@
+ <view class="top-fixed">
+ <!-- 事项列表 -->
+ <view class="filter">
+ <view :class="isShow==false?'time-box':'time-box active'" @tap="openCalendar()">
+ <view class="title">选择日期</view>
+ <image :src="isShow==false?'/static/images/company/time_arrow_icon.png':'/static/images/company/time_arrow_blue_icon.png'" class="w24 h24"></image>
+ <!-- <view class="list-box">
+ <image src="/static/images/company/list_matters_icon.png" class="w32 h32"></image>
+ <view class="title">事项列表</view>
+ <u-popup :show="isShow" mode="top" :round="12" customStyle="top: 110rpx;" @close="close">
+ <view class="calendar-box">
+ <pushangyuqi-calendar @onDayClick="onDayClick"></pushangyuqi-calendar>
+ </u-popup>
+ <mescroll-body top="110upx" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
+ <view class="sms-list">
+ <view v-for="(item,index) in dataList" :key="index" class="item" @click="showDetail(item)">
+ <view class="justify-between align-center">
+ <view class="title">{{item.categoryName}}</view>
+ <view class="state" :style="{'color':item.status==1?'#FF5030':item.status==2?'#FDBD27':'#2CAE5C'}">
+ {{item.status==1?'待处理':item.status==2?'处理中':item.status==3?'已完成':'已关闭'}}</view>
+ <view class="personnel">
+ {{utils.timeFormat(item.createTime,'yyyy-mm-dd hh:MM:ss')}}
+ </mescroll-body>
+ import pushangyuqiCalendar from '../components/pushangyuqi-calendar/pushangyuqi-calendar.vue'
+ getComplaintList
+ components:{
+ pushangyuqiCalendar
+ taskType: [{
+ name: "全部",
+ val: null
+ name: "固定任务",
+ val: 0
+ name: "工作计划",
+ val: 1
+ isShow:false,
+ showType: null,
+ mescroll: null,
+ onScroll: true,
+ icon: 'https://user.test.ylrztop.com/images/empty_icon.png',
+ onLoad(opt) {
+ if(opt.type!==null){
+ this.showType=opt.type
+ uni.$on('refreshComplaintList', () => {
+ //时间筛选
+ openCalendar(){
+ close(){
+ this.isShow=false
+ //日历
+ onDayClick(data){
+ this.curDate = data;
+ this.isShow = false
+ navgetTo(index) {
+ url: index == 0 ? '/pages_health/addServe' : '/pages_health/addCompetitors'
+ this.showType = item.val
+ startTime: this.curDate,
+ getComplaintList(data).then(res => {
+ that.dataList = res.data;
+ that.dataList = that.dataList.concat(res.data);
+ that.mescroll.endBySize(res.data.length, res.data.total);
+ showDetail(item) {
+ // if (item.orderType == 1) {
+ url: '/pages_company/complaintDetail?type=edit&id=' + item.id
+ page{
+ background-color:#EFF3F7;
+ background: #EFF3F7;
+ .calendar-box{
+ padding:0 30rpx;
+ .top-fixed {
+ z-index:10076;
+ .top-fixed2 {
+ top: 110rpx;
+ .filter{
+ .time-box{
+ padding:16rpx 48rpx;
+ padding-right: 20rpx;
+ .list-box{
+ padding-left: 16rpx;
+ .pub-tab-box {
+ padding: 0 20upx;
+ background-color: #EFF3F7;
+ .tab-inner {
+ height: 110upx;
+ line-height: 110upx;
+ // justify-content: space-between;
+ .item {
+ // flex: 1;
+ margin-right: 16upx;
+ border-radius: 36rpx 36rpx 36rpx 36rpx;
+ .text {
+ .tab-bg {
+ .btn-box2 {
+ image {
+ .sms-list {
+ .title {
+ .state {
+ .personnel {
+ margin-top: 16rpx;
@@ -0,0 +1,393 @@
+ <mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption"
+ :up="upOption">
+ <u-swipe-action>
+ <view class="form-swipe mb20" v-for="(item,index) in dataList" :key="index">
+ <u-swipe-action-item :options="options" @click="cancel(item,index)" :name="index"
+ :ref="'swipeAction' + index">
+ <view class="item" @click="showDetail(item)">
+ <view class="user-info">
+ <view class="user-top">
+ <view class="user-left">
+ <image :src="item.avatar==null?maleurl:item.avatar" class="w112 h112"></image>
+ <view class="ml32">
+ <view class="name">{{item.username!==null?item.username:'微信用户'}}</view>
+ <view class="age-box" :style="{'background-color':item.sex==0?'#EBF8FF':'#FCF0E7'}">
+ <u-icon :color="item.sex==0?'#008FD3':'#FF5030'" :name="item.sex==0?'man':'woman'"></u-icon>
+ <view class="age">{{utils.getAge(item.birthdate)}}岁</view>
+ <view class="user-phone">{{utils.parsePhone(item.phone)}}</view>
+ <view class="user-bottom">
+ <view class="btn" @click.stop="toBuy(item)">购买信息</view>
+ <view class="btn" @click.stop="toUser(item)">基本信息</view>
+ <view class="btn" @click.stop="toDoc(item)">健康档案</view>
+ </u-swipe-action-item>
+ </u-swipe-action>
+ <view class="h150"></view>
+ <!-- <view v-if="docs.length == 0" class="no-data-box" @click="getMyDocList()">
+ <image src="https://user.test.ylrztop.com/images/empty_icon.png" mode="aspectFit"></image>
+ <view class="empty-title">暂无数据</view>
+ <view class="sub-btn" @click="addDoc">
+ <text>创建用户信息</text>
+ import {getInfoList,deleteInfo} from '@/api/health.js'
+ dataList:[
+ // {userName:'西航宇',sex:1,birthday:'1990-01-01',phone:'16666666666'},
+ // {userName:'蓝西',sex:2,birthday:'1990-06-01',phone:'1888888888'},
+ // {userName:'西航宇',sex:1,birthday:'1993-01-01',phone:'16666666666'},
+ // {userName:'蓝西',sex:2,birthday:'1994-06-01',phone:'1888888888'},
+ // {userName:'蓝西',sex:2,birthday:'1994-06-01',phone:'1888888888'}
+ options: [{
+ text: '删除',
+ style: {
+ backgroundColor: '#FF5030'
+ uni.$on('refreshDoc', () => {
+ // this.getMyDocList()
+ url: url
+ toBuy(item){
+ url: '/pages_company/buyOrder?userId='+item.userId+'&companyUserId='+this.companyUserId
+ toUser(item){
+ url: '/pages_company/addUser?type=edit&userId='+item.userId+'&companyUserId='+this.companyUserId
+ toDoc(item){
+ url: '/pages_company/addDoc?userId='+item.userId+'&companyUserId='+this.companyUserId
+ showDetail(item){
+ url: '/pages_company/clientDetail?userId='+item.userId+"&companyUserId="+this.companyUserId
+ editDoc(item){
+ url: './addDoc?type=edit&docId='+item.docId
+ cancel(item, index) {
+ let test = 'swipeAction' + index
+ content: '确定删除用户信息吗',
+ success: function(res) {
+ userId:item.userId
+ deleteInfo(data).then(res => {
+ title: '操作成功',
+ that.$refs[test][0].closeHandler()
+ } else if (res.cancel) {
+ getInfoList(data).then(res => {
+ url: '/pages_company/addUser?type=add&companyId='+this.companyId+"&companyUserId="+this.companyUserId
+ // flex-direction: column;
+ .inner{
+ padding: 20upx 20upx 160upx;
+ border-radius: 20upx;
+ // padding: 40upx 30upx;
+ padding: 32rpx;
+ .user-info{
+ .user-top{
+ border-bottom: 1px solid #ECECEC;
+ .user-left{
+ justify-content: flex-start;
+ font-size: 36rpx;
+ .age-box{
+ width: 114rpx;
+ height: 40rpx;
+ .age{
+ font-size: 22rpx;
+ line-height: 22rpx;
+ .user-phone{
+ .user-bottom{
+ padding-top: 20rpx;
+ .btn{
+ width: 176rpx;
+ height: 60rpx;
+ border-radius: 30rpx 30rpx 30rpx 30rpx;
+ border: 1rpx solid #B2B2B2;
+ line-height: 60rpx;
+ margin-left:16rpx ;
+ border: 1rpx solid #008FD3;
+ .gray-tag{
+ height: 46upx;
+ line-height: 46upx;
+ padding: 0 16upx;
+ color: #333333;
+ background: #F7F7F7;
+ border-radius: 8upx;
+ margin-right: 10upx;
+ .blue-tag{
+ color: #4BC9B1;
+ background: #E2F6F2;
+ .stage-box{
+ overflow: hidden;
+ text-overflow: ellipsis;
+ margin-top: 34upx;
+ .stage{
+ font-size: 26upx;
+ color: #111111;
+ .stage-text{
+ color: #666666;
+ .progress-box{
+ margin-top: 18upx;
+ .period{
+ margin-top: 40upx;
@@ -21,6 +21,19 @@
+ <view class="title-box align-center justify-between">
+ <text class="left">饮食情况</text>
+ <view class="select-box2" @click="navgetTo('/pages_user/user/dietList')">
+ <image class="w24 h24" src="@/static/images/company/edit_add_icon.png"></image>
+ <text>记录饮食</text>
+ <view class="form-box mb20" v-if="foods.length>0">
+ <view class="form-item" v-for="(item,index) in foods">
+ <text class="label">{{item.mealDescription}}</text>
+ <text class="time2 ml20">{{item.recordTime.slice(0,5)}}</text>
健康数据
@@ -63,7 +76,7 @@
<view class="title-box align-center justify-between">
<text class="left">指标信息</text>
- <view class="select-box2">
+ <view class="select-box2" @click="navgetTo('/pages_user/user/editIndicator')">
<image class="w24 h24" src="@/static/images/company/edit_add_icon.png"></image>
<text>选择指标项</text>
@@ -82,6 +95,7 @@
其他
@@ -95,6 +109,7 @@
+ import {getMyRecordList} from '@/api/companyUser.js'
import RenCalendar from '@/components/ren-calendar/ren-calendar.vue'
getDocDetails,
@@ -109,6 +124,7 @@
curDate:'',
markDays:[],
+ foods:[],
@@ -146,31 +162,41 @@
this.curDate = today;
this.markDays.push(today);
this.type = option.type;
- console.log(this.type)
- if (this.type == 'edit') {
+ this.userId=option.userId;
+ uni.$on('refreshExecutionRecord', () => {
+ this.getMyRecordList()
+ onShow(){
//日历
onDayClick(data){
this.curDate = data.date;
- navgetTo(){
- url:'/pages_company/schedule'
+ //饮食
+ getMyRecordList() {
+ // var user=JSON.parse(uni.getStorageSync('userInfo'));
+ startDate:this.curDate,
+ "pageNum": 1,
+ "pageSize": 10,
+ getMyRecordList(data).then(
- this.form = res.data;
+ this.foods = res.data.list;
@@ -180,83 +206,17 @@
- submit() {
- if (this.form.userName == null) {
- title: "姓名不能为空",
- return;
- if (this.form.idCard == null) {
- title: "身份证号不能为空",
- if (this.form.sex == null) {
- title: "性别不能为空",
- if (this.form.birthday == null) {
- title: "出生年月不能为空",
- if (this.type == "add") {
- this.addDoc()
- } else if (this.type == "edit") {
- this.editDoc()
- if (res.code == 200) {
- icon: 'success',
- title: "操作成功",
- setTimeout(function() {
- delta: 1
- }, 500);
- } else {
- title: res.msg,
- rej => {}
+ getDocDetails() {
+ docId: this.docId
+ getDocDetails(data).then(
@@ -264,6 +224,7 @@
this.form.birthday = e.target.value
@@ -360,6 +321,13 @@
+ .time2{
.check{
@@ -1,8 +1,8 @@
<view class="top-cont">
- <image class="bg" src="/static/images/company/sales_management_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/sales_management_top_bg.png" mode="widthFix"></image>
<view :style="{height: statusBarHeight,background: bgColor }"></view>
- <u-navbar title="销售管理" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
+ <u-navbar title="销售管理" titleStyle="font-weight: 500;" @rightClick="rightClick" :autoBack="true"
:bg-color="bgColor">
</u-navbar>
@@ -65,33 +65,33 @@
<image class="w32 h32" src="../static/images/company/phone_icon16.png" mode=""></image>
+ {{user.phonenumber}}
<view class="msg-box">
- {{user.deptName}}
+ {{user.deptName||''}}
<view class="title">指标汇总</view>
<view class="index-box">
<view class="task">
- <view class="align-center">
+ <view class="align-center" @click="navgetTo('/pages_company/todoList?type=0')">
<image class="w48 h48" src="../static/images/company/appointed_task_icon.png" mode=""></image>
<view class="box-title">指派任务</view>
<image class="w24 h24" src="../static/images/company/right_arrow_right_icon.png" mode=""></image>
- <view class="prop">80%</view>
+ <view class="prop">{{(data[0].completionRate||0.00)+ "%"}}</view>
<view class="work">
- <view class="align-center" @click="navgetTo('/pages_company/addSchedule')">
+ <view class="align-center" @click="navgetTo('/pages_company/todoList?type=1')">
<image class="w48 h48" src="../static/images/company/work_item_icon.png" mode=""></image>
<view class="box-title">工作事项</view>
- <view class="prop">30%</view>
+ <view class="prop">{{(data[1].completionRate||0.00)+ "%"}}</view>
@@ -106,7 +106,7 @@
<image src="../static/images/company/to_do_list_icon.png" mode=""></image>
<text class="text">待办事项</text>
- <view class="item" @click="navgetTo('/pages_company/clientList')">
+ <view class="item" @click="toUser()">
<image src="../static/images/company/customer_profile_icon.png" mode=""></image>
<text class="text">客户档案</text>
@@ -114,7 +114,11 @@
<image src="../static/images/company/manager_examine_icon.png" mode=""></image>
<text class="text">管理师考核</text>
- <view class="item" @click="navgetTo('/pages_user/user/userTui')">
+ <view class="item" @click="navgetTo('/pages_company/clientList')">
+ <image src="../static/images/company/my_subordinate.png" mode=""></image>
+ <text class="text">我的下级</text>
+ <view class="item" @click="navgetTo('/pages_company/complaintList')">
<image src="../static/images/company/customer_complaints_icon.png" mode=""></image>
<text class="text">客户投诉</text>
@@ -129,19 +133,20 @@
- import {getUserInfo,getQrImg} from '@/api/companyUser'
+ import {getUserInfo,getQrImg,queryCateStatis} from '@/api/companyUser'
+ data:null,
@@ -156,14 +161,16 @@
+ this.queryCateStatis()
+ // this.queryCateStatis(1)
- navgetTo(url){
- url:url
+ // navgetTo(url){
+ // url:url
@@ -181,6 +188,16 @@
+ toUser(){
+ // url:'/pages_company/clientList?companyId='+this.user.companyId+"&companyUserId="+this.user.userId
+ url:'/pages_company/doc?companyId='+this.user.companyId+"&companyUserId="+this.user.userId
+ //客户档案
@@ -221,6 +238,22 @@
+ queryCateStatis(e){
+ queryCateStatis().then(
+ this.data=res.data;
getUserInfo(){
var data={token:uni.getStorageSync('CompanyUserToken')}
getUserInfo(data).then(
@@ -263,15 +296,15 @@
- // navgetTo(url) {
- // url: url
+ navgetTo(url) {
</script>
@@ -490,8 +523,8 @@
@@ -122,7 +122,7 @@
title: "壹柒玖康养集团-您的专属健康解决方案",
path: '/pages_company/order/confirmOrder?orderKey='+this.orderKey,
@@ -131,7 +131,7 @@
title:"壹柒玖康养集团-您的专属健康解决方案",
query:'orderKey='+this.orderKey,
@@ -870,7 +870,7 @@
color: #666666;
line-height: 1.8;
margin-top: 10upx;
- background: url(../../static/images/chu_query.png) no-repeat center center / cover;
+ background: url(https://user.test.ylrztop.com/images/chu_query.png) no-repeat center center / cover;
.logo{
@@ -40,6 +40,7 @@
<view v-if="showType==1" class="sub-btn" @click="navgetTo(orderStatusValue)">
@@ -4,7 +4,7 @@
<mescroll-body ref="mescrollRef">
- <image src="@/static/images/71014b69fdcc4b56ae2a84bdc28f11c3.png" mode="aspectFill" class="w208 h128 radius12"></image>
+ <image src="https://user.test.ylrztop.com/images/71014b69fdcc4b56ae2a84bdc28f11c3.png" mode="aspectFill" class="w208 h128 radius12"></image>
<view class="ask-text">{{item.name}}</view>
<view class="ask-time">{{item.time}}</view>
@@ -17,6 +17,7 @@
<!-- <view class="btn-box2">
@@ -0,0 +1,540 @@
+ <text class="label">截止时间</text>
+ {{form.dueDate}}
+ <!-- <picker class="birth-picker" mode="date" :start="time" @change="bindTimeChange">
+ <input type="text" :value="form.completeTime" placeholder="请选择时间" placeholder-class="form-input" disabled="disabled" />
+ </picker> -->
+ <text class="label">事项状态</text>
+ <!-- <view class="right-box">
+ {{form.statusText||''}}
+ <input type="text" :value="form.statusText" placeholder="请选择状态" placeholder-class="form-input" disabled="disabled" />
+ <text class="label">优先级</text>
+ {{form.priorityText||''}}
+ <view class="bold">事项情况</view>
+ <textarea v-model="form.description" auto-height maxlength='500' placeholder="请输入事项情况"/>
+ import {getFindById,updateById} from '@/api/companyUser.js'
+ // {id:0,name:'未完成'},
+ // {id:1,name:'进行中'},
+ // {id:2,name:'已完成'},
+ this.recordId=option.id;
+ this.getDictByKey()
+ this.form.status = list[e.target.value].dictValue
+ this.form.statusText=list[e.target.value].dictLabel
+ var data={key:'todo_item_status'}
+ var data={id:this.recordId};
+ getFindById(data).then(
+ updateById(this.form).then(
@@ -26,24 +26,25 @@
- <u-popup :show="isShow" mode="top" :round="12" customStyle="top: 110rpx;" @click="c">
<view class="calendar-box">
<pushangyuqi-calendar @onDayClick="onDayClick"></pushangyuqi-calendar>
</u-popup>
- <mescroll-body top="200upx" ref="mescrollRef">
+ <mescroll-body top="200upx" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
<view class="sms-list">
- <view v-for="(item,index) in dataList" :key="index" class="item">
<view class="justify-between align-center">
- <view class="title">{{item.content}}</view>
- <view class="state" :style="{'color':item.status==0?'#FF5030':'#2CAE5C'}">
- {{item.status==0?"未完成":"已完成"}}</view>
+ <view class="title">{{item.title}}</view>
+ <view class="state" :style="{'color':item.status==0?'#FF5030':item.status==1?'#FDBD27':'#2CAE5C'}">
+ {{item.statusText}}</view>
<view class="personnel">
- {{item.personnel}}
+ {{item.assigneeName}}
@@ -51,9 +52,8 @@
import pushangyuqiCalendar from '../components/pushangyuqi-calendar/pushangyuqi-calendar.vue'
- getMyDoctorOrderList,
- cancelOrder
- } from '@/api/doctorOrder.js'
+ getToDoList
@@ -64,19 +64,19 @@
taskType: [{
name: "全部",
- val: 0
name: "固定任务",
- val: 1
name: "工作计划",
- val: 2
isShow:false,
- showType: 0,
mescroll: null,
@@ -92,46 +92,34 @@
- dataList: [{
- orderId: 1,
- content: '发送20条营销短信',
- status: 0,
- personnel: '管理员张三分配'
- orderId: 2,
- status: 1,
- orderId: 3,
+ uni.$on('refreshToDoList', () => {
//时间筛选
openCalendar(){
this.isShow=!this.isShow
this.curDate = data;
this.isShow = false
navgetTo(index) {
- url: index == 0 ? '/pages_health/addServe' : '/pages_health/addCompetitors'
+ // url: index == 0 ? '/pages_health/addServe' : '/pages_health/addCompetitors'
// tab切换
orderStatusChange(item) {
@@ -149,38 +137,38 @@
//联网加载数据
var that = this;
- status: this.showType,
+ cateId: this.showType,
+ getToDoList(data).then(res => {
- if (item.orderType == 1) {
- url: '/pages_doctor/doctorOrderIM?orderId=' + item.orderId
+ url: '/pages_company/todoDetail?type=edit&id=' + item.id
@@ -15,7 +15,7 @@
<!-- 快速问诊、找医生 -->
<view class="online-inquiry" :style="{marginTop:top}">
<view class="item" @click="navTo('./postConsult')">
- <image class="bg-img" src="@/static/images/online_treat.png" mode=""></image>
+ <image class="bg-img" src="https://user.test.ylrztop.com/images/online_treat.png" mode=""></image>
<text class="title">快速问诊</text>
<text class="sub-title">智能科室 快速匹配</text>
@@ -23,7 +23,7 @@
<view class="item" @click="navTo('./doctorList')">
- <image class="bg-img" src="@/static/images/chu_query.png" mode=""></image>
+ <image class="bg-img" src="https://user.test.ylrztop.com/images/chu_query.png" mode=""></image>
<text class="title">找医生</text>
<text class="sub-title">全国60万医生任你选</text>
@@ -1,13 +1,13 @@
<view class="hb column hidden container">
- <image class="bg" src="/static/images/health/uric_acid_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/uric_acid_top_bg.png" mode="widthFix"></image>
<u-navbar title="尿酸监测" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
<view class="top-fixed">
- <dateTimePicker @onChange="onChangeTime" :tabColor="'blue'"/>
+ <dateTimePicker @onChange="onChangeTime" :tabColor="'blue'" />
<scroll-view class="content" :scroll-y="true">
<view class="content-box">
@@ -31,31 +31,31 @@
<view class="align-center justify-between">
<view class="tltle">尿酸异常记录</view>
- <view class="more" @click="navgetTo()">
+ <view class="more" @click="goPage()">
<text>查看更多</text>
<view class="type-box">
<view class="box bg3">
<view class="fs32 mb12">高风险</view>
- <text class="subtitle">4次</text>
+ <text class="subtitle">{{count.count0}}次</text>
<image class="w24 h24" src="/static/images/health/yz_arrow_icon.png"></image>
<view class="box bg2">
<view class="fs32 mb12">不良</view>
<image class="w24 h24" src="/static/images/health/qw_arrow_icon.png"></image>
<view class="box bg1">
<view class="fs32 mb12">正常</view>
<image class="w24 h24" src="/static/images/health/zc_arrow_icon.png"></image>
@@ -82,6 +82,8 @@
+ import {getUserInfo} from '@/api/user.js'
+ import {getDataList,getLatest,getLatestList} from '@/api/healthUser.js'
import dateTimePicker from "@/pages_echarts/components/dateTimePicker/dateTimePicker.vue"
components: {
@@ -89,6 +91,7 @@
+ examDate: null,
loading: false,
isEmpty: false,
statusBarHeight: '',
@@ -109,46 +112,48 @@
indexInfo: [],
chartData: {},
- opts: {
- padding: [15, 0, 15, 0],
- enableScroll: false,
- dataLabel: false,
- legend: {
- show: false
- xAxis: {
- disableGrid: true,
- fontSize: 12,
- axisLine: false,
- fontColor: '#ccc',
- labelCount: 7,
- format: "formatterTime",
- yAxis: {
- gridType: "dash",
- dashLength: 2,
- data: [{
- min: 0,
- // max: 100,
+ opts: {
+ padding: [15, 0, 15, 0],
+ enableScroll: false,
+ dataLabel: false,
+ legend: {
+ show: false
+ xAxis: {
+ disableGrid: true,
fontSize: 12,
- }]
- extra: {
- tooltip: {
+ axisLine: false,
+ fontColor: '#ccc',
+ labelCount: 7,
+ format: "formatterTime",
+ yAxis: {
gridType: "dash",
- showArrow: false,
- legendShow: true,
- legendShape: "circle"
+ dashLength: 2,
+ data: [{
+ min: 0,
+ // max: 100,
+ fontSize: 12,
+ }]
- column: {
- type: "group",
- width: 12,
- barBorderRadius: [4, 4, 0, 0],
+ extra: {
+ tooltip: {
+ gridType: "dash",
+ showArrow: false,
+ legendShow: true,
+ legendShape: "circle"
+ column: {
+ type: "group",
+ width: 12,
+ barBorderRadius: [4, 4, 0, 0],
+ },count:{},
+ user:null
@@ -158,11 +163,19 @@
+ console.log(options, '--')
+ // this.userId=options.userId
// 获取系统信息
+ this.userId=options.userId
const sys = uni.getSystemInfoSync()
this.statusBarHeight = sys.statusBarHeight + 'px'
- this.getServerData();
+ // this.getUserInfo()
+ // this.getServerData(0);
+ uni.$on('refreshAcid', () => {
+ this.aIndex = 0
+ this.getServerData(0);
onUnload() { //普通页面在 onUnload 生命周期中执行
uni.$emit('stop')
@@ -179,60 +192,133 @@
this.aIndex = item.val
- onChangeTime(time) {
- const param = {
- startTime: this.utils.timeFormat(time[0],'yyyy/mm/dd hh:MM:ss'),
- endTime: this.utils.timeFormat(time[1],'yyyy/mm/dd hh:MM:ss'),
- deviceId: ''
+ onChangeTime(time,tab) {
+ if (this.userId) {
+ this.examDate=time
+ this.getServerData(tab);
// this.queryParam = param
// this.getServerData(param)
// this.getAbnormalInfo(param)
- getServerData() {
+ getUserInfo().then(
+ if(res.user!=null){
+ this.user=res.user;
+ // this.getServerData(0)
+ this.utils.loginOut();
+ getServerData(index) {
+ var that=this
+ var data={
+ measurementType: 4,
+ pageNum:1,
+ pageSize:100,
+ timeSearch:this.examDate,
+ // "value1": 85,
+ // "measurementTime": this.utils.timeFormat(new Date(),'hh:MM:ss')
+ const weekMap= {
+ 1: '一',
+ 2: '二',
+ 3: '三',
+ 4: '四',
+ 5: '五',
+ 6: '六',
+ 0: '日' // 注意:JavaScript中getDay()返回0表示周日
+ getLatestList(data).then(
+ // console.log(res.count0,'res')
+ this.count=res.count
+ var list=res.data.list
+ var time=list.map(item => item.measurementTime).reverse()
+ var week=list.map(item => '周'+weekMap[item.week]).reverse()
+ var month=list.map(item => item.measurementDate).reverse()
+ setTimeout(() => {
+ //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
+ let res = {
+ categories:index==0?time:index==1?week:month,
+ series: [{
+ name: "测量值",
+ data: list.map(item => item.value1)
+ this.chartData = JSON.parse(JSON.stringify(res));
+ )
+ getServerData1() {
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let res = {
categories: ["00:00", "06:00", "12:00", "18:00", "23:59"],
- series: [{
- name: "尿酸",
- data:[{
- value:23,
- color:'#FDBD27',
- },{
- value:123,
- color:'#FF5558',
- value:90,
- color:'#52D087',
- // data: res.data.map(item => ({
- // value: item.val,
- // color: item.status === 1 ? "#FDBD27" : item.status ===
- // 2 ? "#FF5558" : "#52D087"
- // }))
+ // series: [{
+ // name: "尿酸",
+ // data: [{
+ // value: 23,
+ // color: '#FDBD27',
+ // }, {
+ // value: 123,
+ // color: '#FF5558',
+ // value: 90,
+ // color: '#52D087',
+ // ]
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
+ goPage(index) {
+ url: '/pages_echarts/acidList?userId='+this.userId
- url: '/pages_echarts/acidList'
+ url: '/pages_echarts/acidDetail?type=add&userId='+this.userId
goToUser() {
@@ -326,7 +412,8 @@
padding: 20rpx;
-overflow: hidden;
.btn-box {
height: 120upx;
padding: 0 30upx;
@@ -379,34 +466,36 @@ overflow: hidden;
height: 500rpx;
margin-top: 30rpx;
-.legend {
- // height: 34rpx;
- margin-top: 44rpx;
- // @include u-flex(row, center, space-between);
- font-family: PingFang SC, PingFang SC;
- font-weight: 400;
- font-size: 24rpx;
- color: #626468;
- &-item {
- flex: 1;
- text-align: center;
- // @include u-flex(row, center, center);
- &-dot {
- width: 16rpx;
- height: 16rpx;
- border-radius: 50%;
- margin: 16rpx;
+ .legend {
+ // height: 34rpx;
+ margin-top: 44rpx;
+ // @include u-flex(row, center, space-between);
+ // @include u-flex(row, center, center);
+ &-dot {
+ width: 16rpx;
+ height: 16rpx;
+ margin: 16rpx;
.more {
@@ -29,14 +29,19 @@
<view class="scale">
- <simpleScale ref="simpleScale" :minVal="0" :maxVal="33" :int="false" :single="10" :h="h" :active="active" :scroll="false" :style="style"
+ <simpleScale ref="simpleScale" :minVal="0" :maxVal="1000" :int="false" :single="10" :h="h" :active="active" :style="style"
@value="getScroll" />
+ <view class="h40"></view>
+ <view class="sub-btn" @click="submit()">记录</view>
+ import {addData,getDataById,getLatest,updateData} from '@/api/healthUser.js'
import simpleScale from "@/pages_echarts/components/simpleScale/simpleScale.vue"
// import { bgInfo } from "@/api/pages_watch/healthMonitoring.js"
@@ -45,13 +50,12 @@
- // 表示有效日期范围的开始,字符串格式为"YYYY-MM-DD"
- startDate: "2020-01-01",
+ startDate:this.utils.timeFormat(new Date()) ,
// 表示有效日期范围的结束,字符串格式为"YYYY-MM-DD"
endDate: this.utils.timeFormat(new Date()),
- date: "2024-01-01",
- time: "17:12",
- active: "6",
+ date: this.utils.timeFormat(new Date(),'yyyy-mm-dd'),
+ time: this.utils.timeFormat(new Date(),'hh:MM:ss'),
+ active: "0",
style: {
line: '#ccc',
@@ -60,10 +64,19 @@
fontColor: '#333',
fontSize: 16
- h: uni.upx2px(88)
+ h: uni.upx2px(88),
+ console.log(options)
+ this.type=options.type;
+ this.getDataById();
+ // this.listByIndicator()
// const param = JSON.parse(option.param)
// this.date = param.createTime && param.createTime.split(' ')[0]
// this.time = param.createTime && param.createTime.substring(11, 16)
@@ -84,6 +97,114 @@
getScroll(e) {
this.active = e
+ getDataById(){
+ getDataById({id:this.id}).then(
+ this.date=res.data.measurementDate
+ this.time=res.data.measurementTime
+ this.active= String(res.data.value1)
+ "measurementType": 4, //测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI)
+ "value1": this.active, //数值1(测量值1 测量值只有一个时默认填写/身高cm/舒张压)
+ "measurementDate": this.date, //测量日期 yyyy-MM-dd
+ "measurementTime":this.time//测量时间 HH:mm:ss
+ this.addData(data)
+ data.id=this.id
+ this.updateData(data)
+ addData(data){
+ addData(data).then(
+ uni.$emit('refreshAcidList');
+ // uni.$emit('refreshAcid');
+ updateData(data){
+ updateData(data).then(
+ title: "更新成功",
+ getLatest(){
+ measurementType:2
+ getLatest(data).then(
// 查询数据
getList() {
this.loading = true
@@ -132,6 +253,27 @@
font-size: 28rpx;
color: #999999;
+ width: 388rpx;
+ height: 72rpx;
+ line-height: 72upx;
+ background: #4585F8;
.container {
padding: 20rpx 24rpx;
font-family: PingFang SC, PingFang SC;
@@ -139,6 +281,27 @@
font-size: 32rpx;
color: #333333;
+ background: #2CAE5C;
.datebox {
padding: 0 32rpx;
margin-bottom: 20rpx;
@@ -20,22 +20,23 @@
<view class="tab-time">
<picker class="birth-picker" mode="date" fields="month" @change="bindDateChange">
<view class="left-box">
- <view>{{day}}</view>
+ <view>{{dayName}}</view>
<image class="w48 h48" src="../static/images/health/arrow_down.png"></image>
- <mescroll-body top="176upx" ref="mescrollRef">
+ <mescroll-body top="176upx" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption"
+ <view v-for="(item,index) in dataList" :key="index" class="item" @longpress="cancel(item)">
- {{item.date}}
+ {{item.measurementDate}}
- <view class="bottom-box" v-for="(it,idx) in item.list" :key="idx" @click="showDetail(it)">
+ <view class="bottom-box" @click="showDetail(item)">
- <view :class="'title bg'+it.type">{{it.typeName}}</view>
- <view class="data">{{it.data}} μmol/L</view>
+ <view :class="'title bg'+item.level">{{item.level==0?'正常':item.level==1?'不良':'高风险'}}</view>
+ <view class="data">{{item.value1}} μmol/L</view>
- <view class="time">{{utils.timeFormat(it.createTime, "hh:MM")}}</view>
+ <view class="time">{{item.measurementTime}}</view>
@@ -44,13 +45,14 @@
+ import {getDataList,getLatest,deleteData} from '@/api/healthUser.js'
- day:this.utils.timeFormat(new Date(),'yyyy年mm月'),
+ day:this.utils.timeFormat(new Date(),'yyyy-mm'),
+ dayName:this.utils.timeFormat(new Date(),'yyyy年mm月'),
{name:"全部",val:""},
{name:"正常",val:"0"},
@@ -69,66 +71,28 @@
- list:[
- type:1,
- typeName:'正常',
- data:10.9,
- createTime:'2025-06-25 12:39:55'
- type:2,
- typeName:'不良',
- createTime:'2025-06-25 22:39:55'
- type:3,
- typeName:'高风险',
- createTime:'2025-06-25 17:39:55'
- date:'2025-06-25',
- id:1
- createTime:'2025-02-25 12:39:55'
- createTime:'2025-02-25 20:39:55'
- date:'2025-02-25',
- id:2
+ dataList: []
+ uni.$on('refreshAcidList', () => {
+ this.orderStatusValue=''
+ uni.$emit('refreshAcid');
// 时间选择
- this.day = this.utils.timeFormat(new Date(e.target.value),'yyyy年mm月')
+ this.day = this.utils.timeFormat(e.target.value,'yyyy-mm')
+ this.dayName=this.utils.timeFormat(e.target.value,'yyyy年mm月')
@@ -139,19 +103,20 @@
+ content: '确定删除记录吗',
+ deleteData(data).then(res => {
+ title: '删除成功',
@@ -168,9 +133,6 @@
this.orderStatusValue = item.val
@@ -184,36 +146,39 @@
+ "userId": this.userId,
+ "measurementType": 4,
+ level:this.orderStatusValue,
+ timeSearch:this.day,
+ pageNum:page.num,
+ pageSize:page.size
+ getDataList(data).then(res => {
+ that.dataList = that.data.List.concat(res.data.list);
showDetail(item){
- console.log(item,'pp')
+ // console.log(item,'pp')
- url: '/pages_echarts/acidDetail'
+ url: '/pages_echarts/acidDetail?type=edit&id='+item.id+'&userId='+this.userId
@@ -376,13 +341,13 @@
margin-right: 18rpx;
border-radius:50%;
- .bg1{
+ .bg0{
background: #52D087;
- .bg2{
+ .bg1{
background: #FFB992;
- .bg3{
+ .bg2{
background: #FF5558;
.data{
- <image class="bg" src="/static/images/health/blood_pressure_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/blood_pressure_top_bg.png" mode="widthFix"></image>
<u-navbar title="血压检测" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
@@ -28,7 +28,7 @@
<view class="tltle">血压异常记录</view>
@@ -37,21 +37,21 @@
<view class="fs32 mb12">轻微</view>
+ <text class="subtitle">{{count.count1}}次</text>
<view class="fs32 mb12">严重</view>
+ <text class="subtitle">{{count.count2}}次</text>
@@ -66,6 +66,8 @@
@@ -125,7 +127,9 @@
activeType: "solid"
+ count:{},
@@ -135,11 +139,17 @@
+ uni.$on('refreshBloodPressure', () => {
+ this.aIndex=0
@@ -156,45 +166,101 @@
- // this.queryParam = param
- // this.getServerData(param)
- // this.getAbnormalInfo(param)
- //模拟从服务器获取数据时的延时
- setTimeout(() => {
- //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
- let res = {
- categories: ["1", "2", "3", "4", "5"],
- name: "收缩压",
- color: "#FF5030",
- data: [35, 180, 125, 307, 40]
- name: "舒张压",
- color: "#008FD3",
- data: [135, 18, 125, 370, 40]
+ measurementType: 3,
+ //模拟从服务器获取数据时的延时
+ name: "收缩压",
+ color: "#FF5030",
+ name: "舒张压",
+ color: "#008FD3",
+ data: list.map(item => item.value2)
- this.chartData = JSON.parse(JSON.stringify(res));
- navgetTo(index) {
- url: '/pages_echarts/bloodPressureList'
+ url: '/pages_echarts/bloodPressureList?userId='+this.userId
- goToUser() {
+ navgetTo() {
- url: '/pages_health/addUser?type=edit&docId='
+ url: '/pages_echarts/bloodPressureDetail?type=add&userId='+this.userId
@@ -29,7 +29,7 @@
- <simpleScale ref="simpleSBPScale" :minVal="0" :maxVal="300" :int="true" :single="10" :h="h" :active="sbp" :scroll="false" :style="style"
+ <simpleScale ref="simpleSBPScale" :minVal="0" :maxVal="300" :int="true" :single="10" :h="h" :active="sbp" :style="style"
@value="getSBPScroll" />
<view class="datebox-detail-header flex-bt" style="margin-top: 48rpx;">
@@ -40,14 +40,19 @@
- <simpleScale ref="simpleDBPScale" :minVal="0" :maxVal="300" :int="true" :single="10" :h="h" :active="dbp" :scroll="false" :style="style"
+ <simpleScale ref="simpleDBPScale" :minVal="0" :maxVal="300" :int="true" :single="10" :h="h" :active="dbp" :style="style"
@value="getDBPScroll" />
// import { bpInfo } from "@/api/pages_watch/healthMonitoring.js"
@@ -57,11 +62,11 @@
// 表示有效日期范围的开始,字符串格式为"YYYY-MM-DD"
// 收缩压
sbp: "0",
// 舒张压
@@ -77,12 +82,20 @@
h: uni.upx2px(88)
- const param = JSON.parse(option.param)
+ // const param = JSON.parse(option.param)
- // this.sbp = String(param.sbp || 0)
- // this.dbp = String(param.dbp || 0)
+ // this.active = String(param.num || 0)
this.$nextTick(()=>{
this.$refs.simpleSBPScale.init()
this.$refs.simpleDBPScale.init()
@@ -103,38 +116,91 @@
getDBPScroll(e) {
this.dbp = e
- // 查询数据
- getList() {
- this.loading = true
- startTime: this.date.replace(/-/g, '/') +" " +this.time + ":00",
- endTime: this.date.replace(/-/g, '/') +" " + this.time + ":59",
- deviceId: uni.getStorageSync("deviceId"),
+ this.sbp= res.data.value1?String(res.data.value1):'0'
+ this.dbp= res.data.value1?String(res.data.value2):'0'
+ "measurementType": 3, //测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI)
+ "value1": this.sbp, //数值1(测量值1 测量值只有一个时默认填写/身高cm/舒张压)
+ "value2": this.dbp,
- bpInfo(param).then(res => {
- this.loading = false
- if(res.data && res.data.length > 0) {
- this.date = res.data[0].createTime && res.data[0].createTime.split(' ')[0]
- this.time = res.data[0].createTime && res.data[0].createTime.substring(11, 16)
- this.sbp = String(res.data[0].sbp || 0)
- this.dbp = String(res.data[0].dbp || 0)
- console.log(this.sbp,this.dbp)
- this.sbp = "0"
- this.dbp = "0"
+ uni.$emit('refreshBloodPressureList');
+ // uni.$emit('refreshBloodPressure');
- this.$nextTick(()=>{
- this.$refs.simpleSBPScale.init()
- this.$refs.simpleDBPScale.init()
- }).catch(() => {
@@ -162,6 +228,27 @@
+ background: #FF5039;
- <view class="data">{{it.data}} mmHg</view>
+ <view :class="'title bg'+item.level">{{item.level==0?'正常':item.level==1?'轻微':'严重'}}</view>
+ <view class="data">{{item.value1}} mmHg</view>
- <view class="time">{{utils.formatDate(it.createTime)}}</view>
- typeName:'轻微',
- typeName:'严重',
+ uni.$on('refreshBloodPressureList', () => {
+ uni.$emit('refreshBloodPressure');
+ "measurementType": 3,
- url: '/pages_echarts/bloodPressureDetail'
+ url: '/pages_echarts/bloodPressureDetail?type=edit&id='+item.id+'&userId='+this.userId
@@ -1,26 +1,26 @@
- <image class="bg" src="/static/images/health/blood_sugar_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/blood_sugar_top_bg.png" mode="widthFix"></image>
<u-navbar title="血糖检测" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
<!-- tab切换 -->
- <dateTimePicker @onChange="onChangeTime" :tab-color="'gree'"/>
+ <dateTimePicker @onChange="onChangeTime" :tab-color="'gree'" :form-tab="aIndex"/>
<view class="tltle">血糖趋势</view>
<view class="subtitle">单位:mmol/L</view>
<view class="charts-box">
- <qiun-data-charts type="area" :opts="opts" :chartData="chartData" />
+ <qiun-data-charts type="area" :opts="opts" :chartData="chartData" tooltipFormat="bpTooltip"/>
<view class="tltle">血糖异常记录</view>
@@ -29,21 +29,21 @@
@@ -72,6 +72,8 @@
@@ -91,12 +93,12 @@ import dateTimePicker from "@/pages_echarts/components/dateTimePicker/dateTimePi
title: '疾病史',
type: "healthHistory",
desc: '',
- bgicon: "/static/images/health/jbs_icon.png",
+ bgicon: "https://user.test.ylrztop.com/images/jbs_icon.png",
}, {
title: '症状史',
type: "symptomHistory",
- bgicon: "/static/images/health/zzs_icon.png",
+ bgicon: "https://user.test.ylrztop.com/images/zzs_icon.png",
opts: {
@@ -145,8 +147,11 @@ import dateTimePicker from "@/pages_echarts/components/dateTimePicker/dateTimePi
gradient: true,
@@ -156,54 +161,127 @@ import dateTimePicker from "@/pages_echarts/components/dateTimePicker/dateTimePi
+ console.log(options,'--')
- onUnload() { //普通页面在 onUnload 生命周期中执行
- uni.$emit('stop')
+ uni.$on('refreshBloodSugar', () => {
- onHide() { //tabBar页面在onHide生命周期中执行
- onPageScroll(e) {
- //console.log(e)
- this.top = e.scrollTop;
+ // onUnload() { //普通页面在 onUnload 生命周期中执行
+ // uni.$emit('stop')
+ // onHide() { //tabBar页面在onHide生命周期中执行
+ // onPageScroll(e) {
+ // //console.log(e)
+ // this.top = e.scrollTop;
+ // console.log(time,tab,'----')
+ // this.getServerData(tab)
+ measurementType: 2,
+ uni.hideLoading();
+ data: list.map(item => item.value1).reverse()
- categories: ["00:00", "06:00", "12:00", "18:00", "23:59"],
- name: "血糖",
- data: [35, 8, 25, 37, 4]
+ url: '/pages_echarts/bloodSugarList?userId='+this.userId
- url: '/pages_echarts/bloodSugarList'
+ url: '/pages_echarts/bloodSugarDetail?type=add&userId='+this.userId
+ <simpleScale ref="simpleScale" :minVal="0" :maxVal="33" :int="false" :single="10" :h="h" :active="active" :style="style"
+ "measurementType": 2, //测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI)
+ uni.$emit('refreshBloodSugarList');
+ // uni.$emit('refreshBloodSugar');
@@ -139,6 +260,27 @@
- <view class="data">{{it.data}} mmol/L</view>
+ <view class="data">{{item.value1}} mmol/L</view>
@@ -69,108 +71,68 @@
+ uni.$on('refreshBloodSugarList', () => {
+ uni.$emit('refreshBloodSugar');
url: index==0?'/pages_health/addServe':'/pages_health/addCompetitors'
- uni.showModal({
- title: '提示',
- success: function (res) {
- if (res.confirm) {
- icon:'success',
- that.mescroll.resetUpScroll()
- }else{
- icon:'none',
+ cancel(item){
- else if (res.cancel) {
+ "measurementType": 2,
- url: '/pages_echarts/bloodSugarDetail'
+ url: '/pages_echarts/bloodSugarDetail?type=edit&id='+item.id+'&userId='+this.userId
@@ -46,6 +46,10 @@
type: Number,
default: 0
+ formTab:{
+ default: 0
from: {
type: String,
default: ""
@@ -108,8 +112,19 @@
this.resetTime()
+ mounted(){
+ if(this.formTab!==null){
+ var item={
+ label: '每日',
+ value: 'day'
+ this.handleTab(item,this.formTab)
+ // this.activeTab=this.formTab
handleTab(item,index) {
+ // console.log(index,'zhix')
this.activeTab = index
this.fields = item.value == 'week' ? 'day' : item.value
if(this.activeTab == 0) { // 每日
@@ -169,23 +184,26 @@
resetTime() {
- this.startTime = this.value + " 00:00:00"
+ this.startTime = this.value
this.endTime = this.value + " 23:59:59"
+ this.$emit("onChange",this.startTime,this.activeTab)
} else if(this.activeTab == 1) { // 每周
let y = this.value.split('-')[0];
let m = this.value.split('-')[1];
let res = weekjs.getWeeksByMonth(y, m,this.value,0);
this.weekValue = res.week.formatVal
- this.startTime = this.weekValue.split('至')[0] + " 00:00:00"
- this.endTime = this.weekValue.split('至')[1] + " 23:59:59"
+ this.startTime = this.weekValue.split('至')[0]
+ this.endTime = this.weekValue.split('至')[1]
+ this.$emit("onChange",this.startTime+';'+this.endTime,this.activeTab)
} else if(this.activeTab == 2) { // 每月
this.startTime = this.utils.timeFormat(this.value, 'yyyy-mm-dd') + " 00:00:00"
const currentYear = this.value.split('-')[0]
const currentMonth = this.value.split('-')[1]
const lastday = new Date(currentYear, currentMonth, 0)
this.endTime = this.utils.timeFormat(lastday, 'yyyy-mm-dd') + " 23:59:59"
+ this.$emit("onChange",this.value,this.activeTab)
- this.$emit("onChange",[this.startTime,this.endTime,this.value,this.activeTab])
getWeeks(res) {
if (res) {
@@ -206,18 +206,22 @@ export default {
computed: {},
- watch: {},
+ watch: {
+ active(index){
+ this.init();
onReady() {
// const min = parseInt(this.min, 10) || 0;
// const max = parseInt(this.max, 10) || 100;
// this.min = min;
// this.max = max;
- // this.init();
created() {
mounted() {
+ //this.init();
// 初始化
- <image class="bg" src="/static/images/health/hips_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/hips_top_bg.png" mode="widthFix"></image>
<u-navbar title="臀围" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
@@ -31,7 +31,7 @@
<qiun-data-charts type="line" :opts="opts" :chartData="chartData" />
- <view class="legend">
+ <!-- <view class="legend">
<view class="legend-item">
<view class="legend-dot" style="background-color: #52D087;"></view><text>正常</text>
@@ -41,6 +41,38 @@
<view class="legend-dot" style="background-color: #FF5030;"></view><text>偏大</text>
+ <view class="content-box">
+ <view class="align-center justify-between">
+ <view class="tltle">臀围异常记录</view>
+ <text>查看更多</text>
+ <view class="type-box">
+ <view class="box bg1">
+ <view class="fs32 mb12">正常</view>
+ <text class="subtitle">{{JSON.stringify(count.count0)}}次</text>
+ <image class="w24 h24" src="/static/images/health/zc_arrow_icon.png"></image>
+ <view class="box bg2">
+ <view class="fs32 mb12">偏小</view>
+ <image class="w24 h24" src="/static/images/health/qw_arrow_icon.png"></image>
+ <view class="box bg3">
+ <view class="fs32 mb12">偏大</view>
+ <image class="w24 h24" src="/static/images/health/yz_arrow_icon.png"></image>
<view class="h40"></view>
@@ -52,13 +84,15 @@
dateTimePicker
+ examDate:null,
top: 0,
aIndex: 0,
@@ -111,7 +145,9 @@
activeType: "hollow"
@@ -121,11 +157,15 @@
+ uni.$on('refreshHips', () => {
@@ -142,35 +182,71 @@
- categories: ["周一", "周二", "周三", "周四", "周五"],
- name: "测量值",
- data:[0,100,0,0,0]
+ userId: this.userId,
+ measurementType: 1,
+ url: '/pages_echarts/hipsList?userId='+this.userId
- url: '/pages_echarts/hipsList'
+ url: '/pages_echarts/hipsDetail?type=add&userId='+this.userId
@@ -313,7 +389,34 @@
+ .type-box {
+ margin-top: 20rpx;
+ .box {
+ width: 158rpx;
+ // height: 144rpx;
+ &.bg1 {
+ background: #FAFFFC;
+ border: 2rpx solid #EBFFF3;
+ &.bg2 {
+ background: #FEFAF8;
+ border: 2rpx solid #FDF7F3;
+ &.bg3 {
+ background: #FFFCFC;
+ border: 2rpx solid #FCF4F4;
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
padding: 24rpx;
<view class="container">
<view class="datebox">
- <picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
+ <picker mode="date" :value="date" :start="startDate" @change="bindDateChange">
<view class="datebox-item border-line flex-bt">
<view>日期</view>
<view class="datebox-item-right">
@@ -10,7 +10,7 @@
- <picker mode="time" :value="time" @change="bindTimeChange">
+ <picker mode="time" fields="second" :value="time" @change="bindTimeChange" >
<view class="datebox-item flex-bt">
<view>测量时间</view>
@@ -29,14 +29,20 @@
+ <simpleScale ref="simpleScale" :minVal="0" :maxVal="200" :int="false" :single="10" :h="h" :active="active" :style="style"
+import {addData,getDataById,getLatest,updateData} from '@/api/healthUser.js'
@@ -46,12 +52,12 @@
@@ -60,14 +66,19 @@
+ form:null
- // const param = JSON.parse(option.param)
- // this.date = param.createTime && param.createTime.split(' ')[0]
- // this.time = param.createTime && param.createTime.substring(11, 16)
- // this.active = String(param.num || 0)
this.$refs.simpleScale.init()
@@ -75,15 +86,124 @@
bindDateChange(e) {
this.date = e.detail.value
- this.getList()
+ // this.getList()
bindTimeChange(e) {
- this.time = e.detail.value
+ // console.log(e,'e')
+ this.time = e.detail.value+':00'
+ "measurementType": 1, //测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI)
+ uni.$emit('refreshHipsList');
+ measurementType:1
@@ -139,6 +259,27 @@
+ background: #7A73E0;
- <view class="data">{{it.data}} CM</view>
+ <view :class="'title bg'+item.level">{{item.level==0?'正常':item.level==1?'偏小':'偏大'}}</view>
+ <view class="data">{{item.value1}} cm</view>
- typeName:'偏小',
- typeName:'偏大',
+ uni.$on('refreshHipsList', () => {
+ uni.$emit('refreshHips');
+ "measurementType": 1,
- url: '/pages_echarts/hipsDetail'
+ url: '/pages_echarts/hipsDetail?type=edit&id='+item.id+'&userId='+this.userId
- <image class="bg" src="/static/images/health/waist_circumference_top_bg.png" mode="widthFix"></image>
+ <image class="bg" src="https://user.test.ylrztop.com/images/waist_circumference_top_bg.png" mode="widthFix"></image>
<u-navbar title="腰围" titleStyle="font-weight: bold;" @rightClick="rightClick" :autoBack="true"
+ <view class="tltle">腰围异常记录</view>
@@ -52,6 +84,7 @@
@@ -59,6 +92,7 @@
@@ -121,11 +157,18 @@
+ // console.log(options,'===')
+ // this.user=JSON.parse(uni.getStorageSync('userInfo'))
+ uni.$on('refreshWaistLine', () => {
+ // this.getServerData();
@@ -142,35 +185,79 @@
+ // this.examDate = {
+ // startTime: this.utils.timeFormat(time[0],'yyyy/mm/dd hh:MM:ss'),
+ // endTime: this.utils.timeFormat(time[1],'yyyy/mm/dd hh:MM:ss'),
+ // deviceId: ''
+ measurementType: 0,
+ url: '/pages_echarts/waistLineList?userId='+this.userId
- url: '/pages_echarts/waistLineList'
+ url: '/pages_echarts/waistLineDetail?type=add&userId='+this.userId
@@ -312,6 +399,34 @@ padding: 20rpx;
@@ -46,12 +51,12 @@
@@ -60,14 +65,19 @@
@@ -75,15 +85,123 @@
+ "measurementType": 0, //测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI)
+ uni.$emit('refreshWaistLineList');
+ measurementType:0
@@ -139,6 +257,27 @@
+ uni.$on('refreshWaistLineList', () => {
+ uni.$emit('refreshWaistLine');
+ "measurementType": 0,
- url: '/pages_echarts/waistLineDetail'
+ url: '/pages_echarts/waistLineDetail?type=edit&id='+item.id+'&userId='+this.userId
@@ -49,19 +49,20 @@
<view class="bg-white p30 radius16 mt30">
<view class="bold">上传检测报告或患处照片<text class="color-price">*</text></view>
- <view class="justify-start align-center mt20" @click="showImg()">
- <view v-for="(item,index) in imagelist" :key="index" @click="actpeople"
- class="justify-start align-center ml20">
+ <view class="justify-start align-center mt20">
+ <view v-for="(item,index) in imgList" :key="index" @tap="viewImage" :data-url="imgList[index]"
+ class="img-box justify-start align-center mr20">
<image :src="item" class="w120 h120 radius8 " mode="aspectFill" @click="showImg(item)"></image>
+ <image class="close-img" src="@/static/images/close32.png" mode="" @tap.stop="delImg" :data-index="index"></image>
- <view class="column align-center bg-light w120 h120 radius8 center" v-if="imagelist.length<=4">
+ <view class="column align-center bg-light w120 h120 radius8 center" @tap="chooseImage" v-if="imgList.length<4" >
<u-icon name="plus" ></u-icon>
<view class="fs24">上传报告</view>
<view class="justify-between fs24 color-text1 mt20">
<view>最多上传4张图片</view>
- <view><text>0</text>/4</view>
+ <view><text>{{imgList.length}}</text>/4</view>
<view class="h200"></view>
@@ -122,10 +123,84 @@
actsee:null,
- imagelist:[]
+ imgList:[],
+ photos:[]
+ // 选择上传的图片
+ chooseImage() {
+ console.log('图片')
+ uni.showActionSheet({
+ itemList: ['相册', '拍照'],
+ if (res.tapIndex == 0) {
+ //从相册选择
+ that.chooseImageFunction('album')
+ } else if (res.tapIndex == 1) {
+ //拍照
+ that.chooseImageFunction('camera')
+ fail: function(res) {
+ chooseImageFunction: function(type) {
+ uni.chooseImage({
+ count: 4, // 默认9
+ sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+ sourceType: [type],
+ success: (res) => {
+ filePath: res.tempFilePaths[0],
+ // 根据接口具体返回格式 赋值具体对应url
+ if (this.imgList.length != 0) {
+ this.imgList = this.imgList.concat(res.tempFilePaths)
+ this.imgList = res.tempFilePaths
+ this.photos = this.photos.concat(JSON.parse(uploadFileRes.data).url)
+ // 查看图片
+ viewImage(e) {
+ uni.previewImage({
+ urls: this.imgList,
+ current: e.currentTarget.dataset.url
+ // 删除上传的图片
+ delImg(e) {
+ content: '确定要删除照片吗?',
+ cancelText: '取消',
+ confirmText: '确定',
+ success: res => {
+ that.imgList.splice(e.currentTarget.dataset.index, 1)
+ this.photos.splice(e.currentTarget.dataset.index, 1);
submit(){
if(this.userid==null){
@@ -242,6 +317,16 @@
border: 2rpx solid #008FD3;
+.img-box{
+.close-img{
+ width: 32upx;
+ height: 32upx;
+ top:2upx;
+ right: 2upx;
.textinput{
height:200rpx;
@@ -4,27 +4,27 @@
<text class="label">竞品公司</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入竞品公司"
<text class="label">产品</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入产品"
<text class="label">价格</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入价格"
<text class="label">服务</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入竞品公司服务方式"
<text class="label">免费服务次数</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入服务次数"
@@ -40,10 +40,8 @@
@@ -72,34 +70,32 @@
- sexChange(type) {
- this.form.sex = type
- radioClick(item) {
- this.checked=item.id
@@ -113,22 +109,6 @@
// if (this.form.userName == null) {
// uni.showToast({
@@ -158,17 +138,14 @@
// });
// return;
// }
@@ -176,7 +153,7 @@
@@ -191,8 +168,8 @@
@@ -200,7 +177,7 @@
@@ -215,10 +192,6 @@
- // 出生日期选择
- bindDateChange: function(e) {
<text class="form-title">身体信息</text>
- <text class="label">身高</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入身高"
<text class="unit">cm</text>
- <text class="label">体重</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入体重"
<text class="unit">kg</text>
- <text class="label">腰围</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入腰围"
- placeholder-class="form-input" />
- <text class="label">臀围</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入臀围"
@@ -36,17 +36,17 @@
<text class="label">高血糖</text>
<radio-group style="display: flex;align-items: center;">
<label style="margin-right: 50upx;">
- <radio @click="sexChange(1)" value="1" :checked="form.sex===1"
style="margin-right: 16upx;" />
<text class="sex-text">无</text>
</label>
- <radio @click="sexChange(2)" value="2" :checked="form.sex===2"
<text class="sex-text">轻微</text>
<label>
- <radio @click="sexChange(3)" value="2" :checked="form.sex===2"
<text class="sex-text">严重</text>
@@ -54,25 +54,25 @@
<text class="label">测量值</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入测量值"
<text class="unit">mmol/L</text>
<text class="label">高血压</text>
@@ -80,31 +80,31 @@
<text class="label">收缩压</text>
<text class="unit">mmHg</text>
<text class="label">舒张压</text>
<text class="label">高血脂</text>
@@ -114,17 +114,17 @@
<text class="label">高尿酸</text>
@@ -132,25 +132,25 @@
<text class="unit">μmol/L</text>
<text class="label">高体重</text>
<text class="sex-text">正常</text>
<text class="sex-text">偏瘦</text>
<text class="sex-text">偏重</text>
@@ -161,35 +161,49 @@
<text class="form-title">其他病史</text>
<view class="form-item wrap">
- <view class="form-item-tag" v-for="(item, index) in tags" :key="index" @click="radioClick(item)">
- <view :class="checked==item.id?'tag active':'tag'">
- {{item.name}}
- <view class="form-item-tag mt16">
- <view class="tag">
+ 其他
<text class="form-title">症状史</text>
<view class="sub-btn" @click="submit()">保存</view>
@@ -199,168 +213,279 @@
addDoc,
+ } from '@/api/healthUser.js'
- famaleurl:"/static/images/health/female_profile.png",
- maleurl:"/static/images/health/my_heads.png",
- checked:1,
- tags: [{
- name: '心脏病',
- checked:true,
- id: 1
- name: '脑梗死',
- checked:false,
- id: 2
- name: '肾病',
- id: 3
- name: '脂肪肝',
- id: 4
- }],
+ // console.log(this.type)
sexChange(type) {
this.form.sex = type
icon: 'none',
<style lang="scss">
@@ -403,7 +528,7 @@
&:last-child {
border-bottom: none;
.label {
width: 150upx;
@@ -429,7 +554,7 @@
@@ -438,9 +563,10 @@
- .form-item-tag{
margin-right: 16rpx;
- .tag{
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #ECECEC;
@@ -449,15 +575,16 @@
font-size: 24rpx;
- &.active{
background: #F0FAFF;
color: #008FD3;
@@ -6,57 +6,62 @@
<view class="form-item justify-between">
<text class="label">头像</text>
- <image :src="maleurl" class="w90 h90"></image>
- <!-- <button class="wx-head" type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
- </button> -->
- <text class="label">性别</text>
<view class="sex-box">
- <view :class="form.sex===1?'sex-item active':'sex-item'" @click="sexChange(1)" >
- <u-icon name="man" :color="form.sex===1?'#FF5030':'#898E91'" size="20"></u-icon>
+ <u-icon name="man" :color="form.sex==0?'#008FD3':'#EBF8FF'" size="20"></u-icon>
<text>男</text>
- <view :class="form.sex===2?'sex-item active':'sex-item'" @click="sexChange(2)" >
- <u-icon name="woman" :color="form.sex===2?'#FF5030':'#898E91'" size="20"></u-icon>
<text>女</text>
<picker class="birth-picker" mode="date" @change="bindDateChange">
- <text class="label">手机号</text>
- <input maxlength="11" class="input-width" type="idcard" v-model="form.idCard" placeholder="请输入手机号" placeholder-class="form-input" />
- <text class="label">身份证号</text>
<input maxlength="18" class="input-width" type="idcard" v-model="form.idCard" placeholder="请如实填写身份证号" placeholder-class="form-input" />
- <text class="label">退休前工作单位</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入工作单位"
- <text class="label">可支配收入</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入支配收入"
- <text class="label">实际消费</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入实际消费"
@@ -64,11 +69,11 @@
<text class="form-title">家庭地址及居住情况</text>
- <text class="label">市区</text>
- <picker class="birth-picker" mode="region" @change="bindDateChange">
- <input type="text" :value="form.birthday" placeholder="请选择市区" placeholder-class="form-input" disabled="disabled" />
@@ -77,13 +82,13 @@
<text class="label">小区名称</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入小区名称"
<text class="label">门牌</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入门牌号"
@@ -91,13 +96,13 @@
<text class="label">面积</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入面积"
<text class="label">楼层</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入楼层"
@@ -105,13 +110,13 @@
<text class="form-title">家庭情况</text>
<text class="label">伴侣</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入伴侣姓名"
<text class="label">伴侣年龄</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入伴侣年龄"
@@ -119,36 +124,39 @@
<text class="label">子辈单位</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入子辈工作单位"
<text class="label">孙辈学校</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入所在学校"
<text class="form-title">会员情况</text>
<text class="label">是否是会员</text>
- <picker class="birth-picker" mode="selector" @change="bindDateChange" :range="array">
- <input type="text" :value="form.birthday" placeholder="请选择是否是会员" placeholder-class="form-input" disabled="disabled" />
<text class="label">会员分类</text>
- <input type="text" :value="form.birthday" placeholder="请选择会员分类" placeholder-class="form-input" disabled="disabled" />
@@ -159,10 +167,10 @@
<text class="label">加入时间</text>
- <input type="text" :value="form.birthday" placeholder="请选择加入时间" placeholder-class="form-input" disabled="disabled" />
@@ -171,10 +179,10 @@
<text class="label">到期时间</text>
- <input type="text" :value="form.birthday" placeholder="请选择到期时间" placeholder-class="form-input" disabled="disabled" />
@@ -182,10 +190,10 @@
<text class="label">管理月份</text>
- <picker class="birth-picker" mode="date" fields="month" @change="bindDateChange">
- <input type="text" :value="form.birthday" placeholder="请选择管理月份" placeholder-class="form-input" disabled="disabled" />
@@ -196,13 +204,13 @@
<text class="form-title">特殊情况</text>
<text class="label">职位</text>
- <input class="input-width" type="text" v-model="form.userName" placeholder="请输入职位"
<text class="label">癖好</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入癖好"
@@ -210,30 +218,30 @@
<text class="label">平日喜好</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入平日喜好"
<text class="label">信仰</text>
- <input maxlength="10" class="input-width" type="text" v-model="form.userName" placeholder="请输入信仰"
<text class="label">担忧</text>
- <text class="form-title">其他</text>
<!-- <text class="label">备注</text> -->
- <textarea maxlength="200" class="form-textarea" v-model="form.remark" placeholder="请输入用户想解决的问题" />
- <textarea maxlength="200" class="form-textarea" v-model="form.remark" placeholder="请输入健康管理师对用户的建议" />
@@ -245,6 +253,7 @@
+ import {getInfo,updateInfo,deleteInfo,addInfo,getMember} from '@/api/healthUser.js'
@@ -258,58 +267,73 @@
maleurl:"/static/images/health/my_heads.png",
checked:1,
- array:['是','否'],
+ // 定义直辖市列表,用于判断特殊处理
@@ -319,7 +343,29 @@
onChooseAvatar(e){
let {
avatarUrl
} = e.detail;
@@ -331,100 +377,159 @@
'user': 'test' // 上传附带参数
success: (uploadFileRes) => {
@@ -517,6 +622,16 @@
.right{
.sex-box{
flex:1;
@@ -543,6 +658,12 @@
margin-left: 12rpx;
&.active{
background: #FCF0E7;
color:#FF5030
@@ -552,11 +673,13 @@
.form-textarea{
- color: #999999;
height: 100upx;
padding: 4upx 0;
.birth-picker {
flex: 1;
@@ -1,320 +0,0 @@
- <view class="content">
- <view class="inner">
- <view v-for="(item,index) in docs" :key="index" class="item" @click="showDetail(item)">
- <view class="user-info">
- <view class="user-top">
- <view class="user-left">
- <image :src="maleurl" class="w112 h112"></image>
- <view class="ml32">
- <view class="name">{{item.userName}}</view>
- <view class="age-box" :style="{'background-color':item.sex==1?'#EBF8FF':'#FCF0E7'}">
- <u-icon :color="item.sex==1?'#008FD3':'#FF5030'" :name="item.sex==1?'man':'woman'"></u-icon>
- <view class="age">{{utils.getAge(item.birthday)}}岁</view>
- <view class="user-phone">{{utils.parsePhone(item.phone)}}</view>
- <view class="user-bottom">
- <view class="btn" @click="navgetTo('/pages_health/buyOrder?type=add')">购买信息</view>
- <view class="btn" @click="navgetTo('/pages_health/addUser?type=add')">基本信息</view>
- <view class="btn" @click="navgetTo('/pages_health/addDoc?type=add')">健康档案</view>
- <view v-if="docs.length == 0" class="no-data-box" @click="getMyDocList()">
- <image src="../../static/images/no_data.png" mode="aspectFit"></image>
- <view class="empty-title">暂无数据</view>
- <view class="btn-box">
- <view class="sub-btn" @click="addDoc">
- <image src="/static/images/health/nav_add_icon24.png" class="w48 h48"></image>
- <text>创建用户信息</text>
- import {getMyDocList,delDoc} from '@/api/doc.js'
- docs:[
- {userName:'西航宇',sex:1,birthday:'1990-01-01',phone:'16666666666'},
- {userName:'蓝西',sex:2,birthday:'1990-06-01',phone:'1888888888'},
- {userName:'西航宇',sex:1,birthday:'1993-01-01',phone:'16666666666'},
- {userName:'蓝西',sex:2,birthday:'1994-06-01',phone:'1888888888'},
- {userName:'蓝西',sex:2,birthday:'1994-06-01',phone:'1888888888'}
- // this.getMyDocList()
- // uni.$on('refreshDoc', () => {
- showDetail(item){
- url: './docDetail?docId='+item.docId
- editDoc(item){
- url: './addDoc?type=edit&docId='+item.docId
- delDoc(item){
- title:"提示",
- content:"确认删除吗?",
- showCancel:true,
- cancelText:'取消',
- confirmText:'确定',
- success:res=>{
- if(res.confirm){
- // 用户点击确定
- var data={docId:item.docId}
- delDoc(data).then(
- this.getMyDocList()
- title: "请求失败",
- // 否则点击了取消
- getMyDocList(){
- title:"正在加载中"
- getMyDocList().then(
- this.docs=res.data;
- url: '/pages_health/addUser?type=add'
- page{
- .content{
- .inner{
- padding: 20upx 20upx 160upx;
- border-radius: 20upx;
- margin-bottom: 20upx;
- // padding: 40upx 30upx;
- padding: 32rpx;
- &:last-child{
- margin-bottom: 0;
- .user-info{
- .user-top{
- align-items: flex-start;
- border-bottom: 1px solid #ECECEC;
- padding-bottom: 40rpx;
- .user-left{
- justify-content: flex-start;
- .name{
- font-size: 36rpx;
- color: #222426;
- text-align: left;
- .age-box{
- border-radius: 24rpx 24rpx 24rpx 24rpx;
- margin-top: 16rpx;
- width: 114rpx;
- height: 40rpx;
- .age{
- font-size: 22rpx;
- line-height: 22rpx;
- .user-phone{
- font-size: 28rpx;
- text-align: right;
- .user-bottom{
- justify-content: flex-end;
- padding-top: 20rpx;
- .btn{
- width: 176rpx;
- height: 60rpx;
- border-radius: 30rpx 30rpx 30rpx 30rpx;
- border: 1rpx solid #B2B2B2;
- line-height: 60rpx;
- margin-left:16rpx ;
- border: 1rpx solid #008FD3;
- color: #008FD3;
- .gray-tag{
- height: 46upx;
- line-height: 46upx;
- padding: 0 16upx;
- color: #333333;
- background: #F7F7F7;
- border-radius: 8upx;
- margin-right: 10upx;
- .blue-tag{
- color: #4BC9B1;
- background: #E2F6F2;
- .stage-box{
- white-space: nowrap;
- text-overflow: ellipsis;
- margin-top: 34upx;
- .stage{
- .stage-text{
- .progress-box{
- margin-top: 18upx;
- .period{
- margin-top: 40upx;
- .btn-box{
- z-index: 9999;
- padding: 30upx;
- position: fixed;
- bottom: 0;
- left: 0;
- // background: #FFFFFF;
- .sub-btn{
- height: 88upx;
- line-height: 88upx;
- font-size: 30upx;
- color: #FFFFFF;
- background: #008FD3;
- border-radius: 44upx;
- margin-right: 16rpx;