diff --git a/stdiet-ui/package.json b/stdiet-ui/package.json index e9357aaf0..76287eff4 100644 --- a/stdiet-ui/package.json +++ b/stdiet-ui/package.json @@ -64,6 +64,7 @@ "vue": "2.6.10", "vue-count-to": "1.0.13", "vue-cropper": "0.4.9", + "vue-qr": "^2.3.0", "vue-router": "3.0.2", "vue-scrollto": "^2.20.0", "vue-splitpane": "1.0.4", diff --git a/stdiet-ui/src/components/ContractDrawer/index.vue b/stdiet-ui/src/components/ContractDrawer/index.vue index 2facf1ccf..c315d1e20 100644 --- a/stdiet-ui/src/components/ContractDrawer/index.vue +++ b/stdiet-ui/src/components/ContractDrawer/index.vue @@ -50,21 +50,27 @@ width="200" /> - <el-table-column - label="合同地址" - align="center" - prop="path" - width="80" - > + <el-table-column label="合同地址" align="center" prop="path"> <template slot-scope="scope"> <el-button type="text" + style="margin-right: 8px" icon="el-icon-copy-document" @click="handleCopy(scope.row.path)" class="copyBtn" :data-clipboard-text="copyValue" >复制 </el-button> + <el-popover placement="top" trigger="click"> + <VueQr :text="copyValue" :logoSrc="logo" /> + <el-button + slot="reference" + icon="el-icon-picture-outline" + type="text" + @click="handleCopy(scope.row.path)" + >二维码</el-button + > + </el-popover> </template> </el-table-column> <el-table-column label="操作" align="center" width="180"> @@ -108,15 +114,18 @@ import { delContract, listContract } from "@/api/custom/contract"; import ContractDetail from "@/components/ContractDetail"; import Clipboard from "clipboard"; import ContractAdd from "@/components/ContractAdd"; - +import VueQr from "vue-qr"; +const logo = require("@/assets/logo/logo_b.png"); export default { name: "CustomerContractDrawer", components: { "contract-detail": ContractDetail, "add-contract": ContractAdd, + VueQr, }, data() { return { + logo, visible: false, title: "", data: undefined, diff --git a/stdiet-ui/src/components/HeatStatisticsDrawer/index.vue b/stdiet-ui/src/components/HeatStatisticsDrawer/index.vue index 2f050501e..1e0b4b929 100644 --- a/stdiet-ui/src/components/HeatStatisticsDrawer/index.vue +++ b/stdiet-ui/src/components/HeatStatisticsDrawer/index.vue @@ -10,16 +10,34 @@ <div class="app-container"> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button icon="el-icon-share" size="small" title="点击复制链接" class="copyBtn" type="primary" :data-clipboard-text="copyValue" @click="handleCopy()">外食计算器</el-button> + <el-button + icon="el-icon-share" + size="small" + title="点击复制链接" + class="copyBtn" + type="primary" + :data-clipboard-text="copyValue" + @click="handleCopy()" + >外食计算器</el-button + > </el-col> + <el-popover :placement="bottom" trigger="click"> + <VueQr :text="copyValue" :logoSrc="logo" /> + <el-button slot="reference">二维码</el-button> + </el-popover> </el-row> - <el-table :data="foodHeatStatisticsList" > - <el-table-column label="日期" align="center" prop="edibleDate" width="120"> + <el-table :data="foodHeatStatisticsList"> + <el-table-column + label="日期" + align="center" + prop="edibleDate" + width="120" + > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.edibleDate, '{y}-{m}-{d}') }}</span> + <span>{{ parseTime(scope.row.edibleDate, "{y}-{m}-{d}") }}</span> </template> </el-table-column> - <!-- <el-table-column label="食材" align="center" prop="ingredient" /> + <!-- <el-table-column label="食材" align="center" prop="ingredient" /> <el-table-column label="通俗计量" align="center" prop="unitName"> <template slot-scope="scope"> {{ scope.row.number ? (scope.row.number + "" + (scope.row.unitName != null ? scope.row.unitName : "")) : "" }} @@ -27,62 +45,87 @@ </el-table-column> <el-table-column label="质量(克)" align="center" prop="quantity" />--> - <el-table-column label="可摄入量" align="center" prop="maxHeatValue" /> + <el-table-column + label="可摄入量" + align="center" + prop="maxHeatValue" + /> <el-table-column label="食材热量" align="center" prop="heatValue" /> <el-table-column label="热量缺口" align="center" prop="heatGap" /> - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> + <el-table-column + label="操作" + align="center" + class-name="small-padding fixed-width" + > <template slot-scope="scope"> <el-button size="mini" type="text" @click="handleDetail(scope.row)" v-hasPermi="['custom:foodHeatStatistics:query']" - >详情</el-button> + >详情</el-button + > <el-button size="mini" type="text" icon="el-icon-edit" @click="handleCalculate(scope.row)" - >计算</el-button> + >计算</el-button + > <el-button size="mini" type="text" icon="el-icon-delete" @click="handleOnDeleteClick(scope.row)" v-hasPermi="['custom:foodHeatStatistics:remove']" - >删除</el-button> + >删除</el-button + > </template> </el-table-column> </el-table> <pagination - v-show="total>0" + v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="fetchHeatList" /> - <heatStatisticsCalculate ref="heatStatisticsCalculateRef"></heatStatisticsCalculate> - <heatStatisticsDetail ref="heatStatisticsDetailRef"></heatStatisticsDetail> - + <heatStatisticsCalculate + ref="heatStatisticsCalculateRef" + ></heatStatisticsCalculate> + <heatStatisticsDetail + ref="heatStatisticsDetailRef" + ></heatStatisticsDetail> </div> </el-drawer> </div> </template> <script> - import { listFoodHeatStatistics, getFoodHeatStatistics, delFoodHeatStatistics, addFoodHeatStatistics, updateFoodHeatStatistics, exportFoodHeatStatistics } from "@/api/custom/foodHeatStatistics"; - import Clipboard from 'clipboard'; - import HeatStatisticsCalculate from "@/components/HeatStatisticsCalculate"; - import HeatStatisticsDetail from "@/components/HeatStatisticsDetail"; +import { + listFoodHeatStatistics, + getFoodHeatStatistics, + delFoodHeatStatistics, + addFoodHeatStatistics, + updateFoodHeatStatistics, + exportFoodHeatStatistics, +} from "@/api/custom/foodHeatStatistics"; +import Clipboard from "clipboard"; +import HeatStatisticsCalculate from "@/components/HeatStatisticsCalculate"; +import HeatStatisticsDetail from "@/components/HeatStatisticsDetail"; +import VueQr from "vue-qr"; +const logo = require("@/assets/logo/logo_b.png"); export default { name: "HeatStatisticsDrawer", components: { - 'heatStatisticsCalculate':HeatStatisticsCalculate, - 'heatStatisticsDetail': HeatStatisticsDetail + heatStatisticsCalculate: HeatStatisticsCalculate, + heatStatisticsDetail: HeatStatisticsDetail, + VueQr, }, data() { return { + logo, visible: false, title: "", data: undefined, @@ -94,7 +137,7 @@ export default { pageNum: 1, pageSize: 10, }, - copyValue: "" + copyValue: "", }; }, methods: { @@ -106,33 +149,31 @@ export default { } this.title = `「${this.data.name}」热量统计列表`; this.queryParams.customerId = data.id; + this.copyValue = + window.location.origin.replace("manage", "sign") + + "/foodHeatCalculator/" + + this.data.encId; this.fetchHeatList(); }, fetchHeatList() { - listFoodHeatStatistics(this.queryParams).then(response => { + listFoodHeatStatistics(this.queryParams).then((response) => { this.foodHeatStatisticsList = response.rows; this.total = response.total; this.visible = true; }); }, - handleAdd() { - - }, + handleAdd() {}, handleOnClosed() { this.data = undefined; this.copyValue = ""; }, handleOnDeleteClick(data) { const ids = data.id || this.ids; - this.$confirm( - '是否确认删除该数据项?', - "警告", - { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning", - } - ) + this.$confirm("是否确认删除该数据项?", "警告", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) .then(function () { return delFoodHeatStatistics(ids); }) @@ -143,21 +184,20 @@ export default { .catch(function () {}); }, handleCopy() { - this.copyValue = window.location.origin.replace('manage', 'sign') + "/foodHeatCalculator/"+this.data.encId; - const btnCopy = new Clipboard('.copyBtn'); + new Clipboard(".copyBtn"); this.$message({ - message: '拷贝成功', - type: 'success' + message: "拷贝成功", + type: "success", }); }, - handleCalculate(data){ - this.$refs.heatStatisticsCalculateRef.showDialog(data,() => { + handleCalculate(data) { + this.$refs.heatStatisticsCalculateRef.showDialog(data, () => { this.fetchHeatList(); }); }, - handleDetail(data){ - this.$refs.heatStatisticsDetailRef.showDialog(data, this.data.name); - } + handleDetail(data) { + this.$refs.heatStatisticsDetailRef.showDialog(data, this.data.name); + }, }, }; </script> diff --git a/stdiet-ui/src/components/PhysicalSignsDialog/index.vue b/stdiet-ui/src/components/PhysicalSignsDialog/index.vue index d7702d4dd..5c237474e 100644 --- a/stdiet-ui/src/components/PhysicalSignsDialog/index.vue +++ b/stdiet-ui/src/components/PhysicalSignsDialog/index.vue @@ -1,112 +1,267 @@ <template> - <el-dialog :visible.sync="visible" :title="title" append-to-body @closed="onClosed"> + <el-dialog + :visible.sync="visible" + :title="title" + append-to-body + @closed="onClosed" + > <div v-if="showFlag"> - <div style="float:right;margin-top:-10px;margin-bottom: 10px;" v-show="dataList.length > 0"> - <!-- 只有新版健康评估信息才可修改,旧的体征数据不支持修改 --> - <el-button type="info" v-show="dataType == 0" @click="generateReport()" plain>下载报告</el-button> - <el-button type="info" v-show="dataType == 0" @click="handleEditGuidanceClick()" plain>减脂指导</el-button> - <el-button v-hasPermi="['custom:healthy:edit']" type="info" v-show="dataType == 0" @click="handleEditRemarkClick()" plain>修改备注</el-button> - <el-button v-hasPermi="['custom:healthy:edit']" type="warning" v-show="dataType == 0" @click="handleEditHealthyClick()" plain>修改信息</el-button> - <el-button type="danger" v-hasPermi="['custom:healthy:remove']" @click="handleDelete()" plain>删除信息</el-button> - </div> - <!-- 客户健康评估 --> - <div v-if="dataList.length > 0 && dataType == 0"> - <!-- 基础信息 --> - <div v-for="(item,index) in dataList.slice(0,1)" style="margin-bottom: 50px;" :key="index"> - <div> - <p class="p_title_1" style="margin-top: 5px;">{{titleArray[index]}}</p> - <table-detail-message :data="item" ></table-detail-message> - </div> - <!-- 备注 --> - <el-table :data="remarkList" :show-header="false" border :cell-style="remarkColumnStyle" style="width: 100%;"> - <el-table-column width="140" prop="remarkTitle"> - </el-table-column> - <el-table-column prop="remarkValue"> - <template slot-scope="scope"> - <auto-hide-message :data="scope.row.remarkValue" :maxLength="100"/></template> - </el-table-column> - </el-table> - <!-- 指导 --> - <el-table :data="guidanceList" :show-header="false" border :cell-style="remarkColumnStyle" style="width: 100%;"> - <el-table-column width="140" prop="guidanceTitle"> - </el-table-column> - <el-table-column prop="guidanceValue"> - <template slot-scope="scope"> - <auto-hide-message :data="scope.row.guidanceValue" :maxLength="100"/></template> - </el-table-column> - </el-table> + <div + style="float: right; margin-top: -10px; margin-bottom: 10px" + v-show="dataList.length > 0" + > + <!-- 只有新版健康评估信息才可修改,旧的体征数据不支持修改 --> + <el-button + type="info" + v-show="dataType == 0" + @click="generateReport()" + plain + >下载报告</el-button + > + <el-button + type="info" + v-show="dataType == 0" + @click="handleEditGuidanceClick()" + plain + >减脂指导</el-button + > + <el-button + v-hasPermi="['custom:healthy:edit']" + type="info" + v-show="dataType == 0" + @click="handleEditRemarkClick()" + plain + >修改备注</el-button + > + <el-button + v-hasPermi="['custom:healthy:edit']" + type="warning" + v-show="dataType == 0" + @click="handleEditHealthyClick()" + plain + >修改信息</el-button + > + <el-button + type="danger" + v-hasPermi="['custom:healthy:remove']" + @click="handleDelete()" + plain + >删除信息</el-button + > </div> - <!-- 其他信息 --> - <div style="height:400px;overflow: auto"> - <div v-for="(item,index) in dataList.slice(1,10)" style="margin-bottom: 50px;" :key="index"> + <!-- 客户健康评估 --> + <div v-if="dataList.length > 0 && dataType == 0"> + <!-- 基础信息 --> + <div + v-for="(item, index) in dataList.slice(0, 1)" + style="margin-bottom: 50px" + :key="index" + > <div> - <p class="p_title_1" style="margin-top: 5px;">{{titleArray[index+1]}}</p> - <table-detail-message :data="item" v-if="index != dataList.length-2"></table-detail-message> - <el-table :show-header="false" v-if="index == dataList.length-2" :data="item" border :cell-style="columnStyle" style="width: 100%;"> - <el-table-column width="140" prop="attr_name_one"> - </el-table-column> - <el-table-column prop="value_one"> - <template slot-scope="scope"> - <auto-hide-message :data="scope.row.value_one == null ? '' : (scope.row.value_one+'')" :maxLength="20"/> - <el-button type="primary" v-show="scope.row.value_one" @click="downloadFile(medicalReportPathArray[0])">下载</el-button> - </template> - </el-table-column> - <el-table-column width="140" prop="attr_name_two"></el-table-column> - <el-table-column prop="value_two"> - <template slot-scope="scope"> - <auto-hide-message :data="scope.row.value_two == null ? '' : (scope.row.value_two+'')" :maxLength="20"/> - <el-button type="primary" v-show="scope.row.value_two" @click="downloadFile(medicalReportPathArray[1])">下载</el-button> - </template> - </el-table-column> - <el-table-column width="140" prop="attr_name_three"></el-table-column> - <el-table-column prop="value_three"> - <template slot-scope="scope"> - <auto-hide-message :data="scope.row.value_three == null ? '' : (scope.row.value_three+'')" :maxLength="20"/> - <el-button type="primary" v-show="scope.row.value_three" @click="downloadFile(medicalReportPathArray[2])">下载</el-button> - </template> - </el-table-column> - </el-table> + <p class="p_title_1" style="margin-top: 5px"> + {{ titleArray[index] }} + </p> + <table-detail-message :data="item"></table-detail-message> + </div> + <!-- 备注 --> + <el-table + :data="remarkList" + :show-header="false" + border + :cell-style="remarkColumnStyle" + style="width: 100%" + > + <el-table-column width="140" prop="remarkTitle"> </el-table-column> + <el-table-column prop="remarkValue"> + <template slot-scope="scope"> + <auto-hide-message + :data="scope.row.remarkValue" + :maxLength="100" + /></template> + </el-table-column> + </el-table> + <!-- 指导 --> + <el-table + :data="guidanceList" + :show-header="false" + border + :cell-style="remarkColumnStyle" + style="width: 100%" + > + <el-table-column width="140" prop="guidanceTitle"> + </el-table-column> + <el-table-column prop="guidanceValue"> + <template slot-scope="scope"> + <auto-hide-message + :data="scope.row.guidanceValue" + :maxLength="100" + /></template> + </el-table-column> + </el-table> + </div> + <!-- 其他信息 --> + <div style="height: 400px; overflow: auto"> + <div + v-for="(item, index) in dataList.slice(1, 10)" + style="margin-bottom: 50px" + :key="index" + > + <div> + <p class="p_title_1" style="margin-top: 5px"> + {{ titleArray[index + 1] }} + </p> + <table-detail-message + :data="item" + v-if="index != dataList.length - 2" + ></table-detail-message> + <el-table + :show-header="false" + v-if="index == dataList.length - 2" + :data="item" + border + :cell-style="columnStyle" + style="width: 100%" + > + <el-table-column width="140" prop="attr_name_one"> + </el-table-column> + <el-table-column prop="value_one"> + <template slot-scope="scope"> + <auto-hide-message + :data=" + scope.row.value_one == null + ? '' + : scope.row.value_one + '' + " + :maxLength="20" + /> + <el-button + type="primary" + v-show="scope.row.value_one" + @click="downloadFile(medicalReportPathArray[0])" + >下载</el-button + > + </template> + </el-table-column> + <el-table-column + width="140" + prop="attr_name_two" + ></el-table-column> + <el-table-column prop="value_two"> + <template slot-scope="scope"> + <auto-hide-message + :data=" + scope.row.value_two == null + ? '' + : scope.row.value_two + '' + " + :maxLength="20" + /> + <el-button + type="primary" + v-show="scope.row.value_two" + @click="downloadFile(medicalReportPathArray[1])" + >下载</el-button + > + </template> + </el-table-column> + <el-table-column + width="140" + prop="attr_name_three" + ></el-table-column> + <el-table-column prop="value_three"> + <template slot-scope="scope"> + <auto-hide-message + :data=" + scope.row.value_three == null + ? '' + : scope.row.value_three + '' + " + :maxLength="20" + /> + <el-button + type="primary" + v-show="scope.row.value_three" + @click="downloadFile(medicalReportPathArray[2])" + >下载</el-button + > + </template> + </el-table-column> + </el-table> + </div> + </div> + </div> + </div> + <!-- 客户体征 --> + <div v-else> + <table-detail-message + v-show="dataList.length > 0" + :data="dataList" + ></table-detail-message> + <div + v-show="dataList.length == 0" + style="font-size: 20px; text-align: center" + > + <VueQr :text="copyValue" :logoSrc="logo" /> + <div style="text-align: center; margin-top: 20px"> + <el-button + icon="el-icon-share" + size="small" + title="点击复制链接" + class="copyBtn" + type="primary" + :data-clipboard-text="copyValue" + @click="handleCopy()" + >健康评估表链接 + </el-button> </div> </div> </div> </div> - <!-- 客户体征 --> - <div v-else> - <table-detail-message v-show="dataList.length > 0" :data="dataList" ></table-detail-message> - <p v-show="dataList.length == 0" style="font-size: 20px;text-align:center;">暂无数据! - <el-button icon="el-icon-share" size="small" title="点击复制链接" class="copyBtn" type="primary" :data-clipboard-text="copyValue" @click="handleCopy()">健康评估表链接</el-button> - </p> - </div> - </div> <!-- 编辑 --> - <physicalSigns-edit ref="physicalSignsEditDialog" @refreshHealthyData="getCustomerHealthyByCusId()"></physicalSigns-edit> + <physicalSigns-edit + ref="physicalSignsEditDialog" + @refreshHealthyData="getCustomerHealthyByCusId()" + ></physicalSigns-edit> <!-- 编辑备注 --> - <physicalSigns-remark ref="physicalSignsRemarkDialog" @refreshHealthyData="getCustomerHealthyByCusId()"></physicalSigns-remark> + <physicalSigns-remark + ref="physicalSignsRemarkDialog" + @refreshHealthyData="getCustomerHealthyByCusId()" + ></physicalSigns-remark> <!-- 编辑减脂指导 --> - <physicalSigns-guidance ref="physicalSignsGuidanceDialog" @refreshHealthyData="getCustomerHealthyByCusId()"></physicalSigns-guidance> + <physicalSigns-guidance + ref="physicalSignsGuidanceDialog" + @refreshHealthyData="getCustomerHealthyByCusId()" + ></physicalSigns-guidance> </el-dialog> </template> <script> -import { getCustomerPhysicalSignsByCusId,delCustomerHealthy } from "@/api/custom/customer"; +import { + getCustomerPhysicalSignsByCusId, + delCustomerHealthy, +} from "@/api/custom/customer"; import { generateHealthyReport } from "@/api/custom/healthy"; import TableDetailMessage from "@/components/TableDetailMessage"; import AutoHideMessage from "@/components/AutoHideMessage"; import * as healthyData from "@/utils/healthyData"; -import Clipboard from 'clipboard'; +import Clipboard from "clipboard"; import PhysicalSignsEdit from "@/components/PhysicalSignsEdit"; import PhysicalSignsRemark from "@/components/PhysicalSignsRemark"; import PhysicalSignsGuidance from "@/components/PhysicalSignsGuidance"; +import VueQr from "vue-qr"; +const logo = require("@/assets/logo/logo_b.png"); export default { name: "PhysicalSignsDialog", components: { "auto-hide-message": AutoHideMessage, "table-detail-message": TableDetailMessage, - "physicalSigns-edit":PhysicalSignsEdit, - "physicalSigns-remark":PhysicalSignsRemark, - "physicalSigns-guidance":PhysicalSignsGuidance + "physicalSigns-edit": PhysicalSignsEdit, + "physicalSigns-remark": PhysicalSignsRemark, + "physicalSigns-guidance": PhysicalSignsGuidance, + VueQr, }, data() { return { + logo, visible: false, showFlag: false, title: "", @@ -114,8 +269,8 @@ export default { dataList: [], dataType: 0, healthyData: null, - remarkList:[{"remarkTitle": "备注信息", "remarkValue": ""}], - guidanceList:[{"guidanceTitle": "减脂指导", "guidanceValue": ""}], + remarkList: [{ remarkTitle: "备注信息", remarkValue: "" }], + guidanceList: [{ guidanceTitle: "减脂指导", guidanceValue: "" }], // 体征标题 signTitleData: [ ["创建时间", "姓名", "年龄"], @@ -143,82 +298,106 @@ export default { ["experience", "difficulty", "comments"], ], //健康评估每个模板标题,与调查表保持一致 - titleArray: healthyData['titleArray'], + titleArray: healthyData["titleArray"], // 健康评估标题 - healthyTitleData:[ + healthyTitleData: [ [ - ["创建时间","客户姓名","手机号"],["调理项目","性别","年龄"],["身高(厘米)","体重(斤)","地域"] + ["创建时间", "客户姓名", "手机号"], + ["调理项目", "性别", "年龄"], + ["身高(厘米)", "体重(斤)", "地域"], ], [ - ["减脂经历","减脂遇到的困难","减脂是否反弹"],["是否意识到生活习惯是减脂关键","",""] + ["减脂经历", "减脂遇到的困难", "减脂是否反弹"], + ["是否意识到生活习惯是减脂关键", "", ""], ], [ - ["调味品种","烹调方式","烹调频次"],["洗菜方式","",""] + ["调味品种", "烹调方式", "烹调频次"], + ["洗菜方式", "", ""], ], [ - ["早餐习惯","早餐吃的食物","午餐习惯"],["晚餐习惯","正餐中素菜占比","最常吃的肉类"], - ["晚餐时间","每周吃夜宵次数","夜宵通常吃的食物"],["食物的冷热偏好","食物的口味偏好","平均每周吃生蔬菜几次"], - ["每周吃生蔬菜的频次类型","平均每天吃水果次数","吃水果的时间段"],["平时吃水果的频次","一餐吃几碗饭","吃几成饱"], - ["吃饭速度","饮食特点","常吃的零食"],["有无服用营养保健品","营养保健品品牌名","营养保健品产品名"], - ["服用营养保健品频次","忌口过敏食物",""] + ["早餐习惯", "早餐吃的食物", "午餐习惯"], + ["晚餐习惯", "正餐中素菜占比", "最常吃的肉类"], + ["晚餐时间", "每周吃夜宵次数", "夜宵通常吃的食物"], + ["食物的冷热偏好", "食物的口味偏好", "平均每周吃生蔬菜几次"], + ["每周吃生蔬菜的频次类型", "平均每天吃水果次数", "吃水果的时间段"], + ["平时吃水果的频次", "一餐吃几碗饭", "吃几成饱"], + ["吃饭速度", "饮食特点", "常吃的零食"], + ["有无服用营养保健品", "营养保健品品牌名", "营养保健品产品名"], + ["服用营养保健品频次", "忌口过敏食物", ""], ], [ - ["每天的饮水量","喜欢喝什么水","喝水习惯"],["常喝的饮品的每周频次","是否喝酒","喝酒种类"],["对应酒的量","是否抽烟","抽烟频次和烟龄"], - ["是否经常抽二手烟","工作行业","工作性质"],["排便次数","排便时间段","排便的形状"],["排便的气味","排便的速度","排便的颜色"] + ["每天的饮水量", "喜欢喝什么水", "喝水习惯"], + ["常喝的饮品的每周频次", "是否喝酒", "喝酒种类"], + ["对应酒的量", "是否抽烟", "抽烟频次和烟龄"], + ["是否经常抽二手烟", "工作行业", "工作性质"], + ["排便次数", "排便时间段", "排便的形状"], + ["排便的气味", "排便的速度", "排便的颜色"], ], [ - ["每周运动次数","每次运动的时长","每天运动的时间"], - ["运动","运动场地",""] + ["每周运动次数", "每次运动的时长", "每天运动的时间"], + ["运动", "运动场地", ""], ], [ - ["睡觉时间","睡眠质量","是否有辅助入睡药物"], - ["辅助睡眠类药物名称","是否经常熬夜","熬夜频次"] + ["睡觉时间", "睡眠质量", "是否有辅助入睡药物"], + ["辅助睡眠类药物名称", "是否经常熬夜", "熬夜频次"], ], [ - ["病史体征","湿气数据","气血数据"], - ["家族疾病史","手术史","近期是否做过手术"], - ["手术恢复情况","是否长期服用药物","长期服用的药物"], - ["是否出现过过敏症状","过敏症状","过敏源"] + ["病史体征", "湿气数据", "气血数据"], + ["家族疾病史", "手术史", "近期是否做过手术"], + ["手术恢复情况", "是否长期服用药物", "长期服用的药物"], + ["是否出现过过敏症状", "过敏症状", "过敏源"], ], - [ - ["体检报告(1)","体检报告(2)","体检报告(3)"] - ] + [["体检报告(1)", "体检报告(2)", "体检报告(3)"]], ], // 健康评估属性 - healthyValueData:[ - [["createTime","name","phone"],["conditioningProject","sex","age"],["tall","weight","position"]], + healthyValueData: [ [ - ["experience","difficulty","rebound"],["crux","",""] - ], - [["condiment","cookingStyle","cookingStyleRate"],["washVegetablesStyle","",""]], - [ - ["breakfastType","breakfastFood","lunchType"],["dinner","vegetableRate","commonMeat"], - ["dinnerTime","supperNum","supperFood"],["dietHotAndCold","dietFlavor","vegetablesNum"], - ["vegetablesRateType","fruitsNum","fruitsTime"],["fruitsRate","riceNum","riceFull"], - ["eatingSpeed","makeFoodType","snacks"], - ["healthProductsFlag","healthProductsBrand","healthProductsName"], - ["healthProductsWeekRate","dishesIngredient",""] + ["createTime", "name", "phone"], + ["conditioningProject", "sex", "age"], + ["tall", "weight", "position"], ], [ - ["waterNum","waterType","waterHabit"],["drinksNum","drinkWineFlag","drinkWineClassify"],["drinkWineAmount","smokeFlag","smokeRate"], - ["secondSmoke","workIndustry","workType"],["defecationNum","defecationTime","defecationShape"],["defecationSmell","defecationSpeed","defecationColor"] + ["experience", "difficulty", "rebound"], + ["crux", "", ""], ], [ - ["motionNum","motionDuration","motionTime"],["motion","motionField",""] + ["condiment", "cookingStyle", "cookingStyleRate"], + ["washVegetablesStyle", "", ""], ], [ - ["sleepTime","sleepQuality","sleepDrugFlag"], - ["sleepDrug","stayupLateFlag","stayupLateWeekNum"] + ["breakfastType", "breakfastFood", "lunchType"], + ["dinner", "vegetableRate", "commonMeat"], + ["dinnerTime", "supperNum", "supperFood"], + ["dietHotAndCold", "dietFlavor", "vegetablesNum"], + ["vegetablesRateType", "fruitsNum", "fruitsTime"], + ["fruitsRate", "riceNum", "riceFull"], + ["eatingSpeed", "makeFoodType", "snacks"], + ["healthProductsFlag", "healthProductsBrand", "healthProductsName"], + ["healthProductsWeekRate", "dishesIngredient", ""], ], [ - ["physicalSigns","moistureDate","bloodData"], - ["familyIllnessHistory","operationHistory","nearOperationFlag"], - ["recoveryeSituation","longEatDrugFlag","longEatDrugClassify"], - ["allergyFlag","allergySituation","allergen"] + ["waterNum", "waterType", "waterHabit"], + ["drinksNum", "drinkWineFlag", "drinkWineClassify"], + ["drinkWineAmount", "smokeFlag", "smokeRate"], + ["secondSmoke", "workIndustry", "workType"], + ["defecationNum", "defecationTime", "defecationShape"], + ["defecationSmell", "defecationSpeed", "defecationColor"], ], [ - ["medicalReport_one","medicalReport_two","medicalReport_three"] - ] + ["motionNum", "motionDuration", "motionTime"], + ["motion", "motionField", ""], + ], + [ + ["sleepTime", "sleepQuality", "sleepDrugFlag"], + ["sleepDrug", "stayupLateFlag", "stayupLateWeekNum"], + ], + [ + ["physicalSigns", "moistureDate", "bloodData"], + ["familyIllnessHistory", "operationHistory", "nearOperationFlag"], + ["recoveryeSituation", "longEatDrugFlag", "longEatDrugClassify"], + ["allergyFlag", "allergySituation", "allergen"], + ], + [["medicalReport_one", "medicalReport_two", "medicalReport_three"]], ], copyValue: "", detailHealthy: null, @@ -246,21 +425,25 @@ export default { showDialog(data) { this.data = data; this.title = `「${data.name}」客户健康评估信息`; + this.copyValue = + window.location.origin.replace("manage", "sign") + + "/subhealthyInvestigation/" + + this.data.encId; this.getCustomerHealthyByCusId(); }, - getCustomerHealthyByCusId(){ + getCustomerHealthyByCusId() { getCustomerPhysicalSignsByCusId(this.data.id).then((res) => { this.showFlag = false; if (res.data.customerHealthy) { //判断是体征还是健康评估 this.dataType = res.data.type; - if(this.dataType == 0){ - this.healthyData = Object.assign({}, res.data.customerHealthy); - this.remarkList[0].remarkValue = this.healthyData.remark; - this.guidanceList[0].guidanceValue = this.healthyData.guidance; - this.getDataListByHealthyMessage(res.data.customerHealthy); - }else{ - this.getDataListBySignMessage(res.data.customerHealthy) + if (this.dataType == 0) { + this.healthyData = Object.assign({}, res.data.customerHealthy); + this.remarkList[0].remarkValue = this.healthyData.remark; + this.guidanceList[0].guidanceValue = this.healthyData.guidance; + this.getDataListByHealthyMessage(res.data.customerHealthy); + } else { + this.getDataListBySignMessage(res.data.customerHealthy); } } //this.enc_id = res.data.enc_id; @@ -276,7 +459,7 @@ export default { this.copyValue = ""; }, //对体征信息进行处理 - getDataListBySignMessage(sign){ + getDataListBySignMessage(sign) { sign.sex = sign.sex === 0 ? `男` : "女"; sign.position = sign.position === 0 ? `南方` : "北方"; sign.signStr = this.getSignString(sign.signList); @@ -305,82 +488,138 @@ export default { } }, //对健康评估信息进行处理 - getDataListByHealthyMessage(healthy){ + getDataListByHealthyMessage(healthy) { let detailHealthy = this.dealHealthy(healthy); //性别 - detailHealthy.sex = detailHealthy.sex == 0 ? "男" : (detailHealthy.sex == 1 ? "女" : "未知"); - detailHealthy.position = detailHealthy.position == 0 ? "南方" : "北方"; + detailHealthy.sex = + detailHealthy.sex == 0 ? "男" : detailHealthy.sex == 1 ? "女" : "未知"; + detailHealthy.position = detailHealthy.position == 0 ? "南方" : "北方"; detailHealthy.rebound = detailHealthy.rebound == 0 ? "否" : "是"; detailHealthy.crux = detailHealthy.crux == 0 ? "否" : "是"; //调味品 - detailHealthy.condiment += detailHealthy.otherCondiment ? (","+detailHealthy.otherCondiment) : ""; + detailHealthy.condiment += detailHealthy.otherCondiment + ? "," + detailHealthy.otherCondiment + : ""; //烹饪 let cookingStyleRate = ""; - if(detailHealthy.cookingStyleRate != null){ - detailHealthy.cookingStyleRate.split(",").forEach(function(item, index){ - cookingStyleRate += (cookingStyleRate != "" ? "," : "") + (healthyData["cookingStyleRateArray"][index])+item +"次"; - }); + if (detailHealthy.cookingStyleRate != null) { + detailHealthy.cookingStyleRate + .split(",") + .forEach(function (item, index) { + cookingStyleRate += + (cookingStyleRate != "" ? "," : "") + + healthyData["cookingStyleRateArray"][index] + + item + + "次"; + }); } detailHealthy.cookingStyleRate = cookingStyleRate; //洗菜方式 - detailHealthy.washVegetablesStyle += detailHealthy.otherWashVegetablesStyle ? (","+detailHealthy.otherWashVegetablesStyle) : ""; + detailHealthy.washVegetablesStyle += detailHealthy.otherWashVegetablesStyle + ? "," + detailHealthy.otherWashVegetablesStyle + : ""; //素菜占比 detailHealthy.vegetableRate += "成"; - let makeFoodTypeOption = healthyData["makeFoodTypeArray"].find(opt => opt.value == detailHealthy.makeFoodType+""); - detailHealthy.makeFoodType = makeFoodTypeOption ? makeFoodTypeOption.name : ""; + let makeFoodTypeOption = healthyData["makeFoodTypeArray"].find( + (opt) => opt.value == detailHealthy.makeFoodType + "" + ); + detailHealthy.makeFoodType = makeFoodTypeOption + ? makeFoodTypeOption.name + : ""; //零食 - detailHealthy.snacks += detailHealthy.otherSnacks ? ("," + detailHealthy.otherSnacks) : ""; - detailHealthy.healthProductsFlag = detailHealthy.healthProductsFlag == 1 ? "有" : "无"; - detailHealthy.healthProductsWeekRate = detailHealthy.healthProductsDayRate+"次/天,"+detailHealthy.healthProductsWeekRate+"次/周"; + detailHealthy.snacks += detailHealthy.otherSnacks + ? "," + detailHealthy.otherSnacks + : ""; + detailHealthy.healthProductsFlag = + detailHealthy.healthProductsFlag == 1 ? "有" : "无"; + detailHealthy.healthProductsWeekRate = + detailHealthy.healthProductsDayRate + + "次/天," + + detailHealthy.healthProductsWeekRate + + "次/周"; detailHealthy.waterNum += "毫升"; //饮品 let drinksNumString = ""; - if(detailHealthy.drinksNum != null){ - detailHealthy.drinksNum.split(",").forEach(function(item, index){ - drinksNumString += (drinksNumString != "" ? "," : "") + (healthyData["drinksNumArray"][index])+item +"次"; + if (detailHealthy.drinksNum != null) { + detailHealthy.drinksNum.split(",").forEach(function (item, index) { + drinksNumString += + (drinksNumString != "" ? "," : "") + + healthyData["drinksNumArray"][index] + + item + + "次"; }); } detailHealthy.drinksNum = drinksNumString; - detailHealthy.drinkWineClassify += detailHealthy.otherWineClassify ? (","+detailHealthy.otherWineClassify) : ""; + detailHealthy.drinkWineClassify += detailHealthy.otherWineClassify + ? "," + detailHealthy.otherWineClassify + : ""; let drinkWineAmountString = ""; - if(detailHealthy.drinkWineAmount != null){ - detailHealthy.drinkWineAmount.split(",").forEach(function(item, index){ - drinkWineAmountString += (drinkWineAmountString != "" ? "," : "") + (healthyData["drinkWineAmountArray"][index])+item + healthyData["drinkWineAmountUnitArray"][index]; - }); + if (detailHealthy.drinkWineAmount != null) { + detailHealthy.drinkWineAmount + .split(",") + .forEach(function (item, index) { + drinkWineAmountString += + (drinkWineAmountString != "" ? "," : "") + + healthyData["drinkWineAmountArray"][index] + + item + + healthyData["drinkWineAmountUnitArray"][index]; + }); } detailHealthy.drinkWineAmount = drinkWineAmountString; detailHealthy.smokeFlag = detailHealthy.smokeFlag == 1 ? "是" : "否"; detailHealthy.secondSmoke = detailHealthy.secondSmoke == 1 ? "是" : "否"; let smokeRateString = ""; - if(detailHealthy.smokeRate != null){ - detailHealthy.smokeRate.split(",").forEach(function(item, index){ - smokeRateString += (smokeRateString != "" ? "," : "") + (healthyData["smokeRateArray"][index])+item + healthyData["smokeRateUnitArray"][index]; + if (detailHealthy.smokeRate != null) { + detailHealthy.smokeRate.split(",").forEach(function (item, index) { + smokeRateString += + (smokeRateString != "" ? "," : "") + + healthyData["smokeRateArray"][index] + + item + + healthyData["smokeRateUnitArray"][index]; }); } detailHealthy.smokeRate = smokeRateString; detailHealthy.defecationNum = detailHealthy.defecationNum + "次/天"; - detailHealthy.motionDuration = detailHealthy.motionDuration +"分钟"; + detailHealthy.motionDuration = detailHealthy.motionDuration + "分钟"; let motionStr = ""; - if(detailHealthy.aerobicMotionClassify != null){ - detailHealthy.aerobicMotionClassify.split(",").forEach(function(item, index){ - motionStr += item ? ((motionStr != "" ? "," : "") + item) : ""; - }); + if (detailHealthy.aerobicMotionClassify != null) { + detailHealthy.aerobicMotionClassify + .split(",") + .forEach(function (item, index) { + motionStr += item ? (motionStr != "" ? "," : "") + item : ""; + }); } - if(detailHealthy.anaerobicMotionClassify != null){ - detailHealthy.anaerobicMotionClassify.split(",").forEach(function(item, index){ - motionStr += item ? ((motionStr != "" ? "," : "") + item) : ""; - }); + if (detailHealthy.anaerobicMotionClassify != null) { + detailHealthy.anaerobicMotionClassify + .split(",") + .forEach(function (item, index) { + motionStr += item ? (motionStr != "" ? "," : "") + item : ""; + }); } - if(detailHealthy.anaerobicAerobicMotionClassify != null){ - detailHealthy.anaerobicAerobicMotionClassify.split(",").forEach(function(item, index){ - motionStr += item ? ((motionStr != "" ? "," : "") + item) : ""; - }); + if (detailHealthy.anaerobicAerobicMotionClassify != null) { + detailHealthy.anaerobicAerobicMotionClassify + .split(",") + .forEach(function (item, index) { + motionStr += item ? (motionStr != "" ? "," : "") + item : ""; + }); } - detailHealthy.motion = this.trimComma(motionStr + (detailHealthy.otherMotionClassify ? ( ","+ detailHealthy.otherMotionClassify) : "")); - detailHealthy.motionField = this.trimComma(detailHealthy.motionField + (detailHealthy.otherMotionField ? (","+detailHealthy.otherMotionField) : "")); - detailHealthy.sleepDrugFlag = detailHealthy.sleepDrugFlag == 1 ? "有" : "无"; - detailHealthy.stayupLateFlag = detailHealthy.stayupLateFlag == 1 ? "有" : "无"; + detailHealthy.motion = this.trimComma( + motionStr + + (detailHealthy.otherMotionClassify + ? "," + detailHealthy.otherMotionClassify + : "") + ); + detailHealthy.motionField = this.trimComma( + detailHealthy.motionField + + (detailHealthy.otherMotionField + ? "," + detailHealthy.otherMotionField + : "") + ); + detailHealthy.sleepDrugFlag = + detailHealthy.sleepDrugFlag == 1 ? "有" : "无"; + detailHealthy.stayupLateFlag = + detailHealthy.stayupLateFlag == 1 ? "有" : "无"; detailHealthy.stayupLateWeekNum += "次/周"; let physicalSigns = this.getSignString(detailHealthy.signList); /*if(detailHealthy.signList != null && detailHealthy.signList.length > 0){ @@ -388,101 +627,163 @@ export default { physicalSigns += "," + sign.name; }) }*/ - physicalSigns += "," + (detailHealthy.otherPhysicalSigns ? detailHealthy.otherPhysicalSigns : ""); + physicalSigns += + "," + + (detailHealthy.otherPhysicalSigns + ? detailHealthy.otherPhysicalSigns + : ""); detailHealthy.physicalSigns = this.trimComma(physicalSigns); - detailHealthy.familyIllnessHistory = this.trimComma(detailHealthy.familyIllnessHistory + ","+ (detailHealthy.otherFamilyIllnessHistory ? detailHealthy.otherFamilyIllnessHistory : "")); - detailHealthy.operationHistory = this.trimComma(detailHealthy.operationHistory + ","+ (detailHealthy.otherOperationHistory ? detailHealthy.otherOperationHistory : "")); - detailHealthy.nearOperationFlag = detailHealthy.nearOperationFlag == 1 ? "有" : "无"; - detailHealthy.longEatDrugFlag = detailHealthy.longEatDrugFlag == 1 ? "有" : "无"; - detailHealthy.longEatDrugClassify = this.trimComma(detailHealthy.longEatDrugClassify + "," + (detailHealthy.otherLongEatDrugClassify ? detailHealthy.otherLongEatDrugClassify : "")); + detailHealthy.familyIllnessHistory = this.trimComma( + detailHealthy.familyIllnessHistory + + "," + + (detailHealthy.otherFamilyIllnessHistory + ? detailHealthy.otherFamilyIllnessHistory + : "") + ); + detailHealthy.operationHistory = this.trimComma( + detailHealthy.operationHistory + + "," + + (detailHealthy.otherOperationHistory + ? detailHealthy.otherOperationHistory + : "") + ); + detailHealthy.nearOperationFlag = + detailHealthy.nearOperationFlag == 1 ? "有" : "无"; + detailHealthy.longEatDrugFlag = + detailHealthy.longEatDrugFlag == 1 ? "有" : "无"; + detailHealthy.longEatDrugClassify = this.trimComma( + detailHealthy.longEatDrugClassify + + "," + + (detailHealthy.otherLongEatDrugClassify + ? detailHealthy.otherLongEatDrugClassify + : "") + ); detailHealthy.allergyFlag = detailHealthy.allergyFlag == 1 ? "有" : "无"; - detailHealthy.allergen = this.trimComma(detailHealthy.allergen + "," + (detailHealthy.otherAllergen ? detailHealthy.otherAllergen : "")); - let medicalReportPathArray = detailHealthy.medicalReport ? detailHealthy.medicalReport.split(",") : []; - let medicalReportNameArray = detailHealthy.medicalReportName ? detailHealthy.medicalReportName.split(",") : []; + detailHealthy.allergen = this.trimComma( + detailHealthy.allergen + + "," + + (detailHealthy.otherAllergen ? detailHealthy.otherAllergen : "") + ); + let medicalReportPathArray = detailHealthy.medicalReport + ? detailHealthy.medicalReport.split(",") + : []; + let medicalReportNameArray = detailHealthy.medicalReportName + ? detailHealthy.medicalReportName.split(",") + : []; this.medicalReportPathArray = medicalReportPathArray; - detailHealthy.medicalReport_one = medicalReportPathArray.length > 0 ? (medicalReportNameArray.length > 0 ? medicalReportNameArray[0] : "体检报告(1)") : ""; - detailHealthy.medicalReport_two = medicalReportPathArray.length > 1 ? (medicalReportNameArray.length > 1 ? medicalReportNameArray[1] : "体检报告(2)") : ""; - detailHealthy.medicalReport_three = medicalReportPathArray.length > 2 ? (medicalReportNameArray.length > 2 ? medicalReportNameArray[2] : "体检报告(3)") : ""; + detailHealthy.medicalReport_one = + medicalReportPathArray.length > 0 + ? medicalReportNameArray.length > 0 + ? medicalReportNameArray[0] + : "体检报告(1)" + : ""; + detailHealthy.medicalReport_two = + medicalReportPathArray.length > 1 + ? medicalReportNameArray.length > 1 + ? medicalReportNameArray[1] + : "体检报告(2)" + : ""; + detailHealthy.medicalReport_three = + medicalReportPathArray.length > 2 + ? medicalReportNameArray.length > 2 + ? medicalReportNameArray[2] + : "体检报告(3)" + : ""; this.detailHealthy = detailHealthy; - for(let i = 0; i < this.healthyTitleData.length; i++){ + for (let i = 0; i < this.healthyTitleData.length; i++) { let stepArray = []; - for(let j= 0; j < this.healthyTitleData[i].length; j++){ - stepArray[j] = ({"attr_name_one": this.healthyTitleData[i][j][0],"value_one": detailHealthy[this.healthyValueData[i][j][0]],"attr_name_two": this.healthyTitleData[i][j][1],"value_two": detailHealthy[this.healthyValueData[i][j][1]],"attr_name_three": this.healthyTitleData[i][j][2],"value_three": detailHealthy[this.healthyValueData[i][j][2]]}); + for (let j = 0; j < this.healthyTitleData[i].length; j++) { + stepArray[j] = { + attr_name_one: this.healthyTitleData[i][j][0], + value_one: detailHealthy[this.healthyValueData[i][j][0]], + attr_name_two: this.healthyTitleData[i][j][1], + value_two: detailHealthy[this.healthyValueData[i][j][1]], + attr_name_three: this.healthyTitleData[i][j][2], + value_three: detailHealthy[this.healthyValueData[i][j][2]], + }; } this.dataList[i] = stepArray; } }, //健康信息处理,将数组转为字符串 - dealHealthy(customerHealthy){ + dealHealthy(customerHealthy) { let array = healthyData["needAttrName"]; - for(let i = 0; i < array.length; i++){ - customerHealthy[array[i]] = this.getHealthyStringByArray(array[i]+"Array", customerHealthy[array[i]]); + for (let i = 0; i < array.length; i++) { + customerHealthy[array[i]] = this.getHealthyStringByArray( + array[i] + "Array", + customerHealthy[array[i]] + ); } return customerHealthy; }, //将数组中的value值转为name - getHealthyStringByArray(key, valueArray){ + getHealthyStringByArray(key, valueArray) { var str = ""; - if(valueArray != null && valueArray.split(",").length > 0){ + if (valueArray != null && valueArray.split(",").length > 0) { valueArray.split(",").forEach(function (item, index) { - let data = healthyData[key].find(opt => opt.value == item); - if(data != null){ + let data = healthyData[key].find((opt) => opt.value == item); + if (data != null) { str += (str != "" ? "," : "") + data.name; } - }) + }); } return str; }, - getSignString(signList){ - if(signList == null){ + getSignString(signList) { + if (signList == null) { return ""; } let signStr = ""; - for(let i in signList){ - signStr += ","+signList[i].name; + for (let i in signList) { + signStr += "," + signList[i].name; } return signList.length > 0 ? signStr.substring(1) : signStr; }, - downloadFile(fileName){ + downloadFile(fileName) { this.downloadResource(fileName); }, - generateReport(){ - let data = this.detailHealthy; - if(!this.guidanceList[0].guidanceValue || this.guidanceList[0].guidanceValue.length == 0){ - this.$confirm("该客户还未添加减脂指导,是否确认下载报告?", "警告", { - confirmButtonText: "确定", cancelButtonText: "取消", type: "warning" - }) - .then(function(){ - return generateHealthyReport(data); - }) - .then((response) => { - if(response.code == 200 && response.path != null){ - this.download(response.path); - } - }).catch(function () {}); - }else{ - generateHealthyReport(data).then((res) => { - if(res.code == 200 && res.path != null){ - this.download(res.path); + generateReport() { + let data = this.detailHealthy; + if ( + !this.guidanceList[0].guidanceValue || + this.guidanceList[0].guidanceValue.length == 0 + ) { + this.$confirm("该客户还未添加减脂指导,是否确认下载报告?", "警告", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(function () { + return generateHealthyReport(data); + }) + .then((response) => { + if (response.code == 200 && response.path != null) { + this.download(response.path); } - }); - } - }, - trimComma(str){ - if(str.startsWith(",") || str.startsWith(",")){ - str = str.substring(1,str.length); + }) + .catch(function () {}); + } else { + generateHealthyReport(data).then((res) => { + if (res.code == 200 && res.path != null) { + this.download(res.path); + } + }); } - if(str.endsWith(",") || str.endsWith(",")){ - str = str.substring(0,str.length-1); + }, + trimComma(str) { + if (str.startsWith(",") || str.startsWith(",")) { + str = str.substring(1, str.length); + } + if (str.endsWith(",") || str.endsWith(",")) { + str = str.substring(0, str.length - 1); } return str; }, handleCopy() { - this.copyValue = window.location.origin.replace('manage', 'sign') + "/subhealthyInvestigation/"+this.data.encId; - const btnCopy = new Clipboard('.copyBtn'); + new Clipboard(".copyBtn"); this.$message({ - message: '拷贝成功', - type: 'success' + message: "拷贝成功", + type: "success", }); }, /** 删除健康信息操作 */ @@ -496,35 +797,46 @@ export default { cancelButtonText: "取消", type: "warning", } - ).then(function () { + ) + .then(function () { return delCustomerHealthy(ids); - }).then(() => { + }) + .then(() => { this.dataList = []; this.msgSuccess("删除成功"); - }).catch(function () {}); + }) + .catch(function () {}); }, handleEditHealthyClick() { //console.log(JSON.stringify(this.healthyData)); - this.$refs["physicalSignsEditDialog"].showDialog(this.data, this.healthyData); + this.$refs["physicalSignsEditDialog"].showDialog( + this.data, + this.healthyData + ); }, - handleEditRemarkClick(){ - this.$refs["physicalSignsRemarkDialog"].showDialog(this.data, this.healthyData); + handleEditRemarkClick() { + this.$refs["physicalSignsRemarkDialog"].showDialog( + this.data, + this.healthyData + ); }, - handleEditGuidanceClick(){ - this.$refs["physicalSignsGuidanceDialog"].showDialog(this.data, this.healthyData); - } - - } + handleEditGuidanceClick() { + this.$refs["physicalSignsGuidanceDialog"].showDialog( + this.data, + this.healthyData + ); + }, + }, }; </script> <style scoped> - .margin-top-20{ - margin-top:20px; - } - .p_title_1{ - font-size: 18px; - font-weight: bold; - margin-top: 20px; - } +.margin-top-20 { + margin-top: 20px; +} +.p_title_1 { + font-size: 18px; + font-weight: bold; + margin-top: 20px; +} </style> diff --git a/stdiet-ui/src/views/custom/contract/index.vue b/stdiet-ui/src/views/custom/contract/index.vue index 7e3551c29..ed75d8fb0 100644 --- a/stdiet-ui/src/views/custom/contract/index.vue +++ b/stdiet-ui/src/views/custom/contract/index.vue @@ -187,7 +187,7 @@ prop="updateTime" width="180" /> - <el-table-column label="合同地址" align="center" prop="path" width="80"> + <el-table-column label="合同地址" align="center" prop="path" > <template slot-scope="scope"> <el-button type="text" @@ -197,6 +197,16 @@ :data-clipboard-text="copyValue" >复制 </el-button> + <el-popover placement="top" trigger="click"> + <VueQr :text="copyValue" :logoSrc="logo" /> + <el-button + slot="reference" + icon="el-icon-picture-outline" + type="text" + @click="handleCopy(scope.row.path)" + >二维码</el-button + > + </el-popover> </template> </el-table-column> <el-table-column label="备注" align="center" prop="remark" width="120" /> @@ -320,9 +330,14 @@ import { addContract, delContract, listContract } from "@/api/custom/contract"; import Clipboard from "clipboard"; import { mapGetters } from "vuex"; +import VueQr from "vue-qr"; +const logo = require("@/assets/logo/logo_b.png"); export default { name: "Contract", + components: { + VueQr, + }, data() { const checkServePromise = (rule, value, callback) => { if (this.form.projectId == 0 && !value) { @@ -331,6 +346,7 @@ export default { callback(); }; return { + logo, // 遮罩层 loading: true, // 选中数组