浏览代码

考试排座

bzkf30 2 年之前
父节点
当前提交
14b5cca12f

+ 143 - 6
src/pages/xdjx/kcpzgl/kcpz/detail/kslb/index.vue

@@ -6,6 +6,7 @@ import { pick } from 'lodash-es';
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import type { AxiosRequestConfig } from 'axios'
+import printJS from "print-js";
 
 // #region (constant)
 const TABLE_KEY = 'xkks_id'
@@ -95,6 +96,14 @@ const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
   whichDialogSubmit = 'edit'
   const res = await detailApi(scope.row[TABLE_KEY])
   dialogForm_Data.value = (res.data.one_info)
+  xsData.value = {
+    value: dialogForm_Data.value.xkks_zkzh,
+    label: dialogForm_Data.value.xkks_xsxm
+  }
+  kcData.value = {
+    value: dialogForm_Data.value.xkks_kcmc,
+    label: dialogForm_Data.value.xkks_kcmc_json
+  }
   dialogVisible_addOrEdit.value = true
 }
 const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
@@ -135,6 +144,8 @@ const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Parti
 const handleDialogFormBtn_cancel = (formRefKey?: string) => {
   dialogVisible_addOrEdit.value = false
   dialogVisible_audit.value = false
+  xsData.value = {};
+  kcData.value = {};
 }
 // #endregion
 
@@ -160,6 +171,7 @@ const dialogForm_Rules_addOrEdit = reactive({
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
+const zkdDialog = ref<boolean>(false)
 
 const dialogForm_Field_audit = reactive<{
   FLAG: keyof TYPE_TABLE_FIELD,
@@ -274,6 +286,9 @@ function init() {
 init()
 // #endregion
 
+const xsData = ref({});
+const kcData = ref({});
+
 
 const handleXsChange = ($event: { value: string, label: string }) => {
   dialogForm_Data.value.xkks_zkzh = $event.value;
@@ -284,6 +299,88 @@ const handleKcChange = ($event: { value: string, label: string }) => {
   dialogForm_Data.value.xkks_kcmc = $event.value;
   dialogForm_Data.value.xkks_kcmc_json = $event.label;
 }
+
+
+const handlePrint = () => {
+  printJS({
+    printable: "print-part",
+    type: "html",
+    style: `
+#print-part {
+      print-color-adjust: exact
+}
+.flex_center {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.flex {
+  display: flex;
+}
+
+.flex-col {
+  flex-direction: column;
+}
+
+.flex-row {
+  flex-direction: row;
+}
+
+.py-3 {
+  padding-top: 0.75rem;
+  padding-bottom: 0.75rem;
+}
+
+.py-2 {
+  padding-top: 0.5rem;
+  padding-bottom: 0.5rem;
+}
+
+.py-8 {
+  padding-top: 2rem;
+  padding-bottom: 2rem;
+}
+
+.px-3 {
+  padding-left: 0.75rem;
+  padding-right: 0.75rem;
+}
+
+.px-6 {
+  padding-left: 2rem;
+  padding-right: 2rem;
+}
+
+.text-2xl {
+  font-size: 1.5rem;
+  line-height: 2rem;
+}
+
+.pre::before {
+  background-color: rgba(96, 165, 250, 1);
+  display: inline-block;
+  height: 100%;
+  margin-right: 6px;
+  color: #60A5FA;
+  content: "|";
+  width: 4px;
+}
+
+.table-item {
+  width: 400px;margin: auto;border: 1px solid #aaa;padding: 20px;font-size: 20px;line-height: 30px;margin-bottom: 30px;
+}
+.justify-between {
+  justify-content: space-between;
+}
+.font30 {
+  font-size: 30px;
+}
+.font12 {
+  font-size: 12px;
+}
+`,
+  });
+};
 </script>
 
 <template>
@@ -314,6 +411,7 @@ const handleKcChange = ($event: { value: string, label: string }) => {
       <el-button @click="handleTableRowBtn_export" type="success">导出打印</el-button>
       <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
       <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <el-button @click="zkdDialog=true" type="success">准考证打印</el-button>
     </div>
 
     <div class="divider"></div>
@@ -331,7 +429,7 @@ const handleKcChange = ($event: { value: string, label: string }) => {
         <!-- <el-table-column prop="cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <!-- <el-table-column prop="xkks_kcmc" label="考场名称" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="xkks_kcmc_json" label="考场名称" width="auto" show-overflow-tooltip></el-table-column>
-        <!-- <el-table-column prop="xkks_zkzh" label="准考证号" width="auto" show-overflow-tooltip></el-table-column> -->
+        <el-table-column prop="xkks_zkzh" label="准考证号" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="xkks_zc_x" label="坐次列" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="xkks_zc_y" label="坐次行" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column label="操作" fixed="right">
@@ -353,12 +451,12 @@ const handleKcChange = ($event: { value: string, label: string }) => {
     </div>
   </div>
   <!-- {{ ksxx.ks }} -->
-  <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
+  <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close @close="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')">
     <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
       label-width="120px">
       <el-form-item label="学生姓名" prop="xkks_xsxm">
         <!-- <el-input v-model="dialogForm_Data.xkks_xsxm" clearable /> -->
-        <el-select value-key="value" @change="handleXsChange">
+        <el-select value-key="value" v-model="xsData" @change="handleXsChange">
           <el-option v-for="_ in ksxx.ks" :value="_" :label="_.label"></el-option>
         </el-select>
       </el-form-item>
@@ -370,12 +468,12 @@ const handleKcChange = ($event: { value: string, label: string }) => {
       <el-form-item label="班级编号" prop="cm_id"><el-input v-model="dialogForm_Data.cm_id" clearable /></el-form-item> -->
       <el-form-item label="考场名称" prop="xkks_kcmc">
         <!-- <el-input v-model="dialogForm_Data.xkks_kcmc" clearable /> -->
-        <el-select value-key="value" @change="handleKcChange">
+        <el-select value-key="value" v-model="kcData" @change="handleKcChange">
           <el-option v-for="_ in ksxx.kc" :value="_" :label="_.label"></el-option>
         </el-select>
       </el-form-item>
-      <!-- <el-form-item label="考场名称JSON" prop="xkks_kcmc_json"><el-input v-model="dialogForm_Data.xkks_kcmc_json" type="textarea" /></el-form-item>
-      <el-form-item label="准考证号" prop="xkks_zkzh"><el-input v-model="dialogForm_Data.xkks_zkzh" clearable /></el-form-item> -->
+      <!-- <el-form-item label="考场名称JSON" prop="xkks_kcmc_json"><el-input v-model="dialogForm_Data.xkks_kcmc_json" type="textarea" /></el-form-item> -->
+      <el-form-item label="准考证号" prop="xkks_zkzh"><el-input v-model="dialogForm_Data.xkks_zkzh" clearable /></el-form-item>
       <el-form-item label="坐次列" prop="xkks_zc_x">
         <el-input v-model="dialogForm_Data.xkks_zc_x" clearable />
       </el-form-item>
@@ -408,4 +506,43 @@ const handleKcChange = ($event: { value: string, label: string }) => {
       </div>
     </el-form>
   </el-dialog>
+
+
+  <el-dialog v-model="zkdDialog" append-to-body destroy-on-close>
+    <div id="print-part" style="height: 500px;color: #000;overflow: auto;">
+      <div v-for="(item, index) in tableData" :key="index" class="table-item">
+        <div class="flex justify-between">
+          <div>
+            <div>{{ item.xkks_xsxm }}</div>
+            <div>准考证号:{{ item.xkks_zkzh }}</div>
+            <div>{{ item.xkks_kcmc_json }}</div>
+          </div>
+          <div class="flex_center">
+            <div>
+              <div class="text-center font30">{{ item.xkks_zc_x }}排{{ item.xkks_zc_y }}座</div>
+              <div class="text-center font12">座位号</div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div class="flex justify-center">
+      <el-button @click="handlePrint" type="primary">打印</el-button>
+      <el-button @click="zkdDialog=false" type="default">取消</el-button>
+    </div>
+  </el-dialog>
 </template>
+
+
+<style lang="scss" scoped>
+.table-item {
+  width: 400px;margin: auto;border: 1px solid #aaa;padding: 20px;font-size: 20px;line-height: 30px;margin-bottom: 30px;
+}
+.font30 {
+  font-size: 30px;
+}
+.font12 {
+  font-size: 12px;
+}
+</style>

+ 4 - 0
src/pages/xdjx/xszhsz/xscjbgd/index.vue

@@ -67,6 +67,9 @@ const handleTableRowBtn_import = async ({ file }: { file: File }) => {
 const handleTableRowBtn_export = () => {
   if(multipleSelection.value.length===0) return ElMessage.info('请先勾选导出文件');exportApi({[TABLE_KEY]:multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY])?.join()})
 }
+const handleTableRowBtn_Print = () => {
+  download(URL_CUT + '/detail_download')
+}
 const handleTableRowBtn_add = () => {
   whichDialogSubmit = 'add'
   dialogForm_Data.value = {}
@@ -282,6 +285,7 @@ init()
       <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
       <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
       <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <el-button @click="handleTableRowBtn_Print" type="success">批量打印</el-button>
     </div>
 
     <div class="divider"></div>

+ 1 - 1
src/pages/xdjx/xszhsz/xycj/index.vue

@@ -477,7 +477,7 @@ init();
         <remote-cascader-class focusing v-model="dialogForm_Data.class_id"  v-model:modelName="dialogForm_Data.class_name" v-model:teamId="dialogForm_Data.team_id" v-model:gradeId="dialogForm_Data.grade_id"></remote-cascader-class>
       </el-form-item> -->
       <el-form-item label="学业成绩内容" prop="xxxcj_xycj">
-        <el-input v-model="dialogForm_Data.xxxcj_xycj" clearable />
+        <el-input v-model="dialogForm_Data.xxxcj_xycj" clearable placeholder="例如填写:语文 A , 数学 B, ....... 或者 语文 110, 数学 80, ......." />
       </el-form-item>
       <!-- <el-form-item label="学业成绩JSON" prop="xxxcj_xycj_json">
         <el-input v-model="dialogForm_Data.xxxcj_xycj_json" type="textarea" />