print-sign copy.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <div id="print-sign">
  3. <el-row>
  4. <span v-if="display == 'list'">
  5. <el-col :span="24">
  6. <el-col :span="24" style="margin:15px 0;">
  7. <el-button type="primary" size="mini" @click="display = 'listView'">打印预览</el-button>
  8. </el-col>
  9. <el-col :span="24">
  10. <el-table border :data="list" size="small" style="border: solid #cecece;">
  11. <el-table-column align="center" label="姓名" prop="name"></el-table-column>
  12. <el-table-column align="center" label="性别" prop="gender"></el-table-column>
  13. <el-table-column align="center" label="民族" prop="nation"></el-table-column>
  14. <el-table-column align="center" label="身份证号" prop="id_number"></el-table-column>
  15. <el-table-column align="center" label="学校" prop="school_name"></el-table-column>
  16. <el-table-column align="center" label="专业" prop="major"></el-table-column>
  17. <el-table-column align="center" label="入学年份" prop="entry_year"></el-table-column>
  18. <el-table-column align="center" label="手机号" prop="phone"></el-table-column>
  19. <el-table-column align="center" label="班级" prop="classname"></el-table-column>
  20. <el-table-column align="center" label="寝室" prop="bedroom"></el-table-column>
  21. <el-table-column align="center" label="签名"></el-table-column>
  22. </el-table>
  23. </el-col>
  24. </el-col>
  25. </span>
  26. <span v-else>
  27. <el-col :span="24">
  28. <el-col :span="24" style="margin:15px 0;">
  29. <el-button type="primary" size="mini" @click="display = 'list'">返回</el-button>
  30. <el-button type="primary" size="mini" @click="toPrint()">打印</el-button>
  31. </el-col>
  32. </el-col>
  33. <el-col :span="24" class="printList" ref="print">
  34. <table border="1">
  35. <tr>
  36. <th>姓名</th>
  37. <th>性别</th>
  38. <th>民族</th>
  39. <th>身份证号</th>
  40. <th>学校</th>
  41. <th>专业</th>
  42. <th>入学年份</th>
  43. <th>手机号</th>
  44. <th>班级</th>
  45. <th>寝室</th>
  46. <th>签名</th>
  47. </tr>
  48. <tr v-for="(item, index) in list" :key="index">
  49. <td>{{ item.name }}</td>
  50. <td>{{ item.gender }}</td>
  51. <td>{{ item.nation }}</td>
  52. <td>{{ item.id_number }}</td>
  53. <td>{{ item.school_name }}</td>
  54. <td>{{ item.major }}</td>
  55. <td>{{ item.entry_year }}</td>
  56. <td>{{ item.phone }}</td>
  57. <td>{{ item.classname }}</td>
  58. <td>{{ item.bedroom }}</td>
  59. <td width="70px"></td>
  60. </tr>
  61. </table>
  62. <!-- <el-table :data="list" border style="width: 100%">
  63. <el-table-column width="260px" align="center" label="姓名" prop="name"></el-table-column>
  64. <el-table-column width="75px" align="center" label="性别" prop="gender"></el-table-column>
  65. <el-table-column width="140px" align="center" label="民族" prop="nation"></el-table-column>
  66. <el-table-column width="280px" align="center" label="身份证号" prop="id_number"></el-table-column>
  67. <el-table-column width="310px" align="center" label="学校" prop="school_name"></el-table-column>
  68. <el-table-column align="center" label="专业" prop="major"></el-table-column>
  69. <el-table-column width="120px" align="center" label="入学年份" prop="entry_year"></el-table-column>
  70. <el-table-column width="180px" align="center" label="手机号" prop="phone"></el-table-column>
  71. <el-table-column width="100px" align="center" label="班级" prop="classname"></el-table-column>
  72. <el-table-column width="100px" align="center" label="寝室" prop="bedroom"></el-table-column>
  73. <el-table-column width="150px" align="center" label="签名"></el-table-column>
  74. </el-table> -->
  75. </el-col>
  76. </span>
  77. </el-row>
  78. </div>
  79. </template>
  80. <script>
  81. import { mapState, createNamespacedHelpers } from 'vuex';
  82. export default {
  83. name: 'print-sign',
  84. props: {
  85. list: { type: Array, default: () => [] },
  86. },
  87. components: {},
  88. data: function() {
  89. return {
  90. display: 'list',
  91. };
  92. },
  93. created() {},
  94. methods: {
  95. toPrint() {
  96. this.$print(this.$refs.print);
  97. },
  98. },
  99. computed: {
  100. ...mapState(['user']),
  101. pageTitle() {
  102. return `${this.$route.meta.title}`;
  103. },
  104. },
  105. metaInfo() {
  106. return { title: this.$route.meta.title };
  107. },
  108. };
  109. </script>
  110. <style lang="less" scoped>
  111. .printList {
  112. width: 1050px;
  113. // height: 717px;
  114. table {
  115. border-collapse: collapse;
  116. zoom: 0.9;
  117. tr {
  118. th {
  119. text-align: center;
  120. // padding: 8px 0;
  121. height: 51.6px;
  122. }
  123. td {
  124. text-align: center;
  125. height: 23px;
  126. margin: 0 5px;
  127. }
  128. }
  129. }
  130. // height: 719px;
  131. // border: 1px solid #ccc;
  132. // /deep/.el-table {
  133. // font-size: 10px;
  134. // zoom: 0.5;
  135. // }
  136. // /deep/.el-table td {
  137. // height: 57px;
  138. // }
  139. // /deep/.el-table th {
  140. // height: 40px;
  141. // }
  142. }
  143. </style>