From db905ecd14f63dba9337b4f4715584ef2d7e8c7e Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期五, 07 三月 2025 14:45:00 +0800
Subject: [PATCH] 修改

---
 src/views/specialOperationsPay/notCoalPay/index.vue |  277 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 271 insertions(+), 6 deletions(-)

diff --git a/src/views/specialOperationsPay/notCoalPay/index.vue b/src/views/specialOperationsPay/notCoalPay/index.vue
index cf82b1e..6949c22 100644
--- a/src/views/specialOperationsPay/notCoalPay/index.vue
+++ b/src/views/specialOperationsPay/notCoalPay/index.vue
@@ -1,10 +1,275 @@
-<script setup>
-
-</script>
-
 <template>
+  <div class="app-container">
+    <div>
+      <el-button
+        style="margin-right: 10px;background-color: #0FC7F0;color: white"
+        @click="handleAdd('add',{})"
+        v-if="isAhthority"
+      >录入批次
+      </el-button>
+      <el-date-picker
+        style="width: 300px"
+        v-model="dateValue"
+        @change="changeDate"
+        type="daterange"
+        format="yyyy-MM-dd"
+        value-format="yyyy-MM-dd"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期">
+      </el-date-picker>
+<!--      <el-select v-model="queryParams.districtCode" size="small" style="margin-left: 15px;margin-right: 15px" placeholder="行政区划">-->
+<!--        <el-option-->
+<!--          v-for="item in areaList"-->
+<!--          :key="item.id"-->
+<!--          :label="item.name"-->
+<!--          :value="item.code">-->
+<!--        </el-option>-->
+<!--      </el-select>-->
+<!--      <el-select v-model="queryParams.deptId" size="small" style="margin-left: 15px;" placeholder="请选择考试点">-->
+<!--        <el-option-->
+<!--          v-for="item in examList"-->
+<!--          :key="item.siteId"-->
+<!--          :label="item.siteName"-->
+<!--          :value="item.siteId">-->
+<!--        </el-option>-->
+<!--      </el-select>-->
+<!--      <treeselect v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择组织架构" />-->
+      <el-cascader v-model="queryParams.deptId" style="margin-left: 10px" :options="deptOptions" placeholder="组织架构" :props="{ expandTrigger: 'hover',checkStrictly: true,emitPath: false,value: 'id' }"></el-cascader>
+      <el-button
+        type="primary"
+        style="margin-bottom: 10px;margin-left: 20px"
+        @click="handleQuery()"
+      >查询
+      </el-button>
+      <el-button
+        type="primary"
+        style="margin-bottom: 10px"
+        @click="resetQuery()"
+      >重置
+      </el-button>
+    </div>
+    <el-table v-loading="loading" :data="payList" style="margin-top: 10px">
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="提交时间" align="center" prop="createTime"/>
+      <el-table-column label="批次名称" align="center" prop="batchName"/>
+      <el-table-column label="组织架构" align="center" prop="deptName"/>
+      <el-table-column label="行政管辖" align="center" prop="districtName"/>
+      <el-table-column label="缴费类型" align="center" prop="payType">
+        <template #default="scope">
+          {{scope.row.payType == 1?'初训理论':scope.row.payType == 2?'初训实操':scope.row.payType == 3?'初训理论与实操':scope.row.payType == 4?'复训理论':''}}
+        </template>
+      </el-table-column>
+      <el-table-column label="单人(元)" align="center" prop="amount"/>
+      <el-table-column label="人数" align="center">
+        <template #default="scope">
+          <span>{{scope.row.havePayNum}}</span>/{{scope.row.totalNum}}
+        </template>
+      </el-table-column>
+      <el-table-column label="缴费形式" align="center" prop="batchName">
+        <template #default="scope">
+          <el-tag type="success" v-if="scope.row.payPersonType == 1">个人</el-tag>
+          <el-tag v-if="scope.row.payPersonType == 2">批量</el-tag>
+          <el-button type="text" style="color:lightcoral;margin-left: 5px" @click="updatePayType(scope.row)" size="small" v-if="scope.row.payPersonType == 1">转批量</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180px">
+        <template #default="scope">
+          <el-button v-if="isAhthority" size="mini" type="text" style="color: #1890ff" @click="handleViewStu(scope.row)">学员管理</el-button>
+          <el-button v-if="isAhthority && scope.row.payPersonType == 2 && (scope.row.havePayNum < scope.row.totalNum)" size="mini" type="text" style="color: #1890ff" @click="handleBatchPay(scope.row,'add')">批量缴费</el-button>
+          <el-button v-if="isAhthority" size="mini" type="text" style="color:lightcoral" @click="handleDelete(scope.row)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <add-dialog ref="addDialogRef" @getList="getList"></add-dialog>
+    <stu-dialog ref="stuDialogRef" @getList="getList"></stu-dialog>
+    <batch-pay ref="batchPayRef" @getList="getList"></batch-pay>
+  </div>
 </template>
 
-<style scoped lang="scss">
+<script>
+import {delJobRegist} from '@/api/coalMine/jobRegist'
+import {listPlat, listPlatSelect} from '@/api/onlineEducation/plat'
+import {listCourse} from '@/api/onlineEducation/course'
+import addDialog from './components/addDialog.vue'
+import stuDialog from './components/studentDialog.vue'
+import batchPay from "./components/batchPay.vue"
+import {getExamPage} from "@/api/coalMine/placeManage/exam";
+import {getAreaList} from "@/api/coalMine/placeManage/train";
+import {delNonCoalPay, editPayTypeInfo, getNonCoalPayList} from "@/api/specialOperationsPay/notCoalPay";
+import store from "@/store";
+import {deptTreeSelect} from "@/api/system/user";
 
-</style>
+export default {
+  name: "nCoalPay",
+  dicts: [],
+  components: {addDialog, stuDialog, batchPay},
+  data() {
+    return {
+      isDark: true,
+      loading: false,
+      single: true,
+      multiple: true,
+      showSearch: true,
+      addForm: false,
+      total: 0,
+      areaList: [],
+      deptOptions: [],
+      dateValue: [],
+      payList: [],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        districtCode: '',
+        deptId: '',
+        params: {
+          startTime: '',
+          endTime: ''
+        }
+      },
+      isAhthority: false
+    };
+  },
+  created() {
+    const userInfo = store.getters && store.getters.userInfo
+    this.districtCode = userInfo.district.districtCode
+    if(userInfo.district.districtCode !== '65'){
+      this.queryParams.districtCode = this.districtCode
+    }else{
+      this.queryParams.districtCode = ''
+    }
+    this.getDistrict()
+    this.getList()
+    this.getDeptList()
+    const roles = store.getters && store.getters.roles
+    if (roles.includes('admin') || roles.includes('mkexam') || roles.includes('feimeiexam')  ) {
+      this.isAhthority = true
+    } else {
+      this.isAhthority = false
+    }
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      this.queryParams.params.startTime = this.dateValue[0]?this.dateValue[0]:''
+      this.queryParams.params.endTime = this.dateValue[1]?this.dateValue[1]:''
+      getNonCoalPayList( this.queryParams).then((res) => {
+        if (res.code == 200) {
+          this.payList = res.rows
+          this.total = res.total
+          this.loading = false
+        }
+      })
+    },
+
+    getDeptList() {
+      deptTreeSelect().then(response => {
+        this.deptOptions = response.data
+      })
+    },
+
+    openUrl(url) {
+      window.open(url, '_blank')
+    },
+    //行政区划
+    async getDistrict() {
+      const res = await getAreaList()
+      if (res.code == 200) {
+        this.areaList = res.data
+      }
+    },
+
+    changeDate(val) {
+      console.log('val', val)
+    },
+    handleAdd(type, data) {
+      this.$refs.addDialogRef.openDialog(type, data, this.areaList,this.deptOptions);
+    },
+    handleViewStu(val) {
+      this.$refs.stuDialogRef.openDialog(val.id);
+    },
+    handleBatchPay(val,type) {
+      this.$refs.batchPayRef.openDialog(val,type);
+    },
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList();
+    },
+    resetQuery() {
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        districtCode: '',
+        deptId: '',
+        params: {
+          startTime: '',
+          endTime: ''
+        }
+      }
+      this.dateValue = []
+      this.getList();
+    },
+    updatePayType(row){
+      if(row.totalNum < 2){
+        this.$message({
+          type: 'warning',
+          message: '批量缴费人数不能小于二人'
+        })
+        return
+      }
+      this.$confirm('一旦关闭则无法重新开启个人缴费,必须批量缴完剩余所有学员。是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await editPayTypeInfo({id: row.id,payPersonType: 2})
+        if(res.code == 200){
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          });
+          await this.getList()
+        }else{
+          this.$message({
+            type: 'warning',
+            message: res.msg
+          });
+        }
+      }).catch(() => {
+
+      });
+    },
+
+    handleDelete(row){
+      this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await delNonCoalPay(row.id)
+        if(res.code == 200){
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          });
+          await this.getList()
+        }else{
+          this.$message({
+            type: 'warning',
+            message: res.msg
+          });
+        }
+      }).catch(() => {
+
+      });
+    }
+  }
+};
+</script>

--
Gitblit v1.9.2