From 79736a1cdb390e9036375f08a5aa6c8743820abb Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期日, 22 十二月 2024 16:29:33 +0800 Subject: [PATCH] 订单打印优化 --- src/views/order/index.vue | 306 ++++++++++++++++++++++++++------------------------ 1 files changed, 161 insertions(+), 145 deletions(-) diff --git a/src/views/order/index.vue b/src/views/order/index.vue index 05f2131..ca46952 100644 --- a/src/views/order/index.vue +++ b/src/views/order/index.vue @@ -1,166 +1,183 @@ <template> - <div class="app-container"> - <div style="display: flex; justify-content: space-between"> - <div style="width: 300px"> - <el-input - placeholder="鎸夊鍚嶃�佽绋嬨�佺數璇濇悳绱�" - v-model="data.keyword" - class="input-with-select" - size="small" - > - <el-button - slot="append" - icon="el-icon-search" - @click="handleClick" - ></el-button> - </el-input> - </div> - </div> - <div style="height: calc(100vh - 208px)"> - <el-table - v-loading="listLoading" - :data="list" - element-loading-text="Loading" - fit - height="100%" - > - <el-table-column label="璁㈠崟鍙�" width="200" prop="number"> - </el-table-column> - <el-table-column label="瀛﹀憳" prop="playerBaseInfo.name"> - </el-table-column> - <el-table-column label="鐢佃瘽" prop="mobile"> </el-table-column> - <el-table-column label="璐拱鏂瑰紡" width="200" prop="payType"> - <template slot-scope="scope"> - {{ scope.row.payType == "DIRECT" ? "鏀惰垂褰曞叆" : "鍟嗗煄璐叆" }} - </template> - </el-table-column> - <el-table-column label="鎬讳环" width="80" prop="originAmt"> - </el-table-column> - <el-table-column label="鎶樻墸" width="80" prop="discount"> - </el-table-column> - <el-table-column label="瀹為檯缂磋垂" width="80" prop="amt"> - </el-table-column> - <el-table-column label="璁㈠崟鏃堕棿" width="200" prop="createTime"> - </el-table-column> - <el-table-column label="鎿嶄綔" width="200"> - <template slot-scope="scope"> - <el-link - @click="handlePrint(scope.row)" - type="primary" - :underline="false" - >鎵撳嵃鏀舵嵁</el-link + <div class="app-container"> + <div style="display: flex; justify-content: space-between"> + <div style="width: 300px"> + <el-input + placeholder="鎸夊鍚嶃�佽绋嬨�佺數璇濇悳绱�" + v-model="data.keyword" + class="input-with-select" + size="small" + > + <el-button + slot="append" + icon="el-icon-search" + @click="handleClick" + ></el-button> + </el-input> + </div> + </div> + <div style="height: calc(100vh - 208px)"> + <el-table + v-loading="listLoading" + :data="list" + element-loading-text="Loading" + fit + height="100%" > - </template> - </el-table-column> - </el-table> + <el-table-column label="璁㈠崟鍙�" width="200" prop="number"> + </el-table-column> + <el-table-column label="瀛﹀憳" prop="playerBaseInfo.name"> + </el-table-column> + <el-table-column label="鐢佃瘽" prop="mobile"> </el-table-column> + <el-table-column label="璐拱鏂瑰紡" width="200" prop="payType"> + <template slot-scope="scope"> + {{ + scope.row.payType == 'DIRECT' + ? '鏀惰垂褰曞叆' + : '鍟嗗煄璐叆' + }} + </template> + </el-table-column> + <el-table-column label="鎬讳环" width="80" prop="originAmt"> + </el-table-column> + <el-table-column label="鎶樻墸" width="80" prop="discount"> + </el-table-column> + <el-table-column label="瀹為檯缂磋垂" width="80" prop="amt"> + </el-table-column> + <el-table-column label="璁㈠崟鏃堕棿" width="200" prop="createTime"> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200"> + <template slot-scope="scope"> + <el-link + @click="handlePrint(scope.row)" + type="primary" + :underline="false" + >鎵撳嵃鏀舵嵁</el-link + > + </template> + </el-table-column> + </el-table> + </div> + <div> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="data.pageIn.index + 1" + :page-sizes="[10, 20, 30, 40]" + :page-size="data.pageIn.size" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + > + </el-pagination> + </div> </div> - <div> - <el-pagination - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - :current-page="data.pageIn.index + 1" - :page-sizes="[10, 20, 30, 40]" - :page-size="data.pageIn.size" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - > - </el-pagination> - </div> - </div> </template> <script> -import { getData } from "@/api/order"; +import { getData, findPlayerAccByOrderId } from "@/api/order"; import { printHtml } from "@/utils/print"; import { convertCurrency } from "@/utils/ruoyi"; export default { - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "gray", - deleted: "danger", - }; - return statusMap[status]; - }, - }, - data() { - return { - dateRange: [], - list: null, - listLoading: true, - total: 0, - data: { - staffId: JSON.parse(localStorage.getItem("selectStaff")).id, - keyword: "", - pageIn: { - //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿�� - index: 0, //蹇呴�� - size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20 - sorts: { - name: "createTime", //鎺掑簭瀛楁鍚嶇О - direction: "DESC", //鎺掑簭鏂瑰悜 - }, + filters: { + statusFilter(status) { + const statusMap = { + published: "success", + draft: "gray", + deleted: "danger", + }; + return statusMap[status]; }, - }, - dialogVisible: false, - }; - }, - created() { - this.fetchData(); - }, - methods: { - reloadData() { - this.dialogVisible = false; - this.fetchData(); }, - fetchData() { - this.listLoading = true; - getData(this.data).then((response) => { - this.list = response.data.findOrderByOrgId.ls; - this.total = response.data.findOrderByOrgId.pageOut.total; - this.listLoading = false; - }); + data() { + return { + dateRange: [], + list: null, + listLoading: true, + total: 0, + data: { + staffId: JSON.parse(localStorage.getItem("selectStaff")).id, + keyword: "", + pageIn: { + //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿�� + index: 0, //蹇呴�� + size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20 + sorts: { + name: "createTime", //鎺掑簭瀛楁鍚嶇О + direction: "DESC", //鎺掑簭鏂瑰悜 + }, + }, + }, + dialogVisible: false, + }; }, - handleClick() { - this.fetchData(); + created() { + this.fetchData(); }, - handleSizeChange(val) { - this.data.pageIn.size = val; - this.fetchData(); - }, - handleCurrentChange(val) { - this.data.pageIn.index = val - 1; - this.fetchData(); - }, - handlePrint(row) { - const orgName = JSON.parse(localStorage.getItem("selectStaff")).org.name; + methods: { + reloadData() { + this.dialogVisible = false; + this.fetchData(); + }, + fetchData() { + this.listLoading = true; + getData(this.data).then((response) => { + this.list = response.data.findOrderByOrgId.ls; + this.total = response.data.findOrderByOrgId.pageOut.total; + this.listLoading = false; + }); + }, + handleClick() { + this.fetchData(); + }, + handleSizeChange(val) { + this.data.pageIn.size = val; + this.fetchData(); + }, + handleCurrentChange(val) { + this.data.pageIn.index = val - 1; + this.fetchData(); + }, + handlePrint(row) { - let detail = ""; - row.details.forEach((o) => { - detail += `<tr> + if (row.payType == "DIRECT") { + findPlayerAccByOrderId({ 'orderId': row.id }).then(res => { + if (res.data.findPlayerAccByOrderId.length > 0) { + row.staffName = res.data.findPlayerAccByOrderId[0].staffName + row.message = res.data.findPlayerAccByOrderId[0].description + } + this.doPrint(row) + }) + } + else { + this.doPrint(row) + } + + }, + doPrint(row) { + const orgName = JSON.parse(localStorage.getItem("selectStaff")).org.name; + let detail = ""; + row.details.forEach((o) => { + detail += `<tr> <td> ${o.voucherName || o.goodsName}</td> <td>${o.qty} </td> - <td> ${o.giftQty}</td> + <td> ${o.giftQty || 0}</td> <td>${o.amt}</td> <td>${row.saleStaff.name} </td> </tr>`; - }); + }); - let printData = `<div style="display: flex; justify-content: center;"> + let printData = `<div style="display: flex; justify-content: center;"> <div style="margin-top: 50px; width: 600px;line-height: 2;"> <h2 style="text-align: center;">${orgName}缂磋垂鏀舵嵁 </h2> <div> 璁㈠崟鍙凤細${row.number}</div> <div class="div-2-column"> - <div> 瀛﹀憳濮撳悕锛�<u>${ - row.playerBaseInfo ? row.playerBaseInfo.name : "" - }</u> </div> + <div> 瀛﹀憳濮撳悕锛�<u>${row.playerBaseInfo ? row.playerBaseInfo.name : "" + }</u> </div> <div>鑱旂郴鐢佃瘽锛�<u>${row.mobile || "鏈綍鍏�"} </u></div> </div> - <div> 璁㈠崟绫诲瀷锛�${ - row.payType == "DIRECT" ? "鏀惰垂褰曞叆" : "鍟嗗煄璐叆" - } </div> + <div> 璁㈠崟绫诲瀷锛�${row.payType == "DIRECT" ? "鏀惰垂褰曞叆" : "鍟嗗煄璐叆" + } </div> <div class="m-h2"> 璇剧▼淇℃伅</div> <table class="txt-center" width="100%" border="1" cellpadding="2" cellspacing="0"> @@ -183,25 +200,24 @@ <td> 鎶樻墸/璧犻�侀噾棰濓細${row.discount}</td> </tr> <tr> - <td> 瀹炵即閲戦锛�${convertCurrency(row.amt)}锛埪�${ - row.amt - }锛�</td> + <td> 瀹炵即閲戦锛�${convertCurrency(row.amt)}锛埪�${row.amt + }锛�</td> </tr> </table> <div> 澶囨敞锛�${row.message || ""} </div> <br> <br> <div class="div-2-column"> - <div> 缁忓姙浜猴細${row.buyer.name} </div> + <div> 缁忓姙浜猴細${row.staffName || ''} </div> <div>缁忓姙鏃ユ湡锛�${row.createTime} </div> </div> </div> </div>`; - printHtml(printData); + printHtml(printData); + }, + showCreate() { + this.$refs.studentCreate.showDialog(); + }, }, - showCreate() { - this.$refs.studentCreate.showDialog(); - }, - }, }; </script> -- Gitblit v1.8.0