From 50e18f9d144e78d0f47247f46b5d712745e0035d Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: 星期三, 27 九月 2023 16:24:25 +0800
Subject: [PATCH] 场所管理

---
 src/views/notCoalMine/nPlaceManage/nTrainManage/index.vue                |   90 +++-
 src/api/coalMine/placeManage/exam.js                                     |   53 +++
 src/views/notCoalMine/nPlaceManage/nExamManage/index.vue                 |   92 +++-
 src/api/coalMine/placeManage/train.js                                    |   44 ++
 src/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue    |  110 +++++-
 src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue     |  144 ++++++-
 src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue  |  144 ++++++-
 src/views/coalMine/cPlaceManage/cExamManage/index.vue                    |   96 +++-
 src/views/coalMine/cPlaceManage/cTrainManage/index.vue                   |   93 +++-
 src/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue |  110 +++++-
 10 files changed, 753 insertions(+), 223 deletions(-)

diff --git a/src/api/coalMine/placeManage/exam.js b/src/api/coalMine/placeManage/exam.js
new file mode 100644
index 0000000..eb26eb0
--- /dev/null
+++ b/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'
+  })
+}
diff --git a/src/api/coalMine/placeManage/train.js b/src/api/coalMine/placeManage/train.js
new file mode 100644
index 0000000..03f8720
--- /dev/null
+++ b/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'
+  })
+}
diff --git a/src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue b/src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue
index 491ef91..38f85b0 100644
--- a/src/views/coalMine/cPlaceManage/cExamManage/components/addDialog.vue
+++ b/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.$emit("getList");
-      this.dialogVisible = false;
+      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 = {
diff --git a/src/views/coalMine/cPlaceManage/cExamManage/index.vue b/src/views/coalMine/cPlaceManage/cExamManage/index.vue
index 5631ee0..f4edc8b 100644
--- a/src/views/coalMine/cPlaceManage/cExamManage/index.vue
+++ b/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},
+  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()
+          }
+        })
+      })
     }
   }
 };
diff --git a/src/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue b/src/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue
index 728e126..c5590b8 100644
--- a/src/views/coalMine/cPlaceManage/cTrainManage/components/addDialog.vue
+++ b/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.$emit("getList");
-      this.dialogVisible = false;
+      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 = {}
     },
   }
 }
diff --git a/src/views/coalMine/cPlaceManage/cTrainManage/index.vue b/src/views/coalMine/cPlaceManage/cTrainManage/index.vue
index a155e86..9deab45 100644
--- a/src/views/coalMine/cPlaceManage/cTrainManage/index.vue
+++ b/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()
+          }
+        })
+      })
     }
   }
 };
diff --git a/src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue b/src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue
index 491ef91..477c9d2 100644
--- a/src/views/notCoalMine/nPlaceManage/nExamManage/components/addDialog.vue
+++ b/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.$emit("getList");
-      this.dialogVisible = false;
+      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 = {
diff --git a/src/views/notCoalMine/nPlaceManage/nExamManage/index.vue b/src/views/notCoalMine/nPlaceManage/nExamManage/index.vue
index 9df966b..901cc75 100644
--- a/src/views/notCoalMine/nPlaceManage/nExamManage/index.vue
+++ b/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()
+          }
+        })
+      })
     }
   }
 };
diff --git a/src/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue b/src/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue
index 728e126..fe7f879 100644
--- a/src/views/notCoalMine/nPlaceManage/nTrainManage/components/addDialog.vue
+++ b/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.$emit("getList");
-      this.dialogVisible = false;
+      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 = {}
     },
   }
 }
diff --git a/src/views/notCoalMine/nPlaceManage/nTrainManage/index.vue b/src/views/notCoalMine/nPlaceManage/nTrainManage/index.vue
index 43c3b51..d1faf76 100644
--- a/src/views/notCoalMine/nPlaceManage/nTrainManage/index.vue
+++ b/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()
+          }
+        })
+      })
     }
   }
 };

--
Gitblit v1.9.2