马宇豪
2025-02-10 02bd5982028af6e791dd0857f535a41aaf74679e
修改
已修改23个文件
574 ■■■■■ 文件已修改
src/api/specialOperationsPay/coalPay.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/specialOperationsPay/notCoalPay.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cPlaceManage/cExamManage/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/commonMod/examApply/components/examApplyDialog.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/commonMod/examApply/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nPlaceManage/nExamManage/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/coalPay/components/addDialog.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/coalPay/components/batchPay.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/coalPay/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/coalWorkType/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/notCoalPay/components/addDialog.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/notCoalPay/components/batchPay.vue 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/notCoalPay/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/notCoalWorkType/components/detailDialog.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/notCoalWorkType/index.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialOperationsPay/singlePage/index.vue 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/dept/index.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/index.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/specialOperationsPay/coalPay.js
@@ -141,3 +141,19 @@
    params: query
  })
}
export function coalTeamPay(data) {
  return request({
    url: '/pay/coalPay/teamPay',
    method: 'post',
    data: data
  })
}
export function coalPersonPay(query) {
  return request({
    url: '/pay/coalPay/personPay',
    method: 'get',
    params: query
  })
}
src/api/specialOperationsPay/notCoalPay.js
@@ -120,3 +120,19 @@
    params: data
  })
}
export function nonCoalTeamPay(data) {
  return request({
    url: '/pay/nonCoalPay/editPayTypeInfo',
    method: 'post',
    data: data
  })
}
export function nonCoalPersonPay(data) {
  return request({
    url: '/pay/nonCoalPay/sendOrder',
    method: 'post',
    params: data
  })
}
src/layout/components/Navbar.vue
@@ -56,6 +56,7 @@
import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc'
import avatar from '@/assets/logo/logo1.png'
export default {
  components: {
@@ -68,10 +69,14 @@
    RuoYiGit,
    RuoYiDoc
  },
  data(){
    return {
      avatar
    }
  },
  computed: {
    ...mapGetters([
      'sidebar',
      'avatar',
      'device'
    ]),
    setting: {
src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue
@@ -36,16 +36,16 @@
      <el-form-item label="电话:" prop="cphone">
        <el-input v-model.trim="dataForm.cphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="关联培训机构:" prop="institutionId">
        <el-select v-model="dataForm.institutionId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in trainList"
            :key="item.institutionId"
            :label="item.institutionName"
            :value="item.institutionId">
          </el-option>
        </el-select>
      </el-form-item>
<!--      <el-form-item label="关联培训机构:" prop="institutionId">-->
<!--        <el-select v-model="dataForm.institutionId" placeholder="请选择" style="width: 100%;">-->
<!--          <el-option-->
<!--            v-for="item in trainList"-->
<!--            :key="item.institutionId"-->
<!--            :label="item.institutionName"-->
<!--            :value="item.institutionId">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
      <el-form-item label="备注:" prop="remark">
        <el-input type="textarea" v-model.trim="dataForm.remark"/>
      </el-form-item>
@@ -73,7 +73,7 @@
      rules: {
        siteName: [{ required: true, message: '请输入考点名称', trigger: 'blur' }],
        districtId: [{ required: true, message: '请选择地区', trigger: 'blur' }],
        institutionId: [{ required: true, message: '请选择培训机构', trigger: 'blur' }],
        // institutionId: [{ required: true, message: '请选择培训机构', trigger: 'blur' }],
        hphone: [
          {
            pattern: /^1[0-9]{10}$/,
@@ -103,7 +103,7 @@
      this.dialogStatus = type;
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
        this.dataForm.institutionId = data.institutionId.toString()
        // this.dataForm.institutionId = data.institutionId.toString()
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
src/views/coalMine/cPlaceManage/cExamManage/index.vue
@@ -19,7 +19,7 @@
      <el-table-column label="考试点名称" align="center" prop="siteName" />
      <el-table-column label="所属地区" align="center" prop="districtName" />
      <el-table-column label="地址" align="center" prop="address" />
      <el-table-column label="关联培训机构" align="center" prop="institutionName" />
<!--      <el-table-column label="关联培训机构" align="center" prop="institutionName" />-->
      <el-table-column label="负责人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.header}}</div>
src/views/commonMod/examApply/components/examApplyDialog.vue
@@ -148,16 +148,17 @@
  methods: {
    openDialog (val,type) {
      const t = this
      t.reset()
      const roles = store.getters && store.getters.roles
      if(roles.includes('admin')){
        t.isAdmin = true
      }else{
        t.isAdmin = false
      }
      if(roles.includes('company')){
      if(roles.includes('company') || roles.includes('feimeiexam')){
        t.form.isCm = 0
      }
      if(roles.includes('mk')){
      if(roles.includes('mk') || roles.includes('mkexam')){
        t.form.isCm = 1
      }
      const userInfo = store.getters && store.getters.userInfo
@@ -166,7 +167,6 @@
        t.form.institutionId = userInfo.institutions[0].institutionId
      }
      t.open = true
      t.reset()
      if(type == 'add'){
        t.title = '新增申报'
        t.disable = false
src/views/commonMod/examApply/index.vue
@@ -41,19 +41,20 @@
          plain
          size="mini"
          @click="openExamApply({},'add')"
          v-hasPermi="['system:experts:add']"
        >考试计划申请</el-button>
        <el-button
          type="primary"
          plain
          size="mini"
          @click="openExamRegist()"
          v-if="!roles.find(i=>i=='feimeiexam') && !roles.find(i=>i=='mkexam')"
        >考试报名</el-button>
        <el-button
          type="primary"
          plain
          size="mini"
          @click="openGrades()"
          v-if="!roles.find(i=>i=='feimeiexam') && !roles.find(i=>i=='mkexam')"
        >成绩查询</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -174,10 +175,16 @@
        examEndTime: '',
        pageNum: 1,
        pageSize: 10
      }
      },
      roles: []
    };
  },
  created() {
    this.roles = store.getters && store.getters.roles
    console.log(this.roles,'role')
    // if (roles.includes('mk')) {
    //   this.form.isCm = 1
    // }
    this.getList()
    this.getTypeList()
    this.getArea()
src/views/login.vue
@@ -49,7 +49,11 @@
              <img :src="codeUrl" @click="getCode" class="login-code-img"/>
            </div>
          </el-form-item>
          <el-checkbox v-model="loginForm.rememberMe" style="margin:0 0 25px 0;color: #ccc">记住密码</el-checkbox>
          <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 25px">
            <el-checkbox v-model="loginForm.rememberMe" style="color: #ccc">记住密码</el-checkbox>
            <span style="color: yellow;cursor: pointer" @click="toPay">特种作业缴费助手</span>
          </div>
          <div style="display: flex;justify-content: space-between;align-items: center">
            <div style="width: 100%">
              <el-button
@@ -169,6 +173,9 @@
          });
        }
      });
    },
    toPay(){
      this.$router.push("/singlePage");
    }
  }
};
src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue
@@ -36,16 +36,16 @@
      <el-form-item label="电话:" prop="cphone">
        <el-input v-model.trim="dataForm.cphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="关联培训机构:" prop="institutionId">
        <el-select v-model="dataForm.institutionId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in trainList"
            :key="item.institutionId"
            :label="item.institutionName"
            :value="item.institutionId">
          </el-option>
        </el-select>
      </el-form-item>
<!--      <el-form-item label="关联培训机构:" prop="institutionId">-->
<!--        <el-select v-model="dataForm.institutionId" placeholder="请选择" style="width: 100%;">-->
<!--          <el-option-->
<!--            v-for="item in trainList"-->
<!--            :key="item.institutionId"-->
<!--            :label="item.institutionName"-->
<!--            :value="item.institutionId">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
      <el-form-item label="备注:" prop="remark">
        <el-input type="textarea" v-model.trim="dataForm.remark"/>
      </el-form-item>
@@ -73,7 +73,7 @@
      rules: {
        siteName: [{ required: true, message: '请输入考点名称', trigger: 'blur' }],
        districtId: [{ required: true, message: '请选择地区', trigger: 'blur' }],
        institutionId: [{ required: true, message: '请选择培训机构', trigger: 'blur' }],
        // institutionId: [{ required: true, message: '请选择培训机构', trigger: 'blur' }],
        hphone: [
          {
            pattern: /^1[0-9]{10}$/,
@@ -103,7 +103,7 @@
      this.dialogStatus = type;
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
        this.dataForm.institutionId = data.institutionId.toString()
        // this.dataForm.institutionId = data.institutionId.toString()
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
src/views/notCoalMine/nPlaceManage/nExamManage/index.vue
@@ -19,7 +19,7 @@
      <el-table-column label="考试点名称" align="center" prop="siteName" />
      <el-table-column label="所属地区" align="center" prop="districtName" />
      <el-table-column label="地址" align="center" prop="address" />
      <el-table-column label="关联培训机构" align="center" prop="institutionName" />
<!--      <el-table-column label="关联培训机构" align="center" prop="institutionName" />-->
      <el-table-column label="负责人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.header}}</div>
src/views/specialOperationsPay/coalPay/components/addDialog.vue
@@ -181,9 +181,15 @@
      getCoalPayCategory({categoryType: type,pageNum: 1, pageSize: 999}).then((res) => {
        if (res.code == 200) {
          if(type == 1){
            this.dealList = res.rows
            this.dealList = res.rows.map(i=>{
              i.subjectName = i.subjectName + '  ('+ i.amount +'元)'
              return i
            })
          }else{
            this.operationList = res.rows
            this.operationList = res.rows.map(i=>{
              i.subjectName = i.subjectName + '  ('+ i.amount +'元)'
              return i
            })
          }
        }
      })
src/views/specialOperationsPay/coalPay/components/batchPay.vue
@@ -8,16 +8,16 @@
    :before-close="handleClose"
  >
    <el-form ref="dataForm" :model="dataForm"  :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
      <el-form-item label="缴款人类型:" prop="type">
        <el-radio-group v-model="dataForm.type">
          <el-radio label="0">团体</el-radio>
        </el-radio-group>
<!--      <el-form-item label="缴款人类型:" prop="payPersonType">-->
<!--        <el-radio-group v-model="dataForm.payPersonType">-->
<!--          <el-radio :label="2">团体</el-radio>-->
<!--        </el-radio-group>-->
<!--      </el-form-item>-->
      <el-form-item label="缴款单位名称:" prop="payCompanyName">
        <el-input v-model.trim="dataForm.payCompanyName"/>
      </el-form-item>
      <el-form-item label="缴款单位名称:" prop="name">
        <el-input v-model.trim="dataForm.name"/>
      </el-form-item>
      <el-form-item label="缴款单位证件号:" prop="cardNo">
        <el-input v-model.trim="dataForm.cardNo"/>
      <el-form-item label="缴款单位证件号:" prop="payCompanyCard">
        <el-input v-model.trim="dataForm.payCompanyCard"/>
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
@@ -28,8 +28,8 @@
</template>
<script >
import { addPlat, updatePlat } from '@/api/onlineEducation/plat'
import { verifySimplePhone } from '@/utils/validate'
import {coalTeamPay} from "@/api/specialOperationsPay/coalPay";
export default {
  name: 'batchPay',
@@ -40,10 +40,11 @@
      dialogVisible: false,
      dialogStatus: '',
      rules: {
        name: [{ required: true, message: '请输入单位名称', trigger: 'blur' }],
        cardNo: [{ required: true, message: '请输入单位证件号', trigger: 'blur' }]
        payCompanyName: [{ required: true, message: '请输入缴费单位名称', trigger: 'blur' }],
        payCompanyCard: [{ required: true, message: '请输入缴费单位证件号', trigger: 'blur' }]
      },
      dataForm: {},
      dataForm: {
      },
    }
  },
@@ -51,12 +52,14 @@
  },
  methods: {
    openDialog (type, data) {
    openDialog (data,type) {
      this.resetDataForm();
      this.dialogVisible = true;
      this.dialogStatus = type;
      this.dialogVisible = true
      this.dialogStatus = type
      this.dataForm.coalPayId = data.id
      this.dataForm.payPersonType = 2
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
        this.dataForm = data
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
@@ -70,21 +73,20 @@
      this.$refs["dataForm"].validate( async valid => {
        if (valid) {
          if(this.dialogStatus == 'add'){
            console.log("this.dataForm",this.dataForm)
            // const res = await addPlat(this.dataForm);
            // if(res.code == 200) {
            //   this.$emit("getList");
            //   this.dialogVisible = false;
            //   this.$message({
            //     type:'success',
            //     message: '新增成功'
            //   })
            // }else{
            //   this.$message({
            //     type:'warning',
            //     message: res.msg
            //   })
            // }
            const res = await coalTeamPay(this.dataForm);
            if(res.code == 200) {
              this.$emit("getList");
              this.dialogVisible = false;
              this.$message({
                type:'success',
                message: '提交成功'
              })
            }else{
              this.$message({
                type:'warning',
                message: res.msg
              })
            }
          }else {
            // const res = await updatePlat(this.dataForm);
            // if(res.code == 200) {
src/views/specialOperationsPay/coalPay/index.vue
@@ -63,7 +63,7 @@
      <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" size="mini" type="text" style="color: #1890ff" @click="handleBatchPay(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>
@@ -168,8 +168,8 @@
    handleViewStu(val) {
      this.$refs.stuDialogRef.openDialog(val)
    },
    handleBatchPay(val) {
      this.$refs.batchPayRef.openDialog(val);
    handleBatchPay(val,type) {
      this.$refs.batchPayRef.openDialog(val,type);
    },
    handleQuery() {
      this.getList();
src/views/specialOperationsPay/coalWorkType/index.vue
@@ -11,9 +11,7 @@
      <el-button
        type="primary"
        plain
        icon="el-icon-plus"
        @click="openTicket()"
        v-hasPermi="['system:experts:add']"
      >开票信息维护</el-button>
      <el-radio-group v-model="queryParams.categoryType" style="margin-left: 10px;" @change="changeStatus">
        <el-radio-button>全部</el-radio-button>
src/views/specialOperationsPay/notCoalPay/components/addDialog.vue
@@ -180,9 +180,15 @@
      getNotCoalPayCategory({categoryType: type,districtCode: this.dataForm.districtCode?this.dataForm.districtCode:''}).then((res) => {
        if (res.code == 200) {
          if(type == 1){
            this.dealList = res.rows
            this.dealList = res.rows.map(i=>{
              i.subjectName = i.subjectName + '  ('+ i.amount +'元)'
              return i
            })
          }else{
            this.operationList = res.rows
            this.operationList = res.rows.map(i=>{
              i.subjectName = i.subjectName + '  ('+ i.amount +'元)'
              return i
            })
          }
        }
      })
src/views/specialOperationsPay/notCoalPay/components/batchPay.vue
@@ -8,16 +8,16 @@
    :before-close="handleClose"
  >
    <el-form ref="dataForm" :model="dataForm"  :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
      <el-form-item label="缴款人类型:" prop="type">
        <el-radio-group v-model="dataForm.type">
          <el-radio label="0">团体</el-radio>
        </el-radio-group>
      <!--      <el-form-item label="缴款人类型:" prop="payPersonType">-->
      <!--        <el-radio-group v-model="dataForm.payPersonType">-->
      <!--          <el-radio :label="2">团体</el-radio>-->
      <!--        </el-radio-group>-->
      <!--      </el-form-item>-->
      <el-form-item label="缴款单位名称:" prop="payCompanyName">
        <el-input v-model.trim="dataForm.payCompanyName"/>
      </el-form-item>
      <el-form-item label="缴款单位名称:" prop="name">
        <el-input v-model.trim="dataForm.name"/>
      </el-form-item>
      <el-form-item label="缴款单位证件号:" prop="cardNo">
        <el-input v-model.trim="dataForm.cardNo"/>
      <el-form-item label="缴款单位证件号:" prop="payCompanyCard">
        <el-input v-model.trim="dataForm.payCompanyCard"/>
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
@@ -28,8 +28,9 @@
</template>
<script >
import { addPlat, updatePlat } from '@/api/onlineEducation/plat'
import { verifySimplePhone } from '@/utils/validate'
import {coalTeamPay} from "@/api/specialOperationsPay/coalPay";
import {nonCoalTeamPay} from "@/api/specialOperationsPay/notCoalPay";
export default {
  name: 'batchPay',
@@ -40,10 +41,11 @@
      dialogVisible: false,
      dialogStatus: '',
      rules: {
        name: [{ required: true, message: '请输入单位名称', trigger: 'blur' }],
        cardNo: [{ required: true, message: '请输入单位证件号', trigger: 'blur' }]
        payCompanyName: [{ required: true, message: '请输入缴费单位名称', trigger: 'blur' }],
        payCompanyCard: [{ required: true, message: '请输入缴费单位证件号', trigger: 'blur' }]
      },
      dataForm: {},
      dataForm: {
      },
    }
  },
@@ -51,12 +53,14 @@
  },
  methods: {
    openDialog (type, data) {
    openDialog (data,type) {
      this.resetDataForm();
      this.dialogVisible = true;
      this.dialogStatus = type;
      this.dialogVisible = true
      this.dialogStatus = type
      this.dataForm.id = data.id
      this.dataForm.payPersonType = 2
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
        this.dataForm = data
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
@@ -70,21 +74,20 @@
      this.$refs["dataForm"].validate( async valid => {
        if (valid) {
          if(this.dialogStatus == 'add'){
            console.log("this.dataForm",this.dataForm)
            // const res = await addPlat(this.dataForm);
            // if(res.code == 200) {
            //   this.$emit("getList");
            //   this.dialogVisible = false;
            //   this.$message({
            //     type:'success',
            //     message: '新增成功'
            //   })
            // }else{
            //   this.$message({
            //     type:'warning',
            //     message: res.msg
            //   })
            // }
            const res = await nonCoalTeamPay(this.dataForm);
            if(res.code == 200) {
              this.$emit("getList");
              this.dialogVisible = false;
              this.$message({
                type:'success',
                message: '提交成功'
              })
            }else{
              this.$message({
                type:'warning',
                message: res.msg
              })
            }
          }else {
            // const res = await updatePlat(this.dataForm);
            // if(res.code == 200) {
src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue
@@ -3,7 +3,9 @@
    <el-dialog :visible.sync="dialogVisible" width="800px" append-to-body class="stu">
      <div class="infoTitle">
        <div>批次名称:<span>{{stuInfo.batchName}}</span></div>
        <div style="margin-left: 35px">所属区划:<span>{{stuInfo.districtName}}</span></div>
      </div>
      <div class="infoTitle">
        <div>所属区划:<span>{{stuInfo.districtName}}</span></div>
      </div>
      <div class="infoTitle">
        <div>组织架构:<span>{{stuInfo.deptName}}</span></div>
src/views/specialOperationsPay/notCoalPay/index.vue
@@ -3,13 +3,13 @@
    <div>
      <el-button
        size="medium"
        style="margin-bottom: 10px;background-color: #0FC7F0;color: white"
        style="margin-right: 10px;background-color: #0FC7F0;color: white"
        @click="handleAdd('add',{})"
        v-if="isAhthority"
      >录入批次
      </el-button>
      <el-date-picker
        style="margin-left: 30px;width: 300px"
        style="width: 300px"
        size="small"
        v-model="dateValue"
        @change="changeDate"
@@ -20,14 +20,14 @@
        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.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"-->
@@ -37,7 +37,7 @@
<!--        </el-option>-->
<!--      </el-select>-->
<!--      <treeselect v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择组织架构" />-->
      <el-cascader v-model="queryParams.deptId" size="small" :options="deptOptions" placeholder="组织架构" :props="{ expandTrigger: 'hover',checkStrictly: true,emitPath: false,value: 'id' }"></el-cascader>
      <el-cascader v-model="queryParams.deptId" size="small" style="margin-left: 10px" :options="deptOptions" placeholder="组织架构" :props="{ expandTrigger: 'hover',checkStrictly: true,emitPath: false,value: 'id' }"></el-cascader>
      <el-button
        size="small"
        type="primary"
@@ -58,7 +58,7 @@
      <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="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?'复训理论':''}}
@@ -80,7 +80,7 @@
      <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" size="mini" type="text" style="color: #1890ff" @click="handleBatchPay(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>
@@ -142,6 +142,13 @@
    };
  },
  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()
@@ -193,8 +200,8 @@
    handleViewStu(val) {
      this.$refs.stuDialogRef.openDialog(val.id);
    },
    handleBatchPay(val) {
      this.$refs.batchPayRef.openDialog(val);
    handleBatchPay(val,type) {
      this.$refs.batchPayRef.openDialog(val,type);
    },
    handleQuery() {
      this.getList();
src/views/specialOperationsPay/notCoalWorkType/components/detailDialog.vue
@@ -9,7 +9,7 @@
  >
    <el-form ref="dataForm" :model="dataForm"  :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
      <el-form-item label="所属区划:" prop="districtCode">
        <el-select v-model="dataForm.districtCode" style="margin-left: 15px" placeholder="行政区划">
        <el-select v-model="dataForm.districtCode" style="margin-left: 15px" :disabled="!isShow" placeholder="行政区划">
          <el-option
            v-for="item in areaList"
            :key="item.id"
@@ -27,12 +27,12 @@
      <el-form-item label="科目名称:" prop="subjectName">
        <el-input v-model.trim="dataForm.subjectName"/>
      </el-form-item>
      <el-form-item label="资格类型:" prop="operateTypeId">
      <el-form-item label="资格类型:">
        <el-cascader
          v-model="dataForm.operateTypeId"
          :options="typeList"
          style="width: 100%"
          :props="{ expandTrigger: 'hover', value: 'id',label: 'name',emitPath: false}"></el-cascader>
          :props="{ expandTrigger: 'hover', value: 'id',label: 'name',emitPath: false, checkStrictly: true}"></el-cascader>
      </el-form-item>
      <el-form-item label="金额:" prop="amount">
        <el-input v-model.trim.number="dataForm.amount">
@@ -71,6 +71,7 @@
import {getAreaList} from "@/api/coalMine/placeManage/train";
import {getOperatePage} from "@/api/coalMine/operateType";
import {addNotCoalPayCategory, getNotCoalPayCategory, updateNotCoalPayCategory} from "@/api/specialOperationsPay/notCoalPay";
import store from "@/store";
export default {
  name: 'detailDialog',
@@ -86,7 +87,6 @@
        districtCode: [{ required: true, message: '请选择所属区划', trigger: 'blur' }],
        categoryType: [{ required: true, message: '请选择类别', trigger: 'blur' }],
        subjectName: [{ required: true, message: '请输入科目名称', trigger: 'blur' }],
        operateTypeId: [{ required: true, message: '请选择资格类型', trigger: 'blur' }],
        amount: [{ required: true, message: '请输入金额', trigger: 'blur' }],
        businessCode: [{ required: true, message: '请输入业务代码', trigger: 'blur' }],
        companyCode: [{ required: true, message: '请输入单位编码', trigger: 'blur' }],
@@ -94,18 +94,26 @@
        reviewer: [{ required: true, message: '请输入复核人', trigger: 'blur' }],
        invoicingCompanyCode: [{ required: true, message: '请输入开票单位社会信用代码', trigger: 'blur' }]
      },
      dataForm: {},
      dataForm: {
      },
      isShow: false
    }
  },
  created() {
  },
  methods: {
    openDialog (type, data) {
      this.getArea()
      this.getTypeList()
    openDialog (type, data, areaList,code) {
      this.resetDataForm()
      this.areaList = areaList
      if(code !== '65'){
        this.dataForm.districtCode = code
        this.isShow = false
      }else{
        this.isShow = true
      }
      this.getTypeList()
      this.dialogVisible = true
      this.title = type == 'add'?'新增':'编辑'
      if(this.title == '编辑') {
@@ -116,12 +124,12 @@
        this.$refs['dataForm'].clearValidate()
      })
    },
    async getArea() {
      const res = await getAreaList();
      if (res.code == 200) {
        this.areaList = res.data
      }
    },
    // async getArea() {
    //   const res = await getAreaList();
    //   if (res.code == 200) {
    //     this.areaList = res.data
    //   }
    // },
    async getTypeList() {
      this.loading = true;
      const res = await getOperatePage({name: ''})
src/views/specialOperationsPay/notCoalWorkType/index.vue
@@ -1,19 +1,26 @@
<template>
  <div class="app-container">
    <el-row :gutter="10" class="mb8">
    <el-button
      type="primary"
      plain
      style="margin-right: 10px"
      icon="el-icon-plus"
      @click="handleView('add',{})"
    >新增
    </el-button>
      <el-radio-group v-model="queryParams.categoryType" @change="changeTimeStatus">
        <el-radio-button>全部</el-radio-button>
        <el-radio-button :label="1">理论</el-radio-button>
        <el-radio-button :label="2">实操</el-radio-button>
      </el-radio-group>
      <el-select v-model="queryParams.districtCode" style="margin-left: 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.districtCode" style="margin-left: 10px" placeholder="行政区划">-->
<!--        <el-option-->
<!--          v-for="item in areaList"-->
<!--          :key="item.id"-->
<!--          :label="item.name"-->
<!--          :value="item.code">-->
<!--        </el-option>-->
<!--      </el-select>-->
      <el-button
        size="small"
        type="primary"
@@ -28,25 +35,12 @@
        @click="resetQuery()"
      >重置
      </el-button>
    </el-row>
    <el-row :gutter="10" class="mb8">
      <el-button
        type="primary"
        plain
        icon="el-icon-plus"
        size="mini"
        @click="handleView('add',{})"
        v-hasPermi="['system:experts:add']"
      >新增
      </el-button>
    </el-row>
    <el-table
      :data="cateGoryList"
      style="width: 100%;margin-bottom: 20px;"
      row-key="id"
      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
      <el-table-column label="地州" align="center" prop="districtName"/>
      <el-table-column label="地州" align="center" prop="districtName" width="260"/>
      <el-table-column label="类别" align="center" prop="categoryType">
        <template #default="scope">
          {{scope.row.categoryType == 1?'理论':scope.row.categoryType == 2?'实操':''}}
@@ -61,7 +55,7 @@
      <el-table-column label="复核人" align="center" prop="reviewer"/>
      <el-table-column label="开票单位社会信用代码" align="center" prop="invoicingCompanyCode"/>
      <el-table-column label="描述" align="center" prop="describe"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
        <template #default="scope">
          <el-button
            v-if="scope.row.subjectName"
@@ -101,6 +95,7 @@
import Cookies from 'js-cookie'
import {getAreaList} from "@/api/coalMine/placeManage/train";
import {delTeacher} from "@/api/coalMine/teacher";
import store from "@/store";
export default {
  name: "coalWorkType",
@@ -121,9 +116,17 @@
        categoryType: null,
        districtCode: ''
      },
      districtCode: ''
    };
  },
  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.getList()
    this.getArea()
  },
@@ -156,11 +159,15 @@
                }
                delete i.children
              }
              if(i.children){
                for(let j of i.children){
                  j.districtName = ''
                }
              }
              return i
            })
          }
          this.cateGoryList = JSON.parse(JSON.stringify(totalList))
          console.log(this.cateGoryList,'666')
          this.total = res.total
          this.loading = false;
        }
@@ -169,7 +176,8 @@
    async getArea() {
      const res = await getAreaList();
      if (res.code == 200) {
        this.areaList = res.data;
        this.areaList = res.data.filter(i=>i.code !== '65')
        console.log(this.areaList,'list')
      }
    },
    changeTimeStatus(val) {
@@ -190,7 +198,7 @@
      this.getList()
    },
    handleView(type,data) {
      this.$refs.detailDialogRef.openDialog(type,data);
      this.$refs.detailDialogRef.openDialog(type,data,this.areaList,this.districtCode);
    },
    handleDelete(row){
      this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
src/views/specialOperationsPay/singlePage/index.vue
@@ -102,6 +102,12 @@
      :modal-append-to-body="false"
      fullscreen
      class="myCustomDialog"
      v-loading="payLoading"
      element-loading-spinner="el-icon-loading"
      element-loading-background="rgba(255, 255, 255, 0.8)"
      element-loading-text="等待财政接口加解密返回结果,正在生成支付订单"
      element-loading-customClass="payLoading"
      @close="closePay"
    >
      <div class="topInfo">
        <el-row style="margin-bottom: 0">
@@ -164,8 +170,8 @@
<script >
import {verifyIdCard, verifySimplePhone} from "@/utils/validate";
import {nonCoalSelectH5} from "@/api/specialOperationsPay/notCoalPay";
import {findStudent} from "@/api/specialOperationsPay/coalPay";
import {nonCoalPersonPay, nonCoalSelectH5} from "@/api/specialOperationsPay/notCoalPay";
import {coalPersonPay, findStudent} from "@/api/specialOperationsPay/coalPay";
import noData from '@/assets/images/noData.png'
export default {
@@ -211,7 +217,8 @@
      hasInfo: true,
      detailVisible: false,
      detailInfo: {},
      noData
      noData,
      payLoading: false
    }
  },
  created() {
@@ -268,10 +275,46 @@
    },
    goPay(item){
      this.detailInfo = item
      this.detailVisible = true
      if((this.dataForm.type == 1 && this.detailInfo.payPersonType == 2) || (this.dataForm.type == 2 &&this.detailInfo.payType == 2)){
        this.$message({
          type:'warning',
          message: '团体缴费类型无法生成缴费订单'
        })
      }else{
        this.detailVisible = true
      }
    },
    payBill(){
      console.log('立即付款')
    async payBill(){
      this.payLoading = true
      if(this.dataForm.type == 1){
        const query = {
          id: this.detailInfo.nonCoalStudentId,
          payType: 1
        }
        const res = await nonCoalPersonPay(query)
        if(res.code == 200) {
          this.payLoading = false
        }else{
          this.$message({
            type:'warning',
            message: res.msg
          })
        }
      }else{
        const query = {
          coalPayId: this.detailInfo.coalPays.id,
          studentId: this.detailInfo.id
        }
        const res = await coalPersonPay(query)
        if(res.code == 200) {
          this.payLoading = false
        }else{
          this.$message({
            type:'warning',
            message: res.msg
          })
        }
      }
    },
    resetDataForm() {
      this.dataForm = {
@@ -280,6 +323,10 @@
    handleClose(){
      this.info = {}
      this.listVisible = false
    },
    closePay(){
      this.detailVisible = false
      this.payLoading = false
    }
  }
}
@@ -289,6 +336,8 @@
  .container{
    width: 100%;
    height: 100%;
    max-width: 960px;
    margin: 0 auto;
  }
  .loginTop{
@@ -355,6 +404,26 @@
</style>
<style lang="scss">
  .myCustomDialog{
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    .el-loading-mask{
      width: 60%;
      height: 20%;
      margin: 30vh auto;
      border-radius: 20px;
      padding: 10px;
      .el-loading-spinner{
        width: calc(100% - 20px);
        top: 40%;
        .el-icon-loading,.el-loading-text{
          color: #000;
        }
        .el-icon-loading{
          font-size: 24px;
        }
      }
    }
    .el-dialog .el-dialog__header{
      height: 60px;
      padding: 0;
src/views/system/dept/index.vue
@@ -56,9 +56,9 @@
      :default-expand-all="isExpandAll"
      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
    >
      <el-table-column prop="deptName" label="组织架构名称" width="260"></el-table-column>
      <el-table-column prop="deptName" label="组织架构名称"></el-table-column>
      <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
      <el-table-column prop="status" label="状态" width="100">
      <el-table-column prop="status" label="状态" width="200">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
        </template>
@@ -68,7 +68,7 @@
          <span>{{ parseTime(scope.row.createTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
      <el-table-column label="操作" align="center" class-name="small-padding" width="200">
        <template slot-scope="scope">
          <el-button
            size="mini"
@@ -103,7 +103,7 @@
        <el-row>
          <el-col :span="24" v-if="form.parentId !== 0">
            <el-form-item label="上级组织架构" prop="parentId">
              <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级组织架构" />
              <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级组织架构" @input="getDistrict"/>
            </el-form-item>
          </el-col>
        </el-row>
@@ -319,7 +319,7 @@
      this.title = "添加组织架构";
      listDept().then(response => {
        this.deptOptions = this.handleTree(response.data, "deptId");
      });
      })
    },
    /** 展开/折叠操作 */
    toggleExpandAll() {
@@ -374,6 +374,24 @@
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    getDistrict(val){
      const t = this
      t.form.districtCode = t.findCodeById(t.deptOptions,val)
    },
    findCodeById(data,id){
      for(let node of data){
        if(node.deptId == id){
          return node.districtCode
        }
        if(node.children){
          const findNode = this.findCodeById(node.children,id)
          if(findNode){
            return findNode
          }
        }
      }
      return null
    }
  }
};
src/views/system/user/index.vue
@@ -283,19 +283,24 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12" v-if="showInstitutuion">
            <el-form-item label="所属机构" prop="institutionIds">
              <el-select v-model="form.institutionIds" multiple placeholder="请选择所属机构" style="width: 100%">
                <el-option
                  v-for="item in sectionOptions"
                  :key="item.institutionId"
                  :label="item.institutionName"
                  :value="item.institutionId"
                  :disabled="item.status == 1"
                ></el-option>
              </el-select>
          <el-col :span="12">
            <el-form-item label="组织架构" prop="deptId">
              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择组织架构" />
            </el-form-item>
          </el-col>
<!--          <el-col :span="12" v-if="showInstitutuion">-->
<!--            <el-form-item label="所属机构" prop="institutionIds">-->
<!--              <el-select v-model="form.institutionIds" multiple placeholder="请选择所属机构" style="width: 100%">-->
<!--                <el-option-->
<!--                  v-for="item in sectionOptions"-->
<!--                  :key="item.institutionId"-->
<!--                  :label="item.institutionName"-->
<!--                  :value="item.institutionId"-->
<!--                  :disabled="item.status == 1"-->
<!--                ></el-option>-->
<!--              </el-select>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
        </el-row>
        <el-row :gutter="20">
<!--          <el-col :span="12">-->
@@ -310,11 +315,6 @@
<!--              </el-select>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
          <el-col :span="12" v-if="showDeptList">
            <el-form-item label="组织架构" prop="deptId">
              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择组织架构" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="状态">
              <el-radio-group v-model="form.status" style="width: 100%;">
@@ -472,9 +472,9 @@
        roleIds: [
          { required: true, message: "角色不能为空", trigger: "blur" }
        ],
        institutionIds: [
          { required: true, message: "所属机构不能为空", trigger: "blur" }
        ],
        // institutionIds: [
        //   { required: true, message: "所属机构不能为空", trigger: "blur" }
        // ],
        deptId: [
          { required: true, message: "组织架构不能为空", trigger: "blur" }
        ],
@@ -681,11 +681,11 @@
        this.open = true;
        this.title = "修改用户";
        this.form.password = "";
        if(response.roleIds.indexOf(100)>-1 || response.roleIds.indexOf(102)>-1){
          this.getSectionList()
          this.showInstitutuion = true
          this.form.institutionIds = response.data.institutions.map(i=>i.institutionId.toString())
        }
        // if(response.roleIds.indexOf(100)>-1 || response.roleIds.indexOf(102)>-1){
        //   this.getSectionList()
        //   this.showInstitutuion = true
        //   this.form.institutionIds = response.data.institutions.map(i=>i.institutionId.toString())
        // }
        if(response.roleIds.indexOf(101)>-1){
          this.showDeptList = true
        }