소스 검색

更新打印证书

guhongwei 5 년 전
부모
커밋
deaa91a1b6
3개의 변경된 파일65개의 추가작업 그리고 40개의 파일을 삭제
  1. 1 0
      public/index.html
  2. 58 36
      src/views/student/certCard.vue
  3. 6 4
      src/views/train-plan/print.vue

+ 1 - 0
public/index.html

@@ -6,6 +6,7 @@
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
     <title>train-center</title>
+
   </head>
   <body>
     <noscript>

+ 58 - 36
src/views/student/certCard.vue

@@ -9,34 +9,20 @@
           </el-button>
         </el-col>
         <el-col :span="24" class="list">
-          <data-table :fields="fields" :data="list" :total="total" :opera="opera" :usePage="false"></data-table>
+          <data-table :fields="fields" :data="list" :opera="opera" :usePage="false"></data-table>
         </el-col>
-        <!-- <el-col :span="24" ref="print">
-          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-            <p>
-              <span>学校(院):</span>
-              <span>{{ item.school_name }}</span>
-              <span>,</span>
-              <span>{{ item.entry_year }}</span>
-              <span>级</span>
-              <span>{{ item.major }}</span>
-              <span>专业</span>
-              <span>学生:</span>
-              <span>{{ item.name }}</span>
-              <span>于</span>
-              <span>2020年11月参加吉林省大学生就业能力扩展训练</span>
-              <span>第</span>
-              <span>{{ item.termname }}</span>
-              <span>期培训班。培训合格,特发此证</span>
-            </p>
-            <p>
-              <span>证书编号:2020{{ item.termname }}{{ item.classname }}</span>
-              <span>2020年11月22日</span>
-            </p>
-          </el-col>
-        </el-col> -->
       </el-col>
     </el-row>
+    <el-dialog title="毕业日期" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
+      <el-col :span="24">
+        <el-date-picker v-model="endDate" type="date" format="yyyy  年  MM  月 dd  日" value-format="yyyy   年  MM  月 dd  日" placeholder="选择日期">
+        </el-date-picker>
+      </el-col>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="submit">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -49,7 +35,7 @@ export default {
   name: 'certCard',
   props: {
     list: { type: Array, default: () => [] },
-    total: null,
+    startdate: null,
   },
   components: {
     dataTable,
@@ -68,6 +54,8 @@ export default {
         { label: '职务', prop: 'job' },
         { label: '是否优秀', prop: 'is_fine', format: i => (i === '0' ? '否' : i === '1' ? '是' : '无资格') },
       ],
+      dialogVisible: false,
+      endDate: '',
     };
   },
   created() {
@@ -80,14 +68,29 @@ export default {
         name: 'expressDelivery1',
         unit: 'px',
         size: [1046.93, 714.02],
-        fixed: [{ type: 'image', x: 0, y: 0, default: this.zhengshu, width: 1046.93, height: 714.02 }],
+        fixed: [
+          { type: 'image', x: 0, y: 0, default: this.zhengshu, width: 1046.93, height: 714.02 },
+          { type: 'text', x: 138, y: 356, default: '学校(院):', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 607, y: 356, default: '级', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 857, y: 356, default: '专业', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 138, y: 426, default: '学生:', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 365, y: 426, default: '于', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 480, y: 426, default: '年', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 560, y: 426, default: '月参加吉林省大学生创新创业培训', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 138, y: 500, default: '第', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 238, y: 500, default: '期培训班。培训合格,特发此证。', fontSize: 18, fontFamily: '华文中宋' },
+          { type: 'text', x: 155, y: 580, default: '证书编号:', fontSize: 18, fontFamily: '华文中宋' },
+        ],
         data: {
-          school_name: { type: 'text', x: 15, y: 15, fontSize: 16 },
-          entry_year: { type: 'text', x: 56, y: 55, fontSize: 16 },
-          major: { type: 'text', x: 107, y: 105, fontSize: 16 },
-          name: { type: 'text', x: 158, y: 155, fontSize: 16 },
-          termname: { type: 'text', x: 15, y: 255, fontSize: 16 },
-          cernum: { type: 'text', x: 100, y: 250, fontSize: 16 },
+          school_name: { type: 'text', x: 268, y: 356, fontSize: 20, fontFamily: '华文中宋' },
+          entry_year: { type: 'text', x: 555, y: 356, fontSize: 20, fontFamily: '华文中宋' },
+          major: { type: 'text', x: 635, y: 356, fontSize: 20, fontFamily: '华文中宋' },
+          name: { type: 'text', x: 206, y: 426, fontSize: 20, fontFamily: '华文中宋' },
+          year: { type: 'text', x: 417, y: 426, fontSize: 20, fontFamily: '华文中宋' },
+          month: { type: 'text', x: 507, y: 426, fontSize: 20, fontFamily: '华文中宋' },
+          termnames: { type: 'text', x: 190, y: 500, fontSize: 20, fontFamily: '华文中宋' },
+          cernum: { type: 'text', x: 270, y: 580, fontSize: 20, fontFamily: '华文中宋' },
+          end_date: { type: 'text', x: 655, y: 580, fontSize: 20, fontFamily: '华文中宋' },
         },
       });
     },
@@ -98,12 +101,28 @@ export default {
       link.click();
     },
     print() {
+      this.dialogVisible = true;
+    },
+    submit() {
+      console.log(this.endDate);
+      this.dialogVisible = false;
+      let end_date = { end_date: this.endDate };
+      let year = { year: this.startdate.substring(0, 4) };
+      let month = { month: this.startdate.substring(5, 7) };
+      var enticeNew = this.list.map(item => ({ ...item, ...end_date, ...year, ...month }));
       let data = [];
       this.url = null;
-      let duplicate = _.cloneDeep(this.list);
+      let duplicate = _.cloneDeep(enticeNew);
       duplicate = duplicate.map(i => {
-        i.cernum = `2020${i.termname}${i.classname}`;
-        i.entry_year = `nihao${i.termname}${i.classname}`;
+        i.school_name = `${i.school_name}`;
+        i.entry_year = `${i.entry_year}`;
+        i.major = `${i.major}`;
+        i.name = `${i.name}`;
+        i.year = `${i.year}`;
+        i.month = `${i.month}`;
+        i.termnames = `${i.termname}`;
+        i.cernum = `${i.year}${i.termname}${i.classname}01`;
+        i.end_date = `${i.end_date}`;
         return i;
       });
       // this.template.print('expressDelivery1', [duplicate[0]]).then(pdf => {
@@ -116,6 +135,9 @@ export default {
         }
       });
     },
+    handleClose(done) {
+      done();
+    },
   },
   computed: {
     ...mapState(['user']),

+ 6 - 4
src/views/train-plan/print.vue

@@ -37,7 +37,7 @@
       <name-card v-loading="loading" :list="studList"></name-card>
     </detail-frame>
     <detail-frame title="打印证书" v-if="view == 'certList'" :returns="toReturns">
-      <cert-card :list="studList" :total="studTotal"></cert-card>
+      <cert-card :list="studList" :startdate="startdate"></cert-card>
     </detail-frame>
     <detail-frame title="学生报道表" v-if="view == 'signList'" :returns="toReturns">
       <sign-list v-loading="loading" :list="studList"></sign-list>
@@ -105,7 +105,7 @@ export default {
       classList: [],
       //打印数据
       studList: [],
-      studTotal: 0,
+      startdate: '',
       classInfo: {},
       lth: [], //table表头
       ltr: [], //table y轴
@@ -160,7 +160,9 @@ export default {
       this.view = 'signList';
       let { _id: classid } = data;
       let res = await this.getStudentList({ classid });
-      if (this.$checkRes(res)) this.$set(this, `studList`, res.data);
+      if (this.$checkRes(res)) {
+        this.$set(this, `studList`, res.data);
+      }
       this.loading = false;
     },
     async classLesson({ data }) {
@@ -184,7 +186,7 @@ export default {
       let res = await this.getStudentList({ classid });
       if (this.$checkRes(res)) {
         this.$set(this, `studList`, res.data);
-        this.$set(this, `studTotal`, res.total);
+        this.$set(this, `startdate`, data.startdate);
       }
       this.view = 'certList';
     },