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