WINDOWS-7IFQK7E\EDY 1 年之前
父节点
当前提交
2c7639a552
共有 6 个文件被更改,包括 1026 次插入698 次删除
  1. 638 607
      src/router/index.js
  2. 1 1
      src/stores/user.js
  3. 32 0
      src/views/wypj/jfdh/api.js
  4. 84 0
      src/views/wypj/jfdh/index.vue
  5. 96 85
      src/views/wypj/xsewm/api.js
  6. 175 5
      src/views/wypj/xsewm/index.vue

文件差异内容过多而无法显示
+ 638 - 607
src/router/index.js


+ 1 - 1
src/stores/user.js

@@ -118,7 +118,7 @@ const RoleMap = {
   ZJ: [4, 5, 6],
   JYZ: [7, 8],
 };
-const userInfo = JSON.parse(localStorage.getItem("userInfo"));
+export const userInfo = JSON.parse(localStorage.getItem("userInfo"));
 // const { token, org_info, user_realname, user_avatar, power,user_org, } = userInfo
 
 export const user = {

+ 32 - 0
src/views/wypj/jfdh/api.js

@@ -0,0 +1,32 @@
+import request from '@/utils/request';
+export const jfdh_list = (data = {}) =>
+  request({
+    url: "/xddy/dygl_wypj_xsjfdhqk/index",
+    data,
+  });
+export const sign_edit = (data = {}) =>
+    request({
+        url: '/xddy/dygl_hdbm/edit',
+        data: {
+            issubmit:'1',
+            xdh_id: data.xdh_id,
+            xddy_dygl_hdbm:{
+                xdh_xsxm: data.xdh_xsxm,
+                xdh_xsxh: data.xdh_xsxh,
+                xdh_sjhm: data.xdh_sjhm,
+                xdb_id: data.xdb_id,
+                xdh_xsdf: data.xdh_xsdf,
+                xdh_xspj: data.xdh_xspj
+            }
+        }
+    })
+export const sign_del = (data = {}) =>
+    request({
+        url: '/xddy/dygl_hdbm/delete',
+        data: {
+            issubmit:'1',
+            xdh_id: data.xdh_id
+        }
+    })
+
+

+ 84 - 0
src/views/wypj/jfdh/index.vue

@@ -0,0 +1,84 @@
+<template>
+    <div>
+        <el-form :model="signForm" label-width="90px" :inline="true">
+            <el-form-item label="学生姓名:" prop="xsxm">
+                <el-input v-model="signForm.xsxm" clearable @clear="getListData">
+                </el-input>
+            </el-form-item>
+            <el-form-item label="学籍号:" prop="xsxh">
+                <el-input v-model="signForm.xsxh" clearable @clear="getListData">
+                </el-input>
+            </el-form-item>
+            <el-button type="primary" class="ml5" @click="getListData">搜索</el-button>
+        </el-form>
+        <el-table :data="jfList" v-loading="loading" tooltip-effect="dark" class="mt20" style="width: 100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" align="center" width="55">
+            </el-table-column>
+            <el-table-column label="学生姓名" align="left" prop="xdwxdj_xs_xm"></el-table-column>
+            <el-table-column label="学籍号" prop="xdwxdj_xs_xjh" width="auto">
+            </el-table-column>
+            <el-table-column label="兑换奖品" prop="xdwxdj_dhjp"></el-table-column>
+            <el-table-column label="兑换消耗积分" prop="xdwxdj_dhxhjf"></el-table-column>
+        </el-table>
+        <footer class="flex-item-none" style="display: flex; justify-content: flex-end; margin-top: 30px">
+            <el-pagination background layout="total,prev, pager, next" :page-size="limit" :total="total"
+                :current-page.sync="cur_page" @current-change="handleCurrentChange"></el-pagination>
+        </footer>
+    </div>
+</template>
+
+<script>
+import { jfdh_list, sign_del } from "./api";
+import { useUserStore } from "@/stores/user";
+const { token, real_name } = useUserStore();
+export default {
+    name: "index",
+    data() {
+        return {
+            xdb_id: "",
+            limit: 10,
+            total: 0,
+            loading: false,
+            cur_page: 1,
+            signForm: {
+                xsxm: "",
+                xsxh: "",
+            },
+            jfList: [],
+            multipleSelection: [],
+        };
+    },
+    methods: {
+        getListData() {
+            this.loading = true;
+            let data = {
+                page: this.cur_page,
+                limit: this.limit,
+                xdwxdj_xs_xm: this.signForm.xsxm,
+                xdwxdj_xs_xjh: this.signForm.xsxh,
+            };
+            jfdh_list(data).then((res) => {
+                this.loading = false;
+                if (res.code == 1) {
+                    this.jfList = res.data.page_data;
+                    this.cur_page = Number(res.data.page_now);
+                    this.total = Number(res.data.total_rows);
+                }
+            });
+        },
+        handleSelectionChange(val) {
+            this.multipleSelection = val;
+        },
+        handleCurrentChange(val) {
+            this.cur_page = val;
+            this.getListData();
+        },
+    },
+    mounted() {
+        this.getListData();
+    },
+};
+</script>
+
+<style scoped></style>

+ 96 - 85
src/views/wypj/xsewm/api.js

@@ -1,102 +1,113 @@
-import request from '@/utils/request';
+import request from "@/utils/request";
 export const xsewm_list = (data = {}) =>
   request({
     url: "/xddy/dygl_xsxjk/index",
     data,
   });
 export const xsewm_add = (data = {}) =>
-    request({
-        url: '/xddy/dygl_wypj_xsewm/add',
-        data: {
-            issubmit: '1',
-            xddy_dygl_wypj_xsewm: {
-                grade_id: data.grade_id,
-                grade_name: data.grade_name,
-                class_id: data.class_id,
-                class_name: data.class_name,
-                xdwx_xsxm: data.xdwx_xsxm,
-                xdwx_xsxh: data.xdwx_xsxh,
-                xdwx_xsxb: data.xdwx_xsxb,
-                xdwx_xsewm: data.xdwx_xsewm,
-
-            }
-        }
-    })
+  request({
+    url: "/xddy/dygl_wypj_xsewm/add",
+    data: {
+      issubmit: "1",
+      xddy_dygl_wypj_xsewm: {
+        grade_id: data.grade_id,
+        grade_name: data.grade_name,
+        class_id: data.class_id,
+        class_name: data.class_name,
+        xdwx_xsxm: data.xdwx_xsxm,
+        xdwx_xsxh: data.xdwx_xsxh,
+        xdwx_xsxb: data.xdwx_xsxb,
+        xdwx_xsewm: data.xdwx_xsewm,
+      },
+    },
+  });
 export const xsewm_edit = (data = {}) =>
-    request({
-        url: '/xddy/dygl_wypj_xsewm/edit',
-        data: {
-            issubmit: '1',
-            xdwx_id: data.xdwx_id,
-            xddy_dygl_wypj_xsewm: {
-                grade_id: data.grade_id,
-                grade_name: data.grade_name,
-                class_id: data.class_id,
-                class_name: data.class_name,
-                xdwx_xsxm: data.xdwx_xsxm,
-                xdwx_xsxh: data.xdwx_xsxh,
-                xdwx_xsxb: data.xdwx_xsxb,
-                xdwx_xsewm: data.xdwx_xsewm,
-
-            }
-        }
-    })
+  request({
+    url: "/xddy/dygl_wypj_xsewm/edit",
+    data: {
+      issubmit: "1",
+      xdwx_id: data.xdwx_id,
+      xddy_dygl_wypj_xsewm: {
+        grade_id: data.grade_id,
+        grade_name: data.grade_name,
+        class_id: data.class_id,
+        class_name: data.class_name,
+        xdwx_xsxm: data.xdwx_xsxm,
+        xdwx_xsxh: data.xdwx_xsxh,
+        xdwx_xsxb: data.xdwx_xsxb,
+        xdwx_xsewm: data.xdwx_xsewm,
+      },
+    },
+  });
 export const xsewm_del = (data = {}) =>
-    request({
-        url: '/xddy/dygl_wypj_xsewm/delete',
-        data: {
-            xdww_id: data.xdww_id,
-        }
-    })
+  request({
+    url: "/xddy/dygl_wypj_xsewm/delete",
+    data: {
+      xdww_id: data.xdww_id,
+    },
+  });
 
 export const xsewm_detail = (data = {}) =>
-    request({
-        url: '/xddy/dygl_wypj_xsewm/detail',
-        data: {
-            xdww_id: data.xdww_id,
-        }
-    })
+  request({
+    url: "/xddy/dygl_wypj_xsewm/detail",
+    data: {
+      xdww_id: data.xdww_id,
+    },
+  });
 export const xsewm_export = (data = {}) =>
-    request({
-        url: '/xddy/dygl_wypj_xsewm/index',
-        api: "xls",
-        data: {
-            page: data.page,
-            limit: data.limit
-        },
-    })
+  request({
+    url: "/xddy/dygl_wypj_xsewm/index",
+    api: "xls",
+    data: {
+      page: data.page,
+      limit: data.limit,
+    },
+  });
 export const grade_search = (data = {}) =>
-    request({
-        url: '/jcxx/grade/index',
-        data: {
-            page: data.page,
-            limit: data.limit,
-            keyword: data.keyword,
-            grade_id: data.grade_id,
-        }
-    })
+  request({
+    url: "/jcxx/grade/index",
+    data: {
+      page: data.page,
+      limit: data.limit,
+      keyword: data.keyword,
+      grade_id: data.grade_id,
+    },
+  });
 
 export const class_search = (data = {}) =>
-    request({
-        url: '/jcxx/class/index',
-        data: {
-            page: data.page,
-            limit: data.limit,
-            keyword: data.keyword,
-            class_name_short: data.class_name_short,
-            class_num: data.class_num,
-            grade_id: data.grade_id,
-            grade_name: data.grade_name,
-            team_id: data.team_id,
-            team_name: data.team_name,
-            rxnf: data.rxnf,
-
-        }
-    })
+  request({
+    url: "/jcxx/class/index",
+    data: {
+      page: data.page,
+      limit: data.limit,
+      keyword: data.keyword,
+      class_name_short: data.class_name_short,
+      class_num: data.class_num,
+      grade_id: data.grade_id,
+      grade_name: data.grade_name,
+      team_id: data.team_id,
+      team_name: data.team_name,
+      rxnf: data.rxnf,
+    },
+  });
 
 export const wypj_pf = (data = {}) => {
   return request({
-      url: "/xddy/dygl_wypj_pjjl/index",
-      data,
-    });
-}
+    url: "/xddy/dygl_wypj_pjjl/index",
+    data,
+  });
+};
+
+export const wypj_edit = (data = {}) => {
+  return request({
+    url: "/xddy/dygl_wypj_pjjl/edit",
+    data,
+  });
+};
+
+export const jfdh_add = (data = {}) => {
+  return request({
+    url: "/xddy/dygl_wypj_xsjfdhqk/add",
+    data,
+  });
+};

+ 175 - 5
src/views/wypj/xsewm/index.vue

@@ -40,9 +40,12 @@
           <h3 class="qr-code hand" @click="showQr(scope.row)"></h3>
         </template>
       </el-table-column>
+      <el-table-column label="积分" prop="xdx_jf" width="120">
+      </el-table-column>
       <el-table-column label="操作">
         <template slot-scope="scope">
           <el-button type="text" @click="handleWatch(scope.row)">查看评分</el-button>
+          <el-button type="text" @click="handleAward(scope.row)">兑换奖品</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -60,7 +63,7 @@
         <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
       </div>
     </el-dialog>
-    <el-dialog title="评分详情" :visible.sync="watchVisible" width="850px">
+    <el-dialog title="评分详情" :visible.sync="watchVisible" width="950px">
       <div class="flex justify-between px-10px">
         <div> 学生姓名: {{ stuData.xdx_xsxm }}</div>
         <div> 学生学籍号: {{ stuData.xdx_xsxh }}</div>
@@ -77,18 +80,53 @@
             <div v-else>-</div>
           </template>
         </el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <el-button type="text" @click="editScore(scope.row)">编辑</el-button>
+          </template>
+        </el-table-column>
       </el-table>
-      <div class="flex justify-end">
+      <div class="flex justify-end mt-20px">
         <el-pagination background layout="total,prev, pager, next" :page-size="query.limit" :total="pfTotal"
           :current-page.sync="query.page" @current-change="handleTableChange"></el-pagination>
       </div>
-
+    </el-dialog>
+    <el-dialog title="编辑分数" :visible.sync="editScoreVisible" width="450px">
+      <div class="flex items-center justify-center w-full">
+        <div class="mr-20px">得分: </div>
+        <el-input style="width: 200px;" v-model="wdwp_xs_df" placeholder="请输入分数"></el-input>
+      </div>
+      <div slot="footer" class="text-center">
+        <el-button type="primary" @click="editScoreSubmit">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="兑换奖品" :visible.sync="dhjpVisible" width="620px">
+      <el-form ref="jfForm" label-width="150px" :model="jfForm" :rules="jfRules" class="jfform">
+        <el-form-item label="学生姓名" prop="xdwxdj_xs_xm">
+          <el-input disabled v-model="jfForm.xdwxdj_xs_xm" />
+        </el-form-item>
+        <el-form-item label="学生学籍号" prop="xdwxdj_xs_xjh">
+          <el-input disabled v-model="jfForm.xdwxdj_xs_xjh" />
+        </el-form-item>
+        <el-form-item label="兑换奖品名称" prop="xdwxdj_dhjp">
+          <el-input v-model="jfForm.xdwxdj_dhjp" />
+        </el-form-item>
+        <el-form-item label="兑换消耗积分" prop="xdwxdj_dhxhjf">
+          <el-input type="number" v-model="jfForm.xdwxdj_dhxhjf" @input="isTrueNum($event);" />
+          <!-- <template slot-scope="{ error }">
+            {{error}}
+          </template> -->
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="text-center">
+        <el-button type="primary" @click="jfdhSubmit('jfForm')">确 定</el-button>
+      </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { xsewm_list, xsewm_export, grade_search, class_search, wypj_pf } from "./api";
+import { xsewm_list, xsewm_export, grade_search, class_search, wypj_pf, wypj_edit, jfdh_add } from "./api";
 import { useUserStore } from "@/stores/user";
 const { token } = useUserStore();
 import VueQr from "vue-qr";
@@ -132,6 +170,31 @@ export default {
       },
       pfTotal: 100,
       stu_id: '',
+      editScoreVisible: false,
+      scoreInfo: {},
+      wdwp_xs_df: '',
+      dhjpVisible: false,
+      jfForm: {
+        xdwxdj_xs_xjh: '',
+        xdwxdj_xs_xm: '',
+        xdwxdj_dhjp: '',
+        xdwxdj_dhxhjf: '',
+      },
+      jfRules: {
+        xdwxdj_xs_xjh: [
+          { required: true, message: "请输入学生学籍号", trigger: "submit" },
+        ],
+        xdwxdj_xs_xm: [
+          { required: true, message: "请输入学生姓名", trigger: "submit" },
+        ],
+        xdwxdj_dhjp: [
+          { required: true, message: "请输入兑换奖品", trigger: "submit" },
+        ],
+        xdwxdj_dhxhjf: [
+          { required: true, message: "请输入兑换消耗积分", trigger: "submit" },
+        ],
+      },
+      flag: false,
     };
   },
   methods: {
@@ -228,7 +291,7 @@ export default {
     },
     showQr(item) {
       this.appSrc =
-        "http://60.188.226.44:8000/app/xddy/#/scanCode?xsxm=" +
+        "http://60.188.226.44:8000/app/mobile/#/scanCode?xsxm=" +
         item.xdx_xsxm +
         "&xsxh=" +
         item.xdx_xsxh +
@@ -241,6 +304,7 @@ export default {
 
       this.dialogVisible = true;
     },
+    // #region 评分列表弹窗
     getPfList() {
       wypj_pf({ wdwp_xs_xjh: this.stuData?.xdx_xsxh, ...this.query }).then(res => {
         if (res.code == '1') {
@@ -255,6 +319,104 @@ export default {
       this.stuData = item;
       this.getPfList();
     },
+    // #endregion
+
+    // #region 编辑分数
+    editScore(item) {
+      this.editScoreVisible = true;
+      this.scoreInfo = item;
+      this.wdwp_xs_df = item.wdwp_xs_df;
+    },
+    editScoreSubmit() {
+      if (!this.wdwp_xs_df) {
+        return this.$message({
+          message: '请输入分数',
+          type: 'danger'
+        })
+      }
+      let data = {
+        wdwp_id: this.scoreInfo.wdwp_id,
+        xddy_dygl_wypj_pjjl: {
+          wdwp_xs_df: this.wdwp_xs_df,
+        }
+      }
+      wypj_edit(data).then(res => {
+        if (res.code == '1') {
+          this.$message({
+            message: '编辑成功',
+            type: 'success'
+          })
+          this.editScoreVisible = false;
+          this.getPfList();
+          this.getListData();
+        }
+      })
+    },
+    // #endregion
+
+    // #region 兑换奖品
+    handleAward(item) {
+      this.dhjpVisible = true;
+      this.stuData = item;
+      this.jfForm = {
+        xdwxdj_xs_xm: item.xdx_xsxm,
+        xdwxdj_xs_xjh: item.xdx_xsxh,
+        xdwxdj_dhjp: '',
+        xdwxdj_dhxhjf: '',
+      }
+    },
+    isTrueNum(event) {
+      this.$nextTick(() => {
+        console.log(event, '33333333333');
+        if (event > this.stuData.xdx_jf * 1) {
+          this.$message({
+            message: '超过所得积分值',
+            type: 'error',
+          })
+          this.flag = true;
+        } else {
+          this.flag = false;
+        }
+        // if (row.estimatedGenerationCost - event.target.value < 0) {
+        //   alert("超过值了,请重新输入")
+        //   //
+        //   event.target.value = event.target.value.slice(0, event.target.value.length - 1)
+        //   this.settlementList.supplierPaidAmount = event.target.value
+        // }
+      })
+    },
+    jfdhSubmit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          if (this.flag) {
+            return this.$message({
+              message: `请填写不大于${this.stuData.xdx_jf}的积分值`,
+              type:'error'
+            })
+          }
+          let data = {
+            xddy_dygl_wypj_xsjfdhqk: this.jfForm,
+          }
+          jfdh_add(data).then(res => {
+            if (res.code == '1') {
+              this.$message({
+                message: '兑换成功',
+                type: 'success'
+              })
+              this.dhjpVisible = false;
+              this.getListData();
+            } else {
+              this.$message({
+                message: '操作失败',
+                type: 'danger'
+              })
+            }
+          })
+        }
+      })
+    },
+    // #endregion
+
     switchGrade() {
       this.firstForm.class = "";
       this.classListData();
@@ -283,4 +445,12 @@ export default {
   background: url("@/assets/images/a-2.png") center no-repeat;
   background-size: 28px 28px;
 }
+
+::v-deep {
+  .jfform {
+    .el-input__inner {
+      width: 300px !important;
+    }
+  }
+}
 </style>