zhouwenxuan
2023-09-27 50e18f9d144e78d0f47247f46b5d712745e0035d
场所管理
已修改8个文件
已添加2个文件
958 ■■■■ 文件已修改
src/api/coalMine/placeManage/exam.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/coalMine/placeManage/train.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cPlaceManage/cExamManage/index.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/coalMine/cPlaceManage/cTrainManage/index.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nPlaceManage/nExamManage/index.vue 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nPlaceManage/nTrainManage/index.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/coalMine/placeManage/exam.js
对比新文件
@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 数据分页
export function getExamPage(query) {
  return request({
    url: '/exam/site/page/list',
    method: 'get',
    params: query
  })
}
// 数据不分页
export function getTrainList(query) {
  return request({
    url: '/training/institution/select',
    method: 'get',
    params: query
  })
}
// 新增数据
export function addExam(data) {
  return request({
    url: '/exam/site/add',
    method: 'post',
    data: data
  })
}
// 修改数据
export function updateExam(data) {
  return request({
    url: '/exam/site/mod',
    method: 'post',
    data: data
  })
}
// 删除数据
export function delExam(institutionIds) {
  return request({
    url: '/exam/site/del/batch/' + institutionIds,
    method: 'delete'
  })
}
//区划信息
export function getAreaList() {
  return request({
    url: '/system/district/list',
    method: 'get'
  })
}
src/api/coalMine/placeManage/train.js
对比新文件
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 数据分页
export function getTrainPage(query) {
  return request({
    url: '/training/institution/page/list',
    method: 'get',
    params: query
  })
}
// 新增数据
export function addTrain(data) {
  return request({
    url: '/training/institution/add',
    method: 'post',
    data: data
  })
}
// 修改数据
export function updateTrain(data) {
  return request({
    url: '/training/institution/mod',
    method: 'post',
    data: data
  })
}
// 删除数据
export function delTrain(institutionIds) {
  return request({
    url: '/training/institution/del/batch/' + institutionIds,
    method: 'delete'
  })
}
//区划信息
export function getAreaList() {
  return request({
    url: '/system/district/list',
    method: 'get'
  })
}
src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue
@@ -8,41 +8,41 @@
    :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="idCard">
        <el-input v-model.trim="dataForm.idCard"/>
      <el-form-item label="考试点名称:" prop="siteName">
        <el-input v-model.trim="dataForm.siteName"/>
      </el-form-item>
      <el-form-item label="所属地区:" prop="iCCard">
        <el-select v-model="value" placeholder="请选择" style="width: 100%;">
      <el-form-item label="所属地区:" prop="districtId">
        <el-select v-model="dataForm.districtId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
            v-for="item in areaList"
            :key="item.id"
            :label="item.name"
            :value="item.id">
          </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 label="地址:" prop="address">
        <el-input type="textarea" v-model.trim="dataForm.address"/>
      </el-form-item>
      <el-form-item label="负责人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="负责人:" prop="header">
        <el-input v-model.trim="dataForm.header"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="hphone">
        <el-input v-model.trim="dataForm.hphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="联系人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="联系人:" prop="contact">
        <el-input v-model.trim="dataForm.contact"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="cphone">
        <el-input v-model.trim="dataForm.cphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="关联培训机构:" prop="iCCard">
        <el-select v-model="value" placeholder="请选择" style="width: 100%;">
      <el-form-item label="关联培训机构:" prop="institutionId">
        <el-select v-model="dataForm.institutionId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
            v-for="item in trainList"
            :key="item.institutionId"
            :label="item.institutionName"
            :value="item.institutionId">
          </el-option>
        </el-select>
      </el-form-item>
@@ -58,39 +58,127 @@
</template>
<script >
import {addExam, updateExam, getAreaList, getTrainList} from "@/api/coalMine/placeManage/exam";
export default {
  name: 'addUser',
  components: {
  },
  data() {
    return {
      areaList: [],
      trainList: [],
      dialogVisible: false,
      dialogStatus: '',
      rules: {
        name: [{ required: true, message: '身份证号', trigger: 'blur' }],
        siteName: [{ required: true, message: '请输入考点名称', trigger: 'blur' }],
        districtId: [{ required: true, message: '请选择地区', trigger: 'blur' }],
        institutionId: [{ required: true, message: '请选择培训机构', trigger: 'blur' }],
        hphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
        cphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
      },
      dataForm: {}
    }
  },
  created() {
    this.getArea();
    this.getTrain();
  },
  methods: {
    openDialog (type, data) {
      this.resetDataForm();
      this.dialogVisible = true;
      this.dialogStatus = type;
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
        this.dataForm.institutionId = data.institutionId.toString()
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
      })
    },
    async getTrain() {
      const param = {
        isCm: 1
      }
      const res = await getTrainList(param);
      if(res.code == 200) {
        this.trainList = res.data;
      }else{
        this.$message({
          type:'warning',
          message: res.msg
        })
      }
    },
    async getArea() {
      const res = await getAreaList();
      if(res.code == 200) {
        this.areaList = res.data;
      }else{
        this.$message({
          type:'warning',
          message: res.msg
        })
      }
    },
    handleClose() {
      this.dialogVisible = false;
      this.$emit("getList");
    },
    onSubmit() {
      this.$refs["dataForm"].validate( async valid => {
        if (valid) {
          if(this.dialogStatus == 'add'){
            this.dataForm.isCm = 1;
            console.log("this.dataForm",this.dataForm)
            const res = await addExam(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 {
            this.dataForm.isCm = 1;
            console.log("this.dataForm",this.dataForm)
            const res = await updateExam(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
              })
            }
          }
        }
      })
    },
    resetDataForm() {
      this.dataForm = {
src/views/coalMine/cPlaceManage/cExamManage/index.vue
@@ -5,7 +5,7 @@
        <el-button
          type="primary"
          plain
          icon="el-icon-refresh"
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd('add')"
          v-hasPermi="['system:experts:add']"
@@ -14,22 +14,32 @@
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="expertList">
    <el-table v-loading="loading" :data="examList">
      <el-table-column type="index" label="序号" width="55" align="center" />
      <el-table-column label="培训机构名称" align="center" prop="name" />
      <el-table-column label="所属地区" align="center" prop="name" />
      <el-table-column label="地址" align="center" prop="name" />
      <el-table-column label="关联培训机构" align="center" prop="name" />
      <el-table-column label="负责人及电话" align="center" prop="phone"/>
      <el-table-column label="联系人及电话" align="center" prop="phone"/>
      <el-table-column label="说明(备注)" align="center" prop="phone"/>
      <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="phone">
        <template #default="scope">
          <div>{{scope.row.header}}</div>
          <div>{{scope.row.hphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="联系人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.contact}}</div>
          <div>{{scope.row.cphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="说明(备注)" align="center" prop="remark"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            @click="handleAdd('edit',scope.row)"
          >编辑</el-button>
          <el-button
            size="mini"
@@ -54,13 +64,13 @@
<script>
import addDialog from "@/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue";
import {delExam, getExamPage} from "@/api/coalMine/placeManage/exam";
export default {
  name: "nPeopleManage",
  dicts: [],
  components: { addDialog},
  data() {
    return {
      addDialogRef: '',
      loading: false,
      single: true,
      multiple: true,
@@ -68,35 +78,57 @@
      addForm: false,
      total: 0,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      examList: [],
      queryParams: {
        pageIndex: 1,
        pageSize: 10
      },
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      }
    };
  },
  created() {
    this.getList()
  },
  methods: {
    getList(){
    },
    handleChange(){
    },
    handleQuery(){
    },
    resetQuery(){
    async getList() {
      this.loading = true;
      const param = {
        isCm: 1,
        pageNum: this.queryParams.pageIndex,
        pageSize: this.queryParams.pageSize
      }
      const res = await getExamPage(param);
      console.log("res",res)
      if(res.code == 200) {
        this.examList = res.rows;
        this.total = res.total
      }else {
        this.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      this.loading = false;
    },
    handleAdd(type, data){
      this.$refs.addDialogRef.openDialog(type, data);
    },
    handleDelete(val) {
      this.$confirm('删除此条信息,是否继续', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delExam( val.siteId).then((res) => {
          if (res.code == 200) {
            this.$message({
              type:'success',
              message: '删除成功'
            })
            this.getList()
          }
        })
      })
    }
  }
};
src/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue
@@ -8,33 +8,33 @@
    :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="idCard">
        <el-input v-model.trim="dataForm.idCard"/>
      <el-form-item label="机构名称:" prop="institutionName">
        <el-input v-model.trim="dataForm.institutionName"/>
      </el-form-item>
      <el-form-item label="所属地区:" prop="iCCard">
        <el-select v-model="value" placeholder="请选择" style="width: 100%;">
      <el-form-item label="所属地区:" prop="districtId">
        <el-select v-model="dataForm.districtId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
            v-for="item in areaList"
            :key="item.id"
            :label="item.name"
            :value="item.id">
          </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 label="地址:" prop="address">
        <el-input type="textarea" v-model.trim="dataForm.address"/>
      </el-form-item>
      <el-form-item label="负责人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="负责人:" prop="header">
        <el-input v-model.trim="dataForm.header"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="hphone" >
        <el-input v-model.trim="dataForm.hphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="联系人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="联系人:" prop="contact">
        <el-input v-model.trim="dataForm.contact"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="cphone" >
        <el-input v-model.trim="dataForm.cphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="备注:" prop="remark">
        <el-input type="textarea" v-model.trim="dataForm.remark"/>
@@ -48,6 +48,8 @@
</template>
<script >
import {addTrain, getAreaList, updateTrain} from "@/api/coalMine/placeManage/train";
export default {
  name: 'addUser',
  components: {
@@ -56,13 +58,30 @@
    return {
      dialogVisible: false,
      dialogStatus: '',
      areaList: [],
      rules: {
        name: [{ required: true, message: '身份证号', trigger: 'blur' }],
        institutionName: [{ required: true, message: '请输入机构名称', trigger: 'blur' }],
        districtId: [{ required: true, message: '请选择地区', trigger: 'blur' }],
        hphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
        cphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
      },
      dataForm: {}
    }
  },
  created() {
    this.getArea();
  },
  methods: {
@@ -70,21 +89,66 @@
      this.resetDataForm();
      this.dialogVisible = true;
      this.dialogStatus = type;
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
      })
    },
    async getArea() {
      const res = await getAreaList();
      if(res.code == 200) {
        this.areaList = res.data;
      }
    },
    handleClose() {
      this.dialogVisible = false;
      this.$emit("getList");
    },
    onSubmit() {
      this.$refs["dataForm"].validate( async valid => {
        if(valid){
          if(this.dialogStatus == 'add'){
            this.dataForm.isCm = 1;
            console.log("this.dataForm",this.dataForm)
            const res = await addTrain(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 {
            this.dataForm.isCm = 1;
            console.log("this.dataForm",this.dataForm)
            const res = await updateTrain(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
              })
            }
          }
        }
      })
    },
    resetDataForm() {
      this.dataForm = {
      }
      this.dataForm = {}
    },
  }
}
src/views/coalMine/cPlaceManage/cTrainManage/index.vue
@@ -5,7 +5,7 @@
        <el-button
          type="primary"
          plain
          icon="el-icon-refresh"
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd('add')"
          v-hasPermi="['system:experts:add']"
@@ -14,21 +14,31 @@
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="expertList">
    <el-table v-loading="loading" :data="trainList">
      <el-table-column type="index" label="序号" width="55" align="center" />
      <el-table-column label="考试点名称" align="center" prop="name" />
      <el-table-column label="所属地区" align="center" prop="name" />
      <el-table-column label="地址" align="center" prop="name" />
      <el-table-column label="负责人及电话" align="center" prop="phone"/>
      <el-table-column label="联系人及电话" align="center" prop="phone"/>
      <el-table-column label="说明(备注)" align="center" prop="phone"/>
      <el-table-column label="培训机构名称" align="center" prop="institutionName" />
      <el-table-column label="所属地区" align="center" prop="districtName" />
      <el-table-column label="地址" align="center" prop="address" />
      <el-table-column label="负责人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.header}}</div>
          <div>{{scope.row.hphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="联系人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.contact}}</div>
          <div>{{scope.row.cphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="说明(备注)" align="center" prop="remark"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            @click="handleAdd('edit',scope.row)"
          >编辑</el-button>
          <el-button
            size="mini"
@@ -52,6 +62,7 @@
</template>
<script>
import { getTrainPage, delTrain } from "@/api/coalMine/placeManage/train";
import addDialog from "@/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue";
export default {
  name: "nPeopleManage",
@@ -59,43 +70,63 @@
  components: { addDialog },
  data() {
    return {
      addDialogRef: '',
      loading: false,
      single: true,
      multiple: true,
      showSearch: true,
      addForm: false,
      total: 0,
      total: 1,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      trainList: [],
      queryParams: {
        pageIndex: 1,
        pageSize: 10
      },
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    getList(){
    },
    handleChange(){
    },
    handleQuery(){
    },
    resetQuery(){
    async getList() {
      this.loading = true;
      const param = {
        isCm: 1,
        pageNum: this.queryParams.pageIndex,
        pageSize: this.queryParams.pageSize
      }
      const res = await getTrainPage(param);
      if(res.code == 200) {
        this.trainList = res.rows;
        this.total = res.total
      }else {
        this.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      this.loading = false;
    },
    handleAdd(type, data){
      this.$refs.addDialogRef.openDialog(type, data);
    },
    handleDelete(val) {
      this.$confirm('删除此条信息,是否继续', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delTrain(val.institutionId ).then((res) => {
          if (res.code == 200) {
            this.$message({
              type:'success',
              message: '删除成功'
            })
            this.getList()
          }
        })
      })
    }
  }
};
src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue
@@ -8,41 +8,41 @@
    :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="idCard">
        <el-input v-model.trim="dataForm.idCard"/>
      <el-form-item label="考试点名称:" prop="siteName">
        <el-input v-model.trim="dataForm.siteName"/>
      </el-form-item>
      <el-form-item label="所属地区:" prop="iCCard">
        <el-select v-model="value" placeholder="请选择" style="width: 100%;">
      <el-form-item label="所属地区:" prop="districtId">
        <el-select v-model="dataForm.districtId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
            v-for="item in areaList"
            :key="item.id"
            :label="item.name"
            :value="item.id">
          </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 label="地址:" prop="address">
        <el-input type="textarea" v-model.trim="dataForm.address"/>
      </el-form-item>
      <el-form-item label="负责人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="负责人:" prop="header">
        <el-input v-model.trim="dataForm.header"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="hphone">
        <el-input v-model.trim="dataForm.hphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="联系人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="联系人:" prop="contact">
        <el-input v-model.trim="dataForm.contact"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="cphone">
        <el-input v-model.trim="dataForm.cphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="关联培训机构:" prop="iCCard">
        <el-select v-model="value" placeholder="请选择" style="width: 100%;">
      <el-form-item label="关联培训机构:" prop="institutionId">
        <el-select v-model="dataForm.institutionId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
            v-for="item in trainList"
            :key="item.institutionId"
            :label="item.institutionName"
            :value="item.institutionId">
          </el-option>
        </el-select>
      </el-form-item>
@@ -58,39 +58,127 @@
</template>
<script >
import {addExam, updateExam, getAreaList, getTrainList} from "@/api/coalMine/placeManage/exam";
export default {
  name: 'addUser',
  components: {
  },
  data() {
    return {
      areaList: [],
      trainList: [],
      dialogVisible: false,
      dialogStatus: '',
      rules: {
        name: [{ required: true, message: '身份证号', trigger: 'blur' }],
        siteName: [{ required: true, message: '请输入考点名称', trigger: 'blur' }],
        districtId: [{ required: true, message: '请选择地区', trigger: 'blur' }],
        institutionId: [{ required: true, message: '请选择培训机构', trigger: 'blur' }],
        hphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
        cphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
      },
      dataForm: {}
    }
  },
  created() {
    this.getArea();
    this.getTrain();
  },
  methods: {
    openDialog (type, data) {
      this.resetDataForm();
      this.dialogVisible = true;
      this.dialogStatus = type;
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
        this.dataForm.institutionId = data.institutionId.toString()
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
      })
    },
    async getTrain() {
      const param = {
        isCm: 0
      }
      const res = await getTrainList(param);
      if(res.code == 200) {
        this.trainList = res.data;
      }else{
        this.$message({
          type:'warning',
          message: res.msg
        })
      }
    },
    async getArea() {
      const res = await getAreaList();
      if(res.code == 200) {
        this.areaList = res.data;
      }else{
        this.$message({
          type:'warning',
          message: res.msg
        })
      }
    },
    handleClose() {
      this.dialogVisible = false;
      this.$emit("getList");
    },
    onSubmit() {
      this.$refs["dataForm"].validate( async valid => {
        if (valid) {
          if(this.dialogStatus == 'add'){
            this.dataForm.isCm = 0;
            console.log("this.dataForm",this.dataForm)
            const res = await addExam(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 {
            this.dataForm.isCm = 0;
            console.log("this.dataForm",this.dataForm)
            const res = await updateExam(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
              })
            }
          }
        }
      })
    },
    resetDataForm() {
      this.dataForm = {
src/views/notCoalMine/nPlaceManage/nExamManage/index.vue
@@ -14,22 +14,32 @@
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="expertList">
    <el-table v-loading="loading" :data="examList">
      <el-table-column type="index" label="序号" width="55" align="center" />
      <el-table-column label="培训机构名称" align="center" prop="name" />
      <el-table-column label="所属地区" align="center" prop="name" />
      <el-table-column label="地址" align="center" prop="name" />
      <el-table-column label="关联培训机构" align="center" prop="name" />
      <el-table-column label="负责人及电话" align="center" prop="phone"/>
      <el-table-column label="联系人及电话" align="center" prop="phone"/>
      <el-table-column label="说明(备注)" align="center" prop="phone"/>
      <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="phone">
        <template #default="scope">
          <div>{{scope.row.header}}</div>
          <div>{{scope.row.hphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="联系人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.contact}}</div>
          <div>{{scope.row.cphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="说明(备注)" align="center" prop="remark"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            @click="handleAdd('edit',scope.row)"
          >编辑</el-button>
          <el-button
            size="mini"
@@ -54,6 +64,8 @@
<script>
import addDialog from "@/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue";
import {delExam, getExamPage} from "@/api/coalMine/placeManage/exam";
import {delTrain} from "@/api/coalMine/placeManage/train";
export default {
  name: "nPeopleManage",
  dicts: [],
@@ -67,35 +79,57 @@
      addForm: false,
      total: 0,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      examList: [],
      queryParams: {
        pageIndex: 1,
        pageSize: 10
      },
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      }
    };
  },
  created() {
    this.getList()
  },
  methods: {
    getList(){
    },
    handleChange(){
    },
    handleQuery(){
    },
    resetQuery(){
    async getList() {
      this.loading = true;
      const param = {
        isCm: 0,
        pageNum: this.queryParams.pageIndex,
        pageSize: this.queryParams.pageSize
      }
      const res = await getExamPage(param);
      console.log("res",res)
      if(res.code == 200) {
        this.examList = res.rows;
        this.total = res.total
      }else {
        this.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      this.loading = false;
    },
    handleAdd(type, data){
      this.$refs.addDialogRef.openDialog(type, data);
    },
    handleDelete(val) {
      this.$confirm('删除此条信息,是否继续', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delExam( val.siteId).then((res) => {
          if (res.code == 200) {
            this.$message({
              type:'success',
              message: '删除成功'
            })
            this.getList()
          }
        })
      })
    }
  }
};
src/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue
@@ -8,33 +8,33 @@
    :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="idCard">
        <el-input v-model.trim="dataForm.idCard"/>
      <el-form-item label="机构名称:" prop="institutionName">
        <el-input v-model.trim="dataForm.institutionName"/>
      </el-form-item>
      <el-form-item label="所属地区:" prop="iCCard">
        <el-select v-model="value" placeholder="请选择" style="width: 100%;">
      <el-form-item label="所属地区:" prop="districtId">
        <el-select v-model="dataForm.districtId" placeholder="请选择" style="width: 100%;">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
            v-for="item in areaList"
            :key="item.id"
            :label="item.name"
            :value="item.id">
          </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 label="地址:" prop="address">
        <el-input type="textarea" v-model.trim="dataForm.address"/>
      </el-form-item>
      <el-form-item label="负责人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="负责人:" prop="header">
        <el-input v-model.trim="dataForm.header"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="hphone" >
        <el-input v-model.trim="dataForm.hphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="联系人:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="联系人:" prop="contact">
        <el-input v-model.trim="dataForm.contact"/>
      </el-form-item>
      <el-form-item label="电话:" prop="remark">
        <el-input v-model.trim="dataForm.remark"/>
      <el-form-item label="电话:" prop="cphone" >
        <el-input v-model.trim="dataForm.cphone" :maxlength="11" />
      </el-form-item>
      <el-form-item label="备注:" prop="remark">
        <el-input type="textarea" v-model.trim="dataForm.remark"/>
@@ -48,6 +48,8 @@
</template>
<script >
import {addTrain, getAreaList, updateTrain} from "@/api/coalMine/placeManage/train";
export default {
  name: 'addUser',
  components: {
@@ -56,13 +58,30 @@
    return {
      dialogVisible: false,
      dialogStatus: '',
      areaList: [],
      rules: {
        name: [{ required: true, message: '身份证号', trigger: 'blur' }],
        institutionName: [{ required: true, message: '请输入机构名称', trigger: 'blur' }],
        districtId: [{ required: true, message: '请选择地区', trigger: 'blur' }],
        hphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
        cphone: [
          {
            pattern: /^1[0-9]{10}$/,
            message: '手机号格式不正确',
            trigger: 'blur'
          }
        ],
      },
      dataForm: {}
    }
  },
  created() {
    this.getArea();
  },
  methods: {
@@ -70,21 +89,66 @@
      this.resetDataForm();
      this.dialogVisible = true;
      this.dialogStatus = type;
      if(this.dialogStatus == 'edit') {
        this.dataForm = data;
      }
      this.$nextTick(() => {
        this.$refs['dataForm'].clearValidate()
      })
    },
    async getArea() {
      const res = await getAreaList();
      if(res.code == 200) {
        this.areaList = res.data;
      }
    },
    handleClose() {
      this.dialogVisible = false;
      this.$emit("getList");
    },
    onSubmit() {
      this.$refs["dataForm"].validate( async valid => {
        if(valid){
          if(this.dialogStatus == 'add'){
            this.dataForm.isCm = 0;
            console.log("this.dataForm",this.dataForm)
            const res = await addTrain(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 {
            this.dataForm.isCm = 0;
            console.log("this.dataForm",this.dataForm)
            const res = await updateTrain(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
              })
            }
          }
        }
      })
    },
    resetDataForm() {
      this.dataForm = {
      }
      this.dataForm = {}
    },
  }
}
src/views/notCoalMine/nPlaceManage/nTrainManage/index.vue
@@ -14,21 +14,31 @@
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="expertList">
    <el-table v-loading="loading" :data="trainList">
      <el-table-column type="index" label="序号" width="55" align="center" />
      <el-table-column label="考试点名称" align="center" prop="name" />
      <el-table-column label="所属地区" align="center" prop="name" />
      <el-table-column label="地址" align="center" prop="name" />
      <el-table-column label="负责人及电话" align="center" prop="phone"/>
      <el-table-column label="联系人及电话" align="center" prop="phone"/>
      <el-table-column label="说明(备注)" align="center" prop="phone"/>
      <el-table-column label="培训机构名称" align="center" prop="institutionName" />
      <el-table-column label="所属地区" align="center" prop="districtName" />
      <el-table-column label="地址" align="center" prop="address" />
      <el-table-column label="负责人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.header}}</div>
          <div>{{scope.row.hphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="联系人及电话" align="center" prop="phone">
        <template #default="scope">
          <div>{{scope.row.contact}}</div>
          <div>{{scope.row.cphone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="说明(备注)" align="center" prop="remark"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            @click="handleAdd('edit',scope.row)"
          >编辑</el-button>
          <el-button
            size="mini"
@@ -52,6 +62,7 @@
</template>
<script>
import { getTrainPage, delTrain } from "@/api/coalMine/placeManage/train";
import addDialog from "@/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue";
export default {
  name: "nPeopleManage",
@@ -64,37 +75,58 @@
      multiple: true,
      showSearch: true,
      addForm: false,
      total: 0,
      total: 1,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      trainList: [],
      queryParams: {
        pageIndex: 1,
        pageSize: 10
      },
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    getList(){
    },
    handleChange(){
    },
    handleQuery(){
    },
    resetQuery(){
    async getList() {
      this.loading = true;
      const param = {
        isCm: 0,
        pageNum: this.queryParams.pageIndex,
        pageSize: this.queryParams.pageSize
      }
      const res = await getTrainPage(param);
      if(res.code == 200) {
        this.trainList = res.rows;
        this.total = res.total
      }else {
        this.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      this.loading = false;
    },
    handleAdd(type, data){
      this.$refs.addDialogRef.openDialog(type, data);
    },
    handleDelete(val) {
      this.$confirm('删除此条信息,是否继续', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delTrain(val.institutionId ).then((res) => {
          if (res.code == 200) {
            this.$message({
              type:'success',
              message: '删除成功'
            })
            this.getList()
          }
        })
      })
    }
  }
};