Commit a8cd92b6c8794f9cbfa131640710df037478fff8
1 parent
53c536e2
电子联单bug 修复,导出联单,打印联单
Showing
5 changed files
with
295 additions
and
151 deletions
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrderMatchAsk.java
| ... | ... | @@ -9,6 +9,7 @@ import java.util.Date; |
| 9 | 9 | |
| 10 | 10 | import com.fasterxml.jackson.annotation.JsonFormat; |
| 11 | 11 | import com.trash.common.annotation.Excel; |
| 12 | +import com.trash.common.core.domain.BaseEntity; | |
| 12 | 13 | import lombok.Data; |
| 13 | 14 | import lombok.EqualsAndHashCode; |
| 14 | 15 | import lombok.ToString; |
| ... | ... | @@ -21,7 +22,7 @@ import org.springframework.format.annotation.DateTimeFormat; |
| 21 | 22 | @TableName(value ="gar_order_match_ask") |
| 22 | 23 | @EqualsAndHashCode |
| 23 | 24 | @ToString |
| 24 | -public class GarOrderMatchAsk implements Serializable { | |
| 25 | +public class GarOrderMatchAsk extends BaseEntity implements Serializable { | |
| 25 | 26 | /** |
| 26 | 27 | * |
| 27 | 28 | */ |
| ... | ... | @@ -31,12 +32,38 @@ public class GarOrderMatchAsk implements Serializable { |
| 31 | 32 | /** |
| 32 | 33 | * 订单 id |
| 33 | 34 | */ |
| 34 | - @Excel(name = "订单 ID") | |
| 35 | 35 | private String garOrderId; |
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | + * 订单编号 | |
| 39 | + */ | |
| 40 | + @Excel(name = "订单编号") | |
| 41 | + private String garOrderNumber; | |
| 42 | + | |
| 43 | + /** | |
| 44 | + * 订单时间 | |
| 45 | + */ | |
| 46 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 47 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") | |
| 48 | + @Excel(name = "运输开始时间",dateFormat = "yyyy-MM-dd HH:mm:ss") | |
| 49 | + private Date garOrderTime; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 订单下单手机号 | |
| 53 | + */ | |
| 54 | + @Excel(name = "下单手机号") | |
| 55 | + private String garOrderPhone; | |
| 56 | + | |
| 57 | + /** | |
| 58 | + * 订单下单用户名称 | |
| 59 | + */ | |
| 60 | + @Excel(name = "下单用户名称") | |
| 61 | + private String garOrderName; | |
| 62 | + | |
| 63 | + /** | |
| 38 | 64 | * 运输驾驶员手机号 |
| 39 | 65 | */ |
| 66 | + @Excel(name = "运输驾驶员手机号") | |
| 40 | 67 | private String garOrderHandlerTel; |
| 41 | 68 | /** |
| 42 | 69 | * 订单载重 |
| ... | ... | @@ -44,15 +71,18 @@ public class GarOrderMatchAsk implements Serializable { |
| 44 | 71 | private Double garCarryingWeight; |
| 45 | 72 | |
| 46 | 73 | /** |
| 47 | - * 接收量 | |
| 48 | - */ | |
| 49 | - private Double garReceptionQuantity; | |
| 50 | - /** | |
| 51 | 74 | * 运输驾驶员 |
| 52 | 75 | */ |
| 76 | + @Excel(name = "运输驾驶员") | |
| 53 | 77 | private String garOrderHandlerName; |
| 54 | 78 | |
| 55 | 79 | /** |
| 80 | + * 车次 | |
| 81 | + */ | |
| 82 | + @Excel(name = "车次") | |
| 83 | + private int dropCarNum; | |
| 84 | + | |
| 85 | + /** | |
| 56 | 86 | * 公司 id |
| 57 | 87 | */ |
| 58 | 88 | private String garOrderHandlerCompanyId; |
| ... | ... | @@ -64,6 +94,7 @@ public class GarOrderMatchAsk implements Serializable { |
| 64 | 94 | /** |
| 65 | 95 | * 公司名称 |
| 66 | 96 | */ |
| 97 | + @Excel(name = "公司名称") | |
| 67 | 98 | private String garOrderHandlerCompanyName; |
| 68 | 99 | |
| 69 | 100 | /** |
| ... | ... | @@ -77,19 +108,19 @@ public class GarOrderMatchAsk implements Serializable { |
| 77 | 108 | private String garOrderHandlerId; |
| 78 | 109 | |
| 79 | 110 | /** |
| 80 | - * | |
| 111 | + * 运输开始时间 | |
| 81 | 112 | */ |
| 82 | - @TableField(fill = FieldFill.INSERT) | |
| 83 | 113 | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 84 | 114 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| 115 | + @Excel(name = "运输开始时间",dateFormat = "yyyy-MM-dd HH:mm:ss") | |
| 85 | 116 | private Date garCreateTime; |
| 86 | 117 | |
| 87 | 118 | /** |
| 88 | - * | |
| 119 | + * 接收时间 | |
| 89 | 120 | */ |
| 90 | - @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 91 | 121 | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 92 | 122 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| 123 | + @Excel(name = "接收时间",dateFormat = "yyyy-MM-dd HH:mm:ss") | |
| 93 | 124 | private Date garUpdateTime; |
| 94 | 125 | |
| 95 | 126 | /** |
| ... | ... | @@ -107,9 +138,16 @@ public class GarOrderMatchAsk implements Serializable { |
| 107 | 138 | /** |
| 108 | 139 | * 备注 |
| 109 | 140 | */ |
| 141 | + @Excel(name = "备注") | |
| 110 | 142 | private String garRemark; |
| 111 | 143 | |
| 112 | 144 | /** |
| 145 | + * 趟次类型0=正常趟次,1=异常趟次 | |
| 146 | + */ | |
| 147 | + @Excel(name = "趟次类型",readConverterExp = "0=正常趟次,1=异常趟次") | |
| 148 | + private String garOrderType; | |
| 149 | + | |
| 150 | + /** | |
| 113 | 151 | * 投放点 id |
| 114 | 152 | */ |
| 115 | 153 | private int dropPointId; |
| ... | ... | @@ -117,12 +155,21 @@ public class GarOrderMatchAsk implements Serializable { |
| 117 | 155 | /** |
| 118 | 156 | * 投放点名称 |
| 119 | 157 | */ |
| 158 | + @Excel(name = "投放点名称") | |
| 120 | 159 | private String dropPointName; |
| 121 | 160 | |
| 122 | 161 | /** |
| 123 | - * 趟次类型0=正常趟次,1=异常趟次 | |
| 162 | + * 投放点管理员联系方式 | |
| 124 | 163 | */ |
| 125 | - private String garOrderType; | |
| 164 | + @Excel(name = "投放点管理员联系方式") | |
| 165 | + private String dropCustodianPhone; | |
| 166 | + | |
| 167 | + /** | |
| 168 | + * 投放点地址 | |
| 169 | + */ | |
| 170 | + @Excel(name = "投放点地址") | |
| 171 | + private String dropAddress; | |
| 172 | + | |
| 126 | 173 | |
| 127 | 174 | /** |
| 128 | 175 | * 处置场所 id |
| ... | ... | @@ -132,22 +179,61 @@ public class GarOrderMatchAsk implements Serializable { |
| 132 | 179 | /** |
| 133 | 180 | * 处置场所 |
| 134 | 181 | */ |
| 182 | + @Excel(name = "处置场所") | |
| 135 | 183 | private String disposalSiteName; |
| 136 | 184 | |
| 137 | - /** | |
| 138 | - * 订单编号 | |
| 139 | - */ | |
| 140 | - private String garOrderNumber; | |
| 141 | 185 | |
| 142 | 186 | /** |
| 143 | - * 订单下单手机号 | |
| 187 | + * 到达处置场所车牌号 | |
| 144 | 188 | */ |
| 145 | - private String garOrderPhone; | |
| 189 | + @Excel(name = "到达处置场所车牌号") | |
| 190 | + private String garHandlerCarCodeEnd; | |
| 146 | 191 | |
| 147 | 192 | /** |
| 148 | - * 订单下单用户名称 | |
| 193 | + * 接收量 | |
| 149 | 194 | */ |
| 150 | - private String garOrderName; | |
| 195 | + @Excel(name = "接收量") | |
| 196 | + private Double garReceptionQuantity; | |
| 197 | + | |
| 198 | + public Date getGarOrderTime() { | |
| 199 | + return garOrderTime; | |
| 200 | + } | |
| 201 | + | |
| 202 | + public void setGarOrderTime(Date garOrderTime) { | |
| 203 | + this.garOrderTime = garOrderTime; | |
| 204 | + } | |
| 205 | + | |
| 206 | + public String getDropCustodianPhone() { | |
| 207 | + return dropCustodianPhone; | |
| 208 | + } | |
| 209 | + | |
| 210 | + public void setDropCustodianPhone(String dropCustodianPhone) { | |
| 211 | + this.dropCustodianPhone = dropCustodianPhone; | |
| 212 | + } | |
| 213 | + | |
| 214 | + public String getDropAddress() { | |
| 215 | + return dropAddress; | |
| 216 | + } | |
| 217 | + | |
| 218 | + public void setDropAddress(String dropAddress) { | |
| 219 | + this.dropAddress = dropAddress; | |
| 220 | + } | |
| 221 | + | |
| 222 | + public int getDropCarNum() { | |
| 223 | + return dropCarNum; | |
| 224 | + } | |
| 225 | + | |
| 226 | + public void setDropCarNum(int dropCarNum) { | |
| 227 | + this.dropCarNum = dropCarNum; | |
| 228 | + } | |
| 229 | + | |
| 230 | + public String getGarHandlerCarCodeEnd() { | |
| 231 | + return garHandlerCarCodeEnd; | |
| 232 | + } | |
| 233 | + | |
| 234 | + public void setGarHandlerCarCodeEnd(String garHandlerCarCodeEnd) { | |
| 235 | + this.garHandlerCarCodeEnd = garHandlerCarCodeEnd; | |
| 236 | + } | |
| 151 | 237 | |
| 152 | 238 | @TableField(exist = false) |
| 153 | 239 | private static final long serialVersionUID = 1L; | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
| ... | ... | @@ -632,8 +632,9 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 632 | 632 | garOrderMatchAsk.setGarOrderPhone(orderDetailVo.getGarOrderContactTel()); |
| 633 | 633 | garOrderMatchAsk.setGarOrderName(orderDetailVo.getGarOrderContactName()); |
| 634 | 634 | garOrderMatchAsk.setGarOrderNumber(generateAssociationNumber(order.getGarOrderAddress())); |
| 635 | - garOrderMatchAsk.setGarCreateTime(new Date()); | |
| 636 | 635 | garOrderMatchAsk.setGarOrderId(dto.getGarOrderId()); |
| 636 | + garOrderMatchAsk.setGarOrderTime(order.getGarCreateTime()); | |
| 637 | + garOrderMatchAsk.setDropCarNum(order.getGarRealCarCount()); | |
| 637 | 638 | |
| 638 | 639 | //获取处置场所 |
| 639 | 640 | List<GarOrderMatchDisposal> disposalList = garOrderMatchDisposalService.queryObjByOrderId(dto.getGarOrderId()); |
| ... | ... | @@ -647,6 +648,7 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 647 | 648 | garOrderMatchAsk.setDropPointId(Integer.parseInt(dropPointInfoList.get(0).getId().toString())); |
| 648 | 649 | garOrderMatchAsk.setDropPointName(dropPointInfoList.get(0).getDropPointName()); |
| 649 | 650 | } |
| 651 | + garOrderMatchAsk.setDropAddress(order.getGarOrderAddress()+order.getGarOrderAddressDetails()); | |
| 650 | 652 | garOrderMatchAsk.setGarCreateBy(dto.getDriver()); |
| 651 | 653 | askService.save(garOrderMatchAsk); |
| 652 | 654 | } |
| ... | ... | @@ -660,9 +662,12 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 660 | 662 | if(garOrderMatchAsk.getGarOrderType()==null){ |
| 661 | 663 | //判断车辆上传装车图片时是否在投放点区域内 |
| 662 | 664 | garOrderAssociationServiceAsync.isWithinDropPointCoordinates(dto.getCarPlate(), garOrderMatchAsk, dto); |
| 665 | + garOrderMatchAsk.setGarCreateTime(new Date()); | |
| 666 | + askService.updateById(garOrderMatchAsk); | |
| 663 | 667 | break; |
| 664 | 668 | } |
| 665 | 669 | } |
| 670 | + | |
| 666 | 671 | } |
| 667 | 672 | |
| 668 | 673 | // //上传装车图片生成订单关联台账,卸车图片结束订单关联台账 |
| ... | ... | @@ -1479,6 +1484,7 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 1479 | 1484 | BeanUtils.copyProperties(dto, garOrderMatchAsk); |
| 1480 | 1485 | garOrderMatchAsk.setGarUpdateBy(dto.getGarOrderHandlerName()); |
| 1481 | 1486 | garOrderMatchAsk.setGarUpdateTime(new Date()); |
| 1487 | + garOrderMatchAsk.setGarHandlerCarCodeEnd(dto.getGarHandlerCarCode()); | |
| 1482 | 1488 | garOrderAssociationServiceAsync.isWithinDisposal(dto.getGarHandlerCarCode(), garOrderMatchAsk, dto); |
| 1483 | 1489 | askService.updateById(garOrderMatchAsk); |
| 1484 | 1490 | // 保存图片url | ... | ... |
trash-ui/package.json
trash-ui/src/App.vue
| ... | ... | @@ -9,3 +9,23 @@ export default { |
| 9 | 9 | name: 'App' |
| 10 | 10 | } |
| 11 | 11 | </script> |
| 12 | +<style lang="scss" scoped> | |
| 13 | +/* 隐藏所有 Element UI 的 overlay、按钮、背景等 */ | |
| 14 | +@media print { | |
| 15 | + body * { | |
| 16 | + visibility: hidden; | |
| 17 | + } | |
| 18 | + /* 只显示我们的 printArea 里内容 */ | |
| 19 | + [ref="printArea"], [ref="printArea"] * { | |
| 20 | + visibility: visible; | |
| 21 | + } | |
| 22 | + /* 把它们拉到页面顶端 */ | |
| 23 | + [ref="printArea"] { | |
| 24 | + position: absolute; | |
| 25 | + top: 0; | |
| 26 | + left: 0; | |
| 27 | + width: 100%; | |
| 28 | + } | |
| 29 | +} | |
| 30 | + | |
| 31 | +</style> | ... | ... |
trash-ui/src/views/ask/ask/index.vue
| ... | ... | @@ -128,7 +128,12 @@ |
| 128 | 128 | </template> |
| 129 | 129 | </el-table-column> |
| 130 | 130 | <el-table-column label="接收量(吨)" align="center" prop="garReceptionQuantity" /> |
| 131 | - <el-table-column label="趟次类型" align="center" prop="garOrderType" /> | |
| 131 | + <el-table-column label="趟次类型" align="center" prop="garOrderType" > | |
| 132 | + <template slot-scope="scope"> | |
| 133 | + <span v-if="scope.row.garOrderType == 0">正常趟次</span> | |
| 134 | + <span v-if="scope.row.garOrderType == 1">异常趟次</span> | |
| 135 | + </template> | |
| 136 | + </el-table-column> | |
| 132 | 137 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| 133 | 138 | <template slot-scope="scope"> |
| 134 | 139 | <el-button |
| ... | ... | @@ -149,142 +154,107 @@ |
| 149 | 154 | /> |
| 150 | 155 | |
| 151 | 156 | <!-- 添加或修改趟次关联台账对话框 --> |
| 152 | - <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> | |
| 153 | - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | |
| 154 | - <el-row> | |
| 155 | - <el-col :span="12"> | |
| 156 | - <el-form-item label="订单 id" prop="garOrderId"> | |
| 157 | - <el-input v-model="form.garOrderId" placeholder="请输入订单 id" /> | |
| 158 | - </el-form-item> | |
| 159 | - </el-col> | |
| 160 | - <el-col :span="12"> | |
| 161 | - <el-form-item label="订单编号" prop="garOrderNumber"> | |
| 162 | - <el-input v-model="form.garOrderNumber" placeholder="请输入订单编号" /> | |
| 163 | - </el-form-item> | |
| 164 | - </el-col> | |
| 165 | - </el-row> | |
| 166 | - <el-row> | |
| 167 | - <el-col :span="12"> | |
| 168 | - <el-form-item label="运输驾驶员手机号" prop="garOrderHandlerTel"> | |
| 169 | - <el-input v-model="form.garOrderHandlerTel" placeholder="请输入运输驾驶员手机号" /> | |
| 170 | - </el-form-item> | |
| 171 | - </el-col> | |
| 172 | - <el-col :span="12"> | |
| 173 | - <el-form-item label="运输驾驶员" prop="garOrderHandlerName"> | |
| 174 | - <el-input v-model="form.garOrderHandlerName" placeholder="请输入运输驾驶员" /> | |
| 175 | - </el-form-item> | |
| 176 | - </el-col> | |
| 177 | - </el-row> | |
| 178 | - <el-row> | |
| 179 | - <el-col :span="12"> | |
| 180 | - <el-form-item label="车辆类型" prop="garOrderContainerVolume"> | |
| 181 | - <el-input v-model="form.garOrderContainerVolume" placeholder="请输入车辆类型" /> | |
| 182 | - </el-form-item> | |
| 183 | - </el-col> | |
| 184 | - <el-col :span="12"> | |
| 185 | - <el-form-item label="车牌号" prop="garHandlerCarCode"> | |
| 186 | - <el-input v-model="form.garHandlerCarCode" placeholder="请输入车牌号" /> | |
| 187 | - </el-form-item> | |
| 188 | - </el-col> | |
| 189 | - </el-row> | |
| 190 | - <el-row> | |
| 191 | - <el-col :span="12"> | |
| 192 | - <el-form-item label="公司名称" prop="garOrderHandlerCompanyName"> | |
| 193 | - <el-input v-model="form.garOrderHandlerCompanyName" placeholder="请输入公司名称" /> | |
| 194 | - </el-form-item> | |
| 195 | - </el-col> | |
| 196 | - <el-col :span="12"> | |
| 197 | - <el-form-item label="生成时间" prop="garCreateTime"> | |
| 198 | - <el-date-picker clearable size="small" style="width: 100%" | |
| 199 | - v-model="form.garCreateTime" | |
| 200 | - type="date" | |
| 201 | - value-format="yyyy-MM-dd HH:mm:ss" | |
| 202 | - placeholder="选择公司名称"> | |
| 203 | - </el-date-picker> | |
| 204 | - </el-form-item> | |
| 205 | - </el-col> | |
| 206 | - </el-row> | |
| 207 | - <el-row> | |
| 208 | - <el-col :span="12"> | |
| 209 | - <el-form-item label="接收时间" prop="garUpdateTime"> | |
| 210 | - <el-date-picker clearable size="small" style="width: 100%" | |
| 211 | - v-model="form.garUpdateTime" | |
| 212 | - type="date" | |
| 213 | - value-format="yyyy-MM-dd HH:mm:ss" | |
| 214 | - placeholder="选择公司名称"> | |
| 215 | - </el-date-picker> | |
| 216 | - </el-form-item> | |
| 217 | - </el-col> | |
| 218 | - <el-col :span="12"> | |
| 219 | - <el-form-item label="重量" prop="garCarryingWeight"> | |
| 220 | - <el-input v-model="form.garCarryingWeight" placeholder="请输入重量" /> | |
| 221 | - </el-form-item> | |
| 222 | - </el-col> | |
| 223 | - </el-row> | |
| 224 | - <el-row> | |
| 225 | - <el-col :span="12"> | |
| 226 | - <el-form-item label="接收量" prop="garReceptionQuantity"> | |
| 227 | - <el-input v-model="form.garReceptionQuantity" placeholder="请输入接收量" /> | |
| 228 | - </el-form-item> | |
| 229 | - </el-col> | |
| 230 | - <el-col :span="12"> | |
| 231 | - <el-form-item label="投放点" prop="dropPointName"> | |
| 232 | - <el-input v-model="form.dropPointName" placeholder="请输入投放点" /> | |
| 233 | - </el-form-item> | |
| 234 | - </el-col> | |
| 235 | - </el-row> | |
| 236 | - <el-row> | |
| 237 | - <el-col :span="12"> | |
| 238 | - <el-form-item label="趟次类型" prop="garOrderType"> | |
| 239 | - <el-select v-model="form.garOrderType" placeholder="请选择趟次类型0=正常趟次,1=异常趟次" style="width: 100%"> | |
| 240 | - <el-option label="正常趟次" value="0" /> | |
| 241 | - <el-option label="异常趟次" value="1" /> | |
| 242 | - </el-select> | |
| 243 | - </el-form-item> | |
| 244 | - </el-col> | |
| 245 | - <el-col :span="12"> | |
| 246 | - <el-form-item label="处理场所" prop="disposalSiteName"> | |
| 247 | - <el-input v-model="form.disposalSiteName" placeholder="请输入处理场所" /> | |
| 248 | - </el-form-item> | |
| 249 | - </el-col> | |
| 250 | - </el-row> | |
| 251 | - <el-row> | |
| 252 | - <el-col :span="12"> | |
| 157 | + <el-dialog | |
| 158 | + :title="title" | |
| 159 | + :visible.sync="open" | |
| 160 | + width="800px" | |
| 161 | + ref="myDialog" | |
| 162 | + :show-close="false" | |
| 163 | + append-to-body | |
| 164 | + > | |
| 165 | + | |
| 166 | + <div style="overflow-x:auto;" ref="printArea"> | |
| 167 | + <h1 style="text-align:center;">装修垃圾收运处电子联单</h1> | |
| 168 | + <div style="margin-bottom: 10px; font-size: 18px"> | |
| 169 | + <span>联单编号:<span style="color:red;">{{ form.garOrderNumber }}</span></span> | |
| 170 | + </div> | |
| 171 | + <table | |
| 172 | + border="1" | |
| 173 | + cellspacing="0" | |
| 174 | + cellpadding="8" | |
| 175 | + style="width: 100%; border-collapse: collapse; font-size: 16px; text-align: left;" | |
| 176 | + > | |
| 177 | + <!-- 投放端信息 分隔 --> | |
| 178 | + <tr> | |
| 179 | + <td colspan="4" style="background:#f5f7fa; font-weight:600;"> | |
| 180 | + 投放端信息 | |
| 181 | + </td> | |
| 182 | + </tr> | |
| 183 | + <tr> | |
| 184 | + <td style="width:20%;">投放人名称</td> | |
| 185 | + <td style="width:30%;">{{ form.garOrderName || '-' }}</td> | |
| 186 | + <td style="width:20%;">订单时间</td> | |
| 187 | + <td style="width:30%;">{{ form.garOrderTime || '-' }}</td> | |
| 188 | + </tr> | |
| 189 | + <tr> | |
| 190 | + <td>联系电话</td> | |
| 191 | + <td>{{ form.garOrderPhone || '-' }}</td> | |
| 192 | + <td>车次</td> | |
| 193 | + <td>{{ form.dropCarNum || '-' }}</td> | |
| 194 | + </tr> | |
| 195 | + <tr> | |
| 196 | + <td>投放地址</td> | |
| 197 | + <td colspan="3">{{ form.dropAddress || '-' }}</td> | |
| 198 | + </tr> | |
| 199 | + | |
| 200 | + <!-- 运输端信息 分隔 --> | |
| 201 | + <tr> | |
| 202 | + <td colspan="4" style="background:#f5f7fa; font-weight:600;"> | |
| 203 | + 运输端信息 | |
| 204 | + </td> | |
| 205 | + </tr> | |
| 206 | + <tr> | |
| 207 | + <td>运输单位</td> | |
| 208 | + <td>{{ form.garOrderHandlerCompanyName || '-' }}</td> | |
| 209 | + <td>运输时间</td> | |
| 210 | + <td>{{ form.garCreateTime || '-' }}</td> | |
| 211 | + </tr> | |
| 212 | + <tr> | |
| 213 | + <td>车牌号</td> | |
| 214 | + <td>{{ form.garHandlerCarCode || '-' }}</td> | |
| 215 | + <td>驾驶员</td> | |
| 216 | + <td>{{ form.garOrderHandlerName || '-' }}</td> | |
| 217 | + </tr> | |
| 253 | 218 | |
| 254 | - </el-col> | |
| 255 | - <el-col :span="12"> | |
| 219 | + <!-- 处置端信息 分隔 --> | |
| 220 | + <tr> | |
| 221 | + <td colspan="4" style="background:#f5f7fa; font-weight:600;"> | |
| 222 | + 处置端信息 | |
| 223 | + </td> | |
| 224 | + </tr> | |
| 225 | + <tr> | |
| 226 | + <td>处置场名称</td> | |
| 227 | + <td>{{ form.disposalSiteName || '-' }}</td> | |
| 228 | + <td>接收时间</td> | |
| 229 | + <td>{{ form.garUpdateTime || '-' }}</td> | |
| 230 | + </tr> | |
| 231 | + <tr> | |
| 232 | + <td>接收车牌</td> | |
| 233 | + <td>{{ form.garHandlerCarCodeEnd || '-' }}</td> | |
| 234 | + <td>接收量(吨)</td> | |
| 235 | + <td>{{ form.garReceptionQuantity || '-' }}</td> | |
| 236 | + </tr> | |
| 256 | 237 | |
| 257 | - </el-col> | |
| 258 | - </el-row> | |
| 259 | - <el-row> | |
| 260 | - <el-col :span="12"> | |
| 261 | - <el-form-item label="下单手机号" prop="garOrderPhone"> | |
| 262 | - <el-input v-model="form.garOrderPhone" placeholder="请输入下单手机号" /> | |
| 263 | - </el-form-item> | |
| 264 | - </el-col> | |
| 265 | - <el-col :span="12"> | |
| 266 | - <el-form-item label="下单人" prop="garOrderName"> | |
| 267 | - <el-input v-model="form.garOrderName" placeholder="请输入下单人" /> | |
| 268 | - </el-form-item> | |
| 269 | - </el-col> | |
| 270 | - </el-row> | |
| 271 | - <el-row> | |
| 272 | - <el-col> | |
| 273 | - <el-form-item label="备注" prop="garRemark"> | |
| 274 | - <el-input v-model="form.garRemark" placeholder="请输入备注" /> | |
| 275 | - </el-form-item> | |
| 276 | - </el-col> | |
| 277 | - </el-row> | |
| 278 | - </el-form> | |
| 279 | - <div slot="footer" class="dialog-footer"> | |
| 280 | - <el-button @click="cancel">取 消</el-button> | |
| 238 | + <!-- 备注 --> | |
| 239 | + <tr> | |
| 240 | + <td>备注</td> | |
| 241 | + <td colspan="3">{{ form.garRemark || '-' }}</td> | |
| 242 | + </tr> | |
| 243 | + </table> | |
| 281 | 244 | </div> |
| 245 | + | |
| 246 | + <template #footer> | |
| 247 | + <el-button type="primary" @click="handlePrint" v-show="isPrint">打印</el-button> | |
| 248 | + <el-button type="primary" @click="exportToPDF" v-show="isPrint">导出</el-button> | |
| 249 | + <el-button @click="cancel" v-show="isPrint">取 消</el-button> | |
| 250 | + </template> | |
| 282 | 251 | </el-dialog> |
| 283 | 252 | </div> |
| 284 | 253 | </template> |
| 285 | 254 | |
| 286 | 255 | <script> |
| 287 | 256 | import { listAsk, getAsk, delAsk, addAsk, updateAsk, exportAsk } from "@/api/ask/ask"; |
| 257 | +import html2pdf from 'html2pdf.js' | |
| 288 | 258 | |
| 289 | 259 | export default { |
| 290 | 260 | name: "Ask", |
| ... | ... | @@ -340,13 +310,44 @@ export default { |
| 340 | 310 | form: {}, |
| 341 | 311 | // 表单校验 |
| 342 | 312 | rules: { |
| 343 | - } | |
| 313 | + }, | |
| 314 | + isPrint: false | |
| 344 | 315 | }; |
| 345 | 316 | }, |
| 346 | 317 | created() { |
| 347 | 318 | this.getList(); |
| 348 | 319 | }, |
| 349 | 320 | methods: { |
| 321 | + exportToPDF() { | |
| 322 | + const element = this.$refs.printArea; | |
| 323 | + | |
| 324 | + const opt = { | |
| 325 | + margin: [0.4, 0.2], // 上下、左右 页边距(单位:inch) | |
| 326 | + filename: `装修垃圾收运处电子联单_${this.form.garOrderNumber}.pdf`, | |
| 327 | + image: { type: 'jpeg', quality: 0.98 }, | |
| 328 | + html2canvas: { scale: 2, useCORS: true }, | |
| 329 | + jsPDF: { unit: 'in', format: 'a4', orientation: 'portrait' } | |
| 330 | + }; | |
| 331 | + | |
| 332 | + // 调用 html2pdf,自动生成并下载 | |
| 333 | + html2pdf() | |
| 334 | + .set(opt) | |
| 335 | + .from(element) | |
| 336 | + .save() | |
| 337 | + .catch(err => { | |
| 338 | + console.error('导出 PDF 失败:', err); | |
| 339 | + }); | |
| 340 | + }, | |
| 341 | + handlePrint() { | |
| 342 | + // 先关闭 el-dialog 的 modal 遮罩,防止遮罩也一起打印 | |
| 343 | + this.$refs.myDialog.hide(); | |
| 344 | + this.isPrint = false; | |
| 345 | + // 等 Vue 更新完后再调用 | |
| 346 | + this.$nextTick(() => { | |
| 347 | + window.print(); | |
| 348 | + this.isPrint = true; | |
| 349 | + }); | |
| 350 | + }, | |
| 350 | 351 | /** 查询趟次关联台账列表 */ |
| 351 | 352 | getList() { |
| 352 | 353 | this.loading = true; |
| ... | ... | @@ -414,7 +415,8 @@ export default { |
| 414 | 415 | getAsk(garId).then(response => { |
| 415 | 416 | this.form = response.data; |
| 416 | 417 | this.open = true; |
| 417 | - this.title = "修改趟次关联台账"; | |
| 418 | + this.isPrint = true; | |
| 419 | + this.title = ""; | |
| 418 | 420 | }); |
| 419 | 421 | }, |
| 420 | 422 | /** 导出按钮操作 */ |
| ... | ... | @@ -433,3 +435,32 @@ export default { |
| 433 | 435 | } |
| 434 | 436 | }; |
| 435 | 437 | </script> |
| 438 | +<style lang="scss" scoped> | |
| 439 | +.table-container { | |
| 440 | + overflow-x: auto; | |
| 441 | + padding: 16px; | |
| 442 | + background: #fff; | |
| 443 | + table { | |
| 444 | + width: 100%; | |
| 445 | + border-collapse: collapse; | |
| 446 | + th, td { | |
| 447 | + border: 1px solid #333; | |
| 448 | + padding: 8px; | |
| 449 | + vertical-align: middle; | |
| 450 | + font-size: 14px; | |
| 451 | + } | |
| 452 | + th { | |
| 453 | + background: #f0f0f0; | |
| 454 | + font-weight: 600; | |
| 455 | + } | |
| 456 | + tr:nth-of-type(3), | |
| 457 | + tr:nth-of-type(6), | |
| 458 | + tr:nth-of-type(9) { | |
| 459 | + td { | |
| 460 | + background: #fafafa; | |
| 461 | + font-weight: 600; | |
| 462 | + } | |
| 463 | + } | |
| 464 | + } | |
| 465 | +} | |
| 466 | +</style> | ... | ... |