From 768e4d521b2408e187b0b482bae345f66f41794a Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期三, 23 三月 2022 10:44:20 +0800 Subject: [PATCH] 接口对接 --- src/views/safetyproduction/feature.vue | 297 +++++++++++++++++----- src/api/emergencyplan.js | 46 +++ src/api/elementManagement.js | 46 +++ src/views/contingencyplan/index.vue | 337 +++++++++++++++++-------- 4 files changed, 537 insertions(+), 189 deletions(-) diff --git a/src/api/elementManagement.js b/src/api/elementManagement.js new file mode 100644 index 0000000..6efbd1d --- /dev/null +++ b/src/api/elementManagement.js @@ -0,0 +1,46 @@ +import {getToken} from "../utils/auth"; +import request from '@/utils/request' + +export function elementManagementList(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/elementManagement/page', + method: 'post', + data + }); + } + + export function elementManagementAdd(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/elementManagement/add', + method: 'post', + data + }); + } + + export function elementManagementMod(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/elementManagement/mod', + method: 'post', + data + }); + } + + export function elementManagementDel(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/elementManagement/del', + method: 'post', + data + }); + } \ No newline at end of file diff --git a/src/api/emergencyplan.js b/src/api/emergencyplan.js new file mode 100644 index 0000000..465214d --- /dev/null +++ b/src/api/emergencyplan.js @@ -0,0 +1,46 @@ +import {getToken} from "../utils/auth"; +import request from '@/utils/request' + +export function emergencyPlanList(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/emergencyPlan/page', + method: 'post', + data + }); + } + + export function emergencyPlanAdd(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/emergencyPlan/add', + method: 'post', + data + }); + } + + export function emergencyPlanMod(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/emergencyPlan/mod', + method: 'post', + data + }); + } + + export function emergencyPlanDel(data) { + return request({ + headers:{ + 'Authorization': getToken() + }, + url: process.env.BASE_API+'/emergencyPlan/del', + method: 'post', + data + }); + } \ No newline at end of file diff --git a/src/views/contingencyplan/index.vue b/src/views/contingencyplan/index.vue index 714ced4..d60024e 100644 --- a/src/views/contingencyplan/index.vue +++ b/src/views/contingencyplan/index.vue @@ -1,130 +1,235 @@ <template> - <div class="app-container"> + <div class="app-container"> <el-form ref="form" :model="form" label-width="80px"> - <el-row> - <el-col :span="5"> - <el-form-item label="预案名称"> - <el-input v-model="form.name"></el-input> - </el-form-item> - </el-col> - <el-col :span="4" style="text-align:center"> - <el-button type="primary" icon="el-icon-search">搜索</el-button> - <el-button type="primary" icon="el-icon-plus" @click="dialogVisible=true">新增</el-button> - </el-col> - </el-row> -</el-form> - <el-table - :data="tableData" - border - style="width: 100%"> - <el-table-column - prop="date" - label="预案名称" - width="150"> - </el-table-column> - <el-table-column - prop="name" - label="文件链接" - > - </el-table-column> - <el-table-column - prop="province" - label="备注" - > - </el-table-column> - <el-table-column - prop="city" - label="创建时间" - > - </el-table-column> - <el-table-column - prop="address" - label="更新时间" - > - </el-table-column> - <el-table-column - align="center" - label="操作" - > - <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> - <el-button type="text" size="small" style="color:red">删除</el-button> - </template> - </el-table-column> - </el-table> - <el-dialog - title="新增" - :visible.sync="dialogVisible" - width="30%" - :before-close="handleClose"> - <el-form ref="form" :model="form" label-width="68px"> - <el-form-item label="活动名称"> - <el-input v-model="form.name"></el-input> + <el-row> + <el-col :span="5"> + <el-form-item label="预案名称"> + <el-input v-model="listQuery.filter.name"></el-input> + </el-form-item> + </el-col> + <el-col :span="4" style="text-align: center"> + <el-button type="primary" class="btns" icon="el-icon-search" @click="find()" + >搜索</el-button + > + <el-button + type="primary" + icon="el-icon-plus" + @click="emergencyPlanC('', '新增')" + class="btns" + >新增</el-button + > + </el-col> + </el-row> + </el-form> + <el-table :data="list" border style="width: 100%"> + <el-table-column prop="name" label="预案名称" width="150"> + </el-table-column> + <el-table-column prop="name" label="文件链接"> </el-table-column> + <el-table-column prop="remark" label="备注"> </el-table-column> + <el-table-column prop="createTime" label="创建时间"> </el-table-column> + <el-table-column prop="updateTime" label="更新时间"> </el-table-column> + <el-table-column align="center" label="操作"> + <template slot-scope="scope"> + <el-button + @click="emergencyPlanC(scope.row, '编辑')" + type="text" + size="small" + >编辑</el-button + > + <el-button + type="text" + size="small" + @click="deleteById(scope.row.id)" + style="color: red" + >删除</el-button + > + </template> + </el-table-column> + </el-table> + <el-pagination + v-show="recordTotal>0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + <el-dialog :title="title" :visible.sync="dialogVisible" width="30%"> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="预案名称" prop="name"> + <el-input v-model="form.name"></el-input> </el-form-item> - <el-form-item label="文件类型"> - <el-radio-group v-model="form.resource"> - <el-radio label="0">图片</el-radio> - <el-radio label="1">文件</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="图片上传"> - <el-input v-model="form.name"></el-input> + <el-form-item label="文件类型"> + <el-radio-group v-model="form.fileType"> + <el-radio label="0">图片</el-radio> + <el-radio label="1">文件</el-radio> + </el-radio-group> </el-form-item> - <el-form-item label="文件链接"> - <el-input v-model="form.name"></el-input> + <el-form-item label="图片上传"> + <el-input ></el-input> </el-form-item> - <el-form-item label="备注"> - <el-input v-model="form.name" :rows="5" type="textarea"></el-input> + <el-form-item label="文件链接"> + <SingleImageUpload></SingleImageUpload> </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="dialogVisible = false">确 定</el-button> - <el-button @click="dialogVisible = false">取 消</el-button> - </span> -</el-dialog> - </div> + <el-form-item label="备注" prop="remark"> + <el-input v-model="form.remark" :rows="5" type="textarea"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" class="btns" @click="addemergencyPlan()">确 定</el-button> + <el-button @click="dialogVisible = false">取 消</el-button> + </span> + </el-dialog> + </div> </template> <script> - export default{ - data(){ - return{ - dialogVisible: false, - form: { - name: '', +import SingleImageUpload from "@/components/Upload/singleImage.vue"; +import { + emergencyPlanList, + emergencyPlanAdd, + emergencyPlanMod, + emergencyPlanDel, +} from "@/api/emergencyplan.js"; +export default { + components: { SingleImageUpload }, + data() { + return { + dialogVisible: false, + title: "", + pageSize: 10, + recordTotal: 0, + currentPage: 1, + form: { + name: "", + fileType: 0, + fileList: [{ fileName: "", fileUrl: "" }], + remark: "", + }, + listQuery: { + pageIndex: 1, + pageSize: 10, + filter: { + name: "", }, - tableData: [{ - date: '2016-05-02', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-04', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1517 弄', - zip: 200333 - }, { - date: '2016-05-01', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1519 弄', - zip: 200333 - }, { - date: '2016-05-03', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1516 弄', - zip: 200333 - }] + }, + list: [], + rules: { + name: [ + { required: true, message: "预案名称不能为空", trigger: "change" }, + ], + remark: [ + { required: true, message: "责任人不能为空", trigger: "blur" }, + ], + }, + }; + }, + created() { + this.emergencyPlan(); + }, + methods: { + async emergencyPlan() { + var res = await emergencyPlanList(this.listQuery); + console.log(res); + if (res.data.code === "200") { + this.list = res.data.result.records; + this.recordTotal = res.data.result.total + this.pageSize=res.data.result.size; + this.currentPage = res.data.result.current + } + }, + emergencyPlanC(value, type) { + this.dialogVisible = true; + this.$nextTick(() => { + this.$refs["form"].clearValidate(); + }); + if (type === "新增") { + this.title = "新增"; + this.form = { + name: "", + fileType: "0", + fileList: [{ fileName: "", fileUrl: "" }], + remark: "", + }; + } else { + this.title = "编辑"; + this.form = value; + } + }, + addemergencyPlan() { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.title === "新增") { + emergencyPlanAdd(this.form).then((res) => { + if (res.data.code === "200") { + this.dialogVisible = false; + this.emergencyPlan(); + this.$notify({ + type: "success", + duration: 2000, + message: "新增成功", + title: "成功", + }); + } else { + this.$message({ + type: "warning", + message: res.data.message, + }); + } + }); + } + else { + emergencyPlanMod(this.form).then((res) => { + if (res.data.code === "200") { + this.dialogVisible = false; + this.emergencyPlan(); + this.$notify({ + type: "success", + duration: 2000, + message: "编辑成功", + title: "成功", + }); + } else { + this.$message({ + type: "warning", + message: res.data.message, + }); } + }); } - } + } + }); + }, + deleteById(val) { + emergencyPlanDel({ id: val }).then(() => { + this.emergencyPlan(); + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }, + find() { + this.emergencyPlan(); + }, + handleSizeChange(val){ + this.listQuery.pageSize = val + this.emergencyPlan(); + }, + handleCurrentChange(val){ + this.listQuery.pageIndex = val + this.emergencyPlan(); + }, + }, +}; </script> <style scoped> - +.btns{ + background-color: #034EA2; + border: 1px solid #034EA2; +} </style> \ No newline at end of file diff --git a/src/views/safetyproduction/feature.vue b/src/views/safetyproduction/feature.vue index 44e31e6..b9212c3 100644 --- a/src/views/safetyproduction/feature.vue +++ b/src/views/safetyproduction/feature.vue @@ -4,56 +4,94 @@ <el-row> <el-col :span="5"> <el-form-item label="要素名称"> - <el-input v-model="form.name"></el-input> + <el-input v-model="listQuery.filter.name"></el-input> </el-form-item> </el-col> <el-col :span="4" style="text-align: center"> - <el-button type="primary" icon="el-icon-search" class="btns">搜索</el-button> + <el-button type="primary" icon="el-icon-search" @click="find()" class="btns" + >搜索</el-button + > <el-button type="primary" icon="el-icon-plus" class="btns" - @click="dialogVisible = true" + @click="handleClick('', '新增')" >新增</el-button > </el-col> </el-row> </el-form> - <el-table :data="tableData" border style="width: 100%"> - <el-table-column prop="date" label="要素名称" width="150"> + <el-table :data="list" border style="width: 100%"> + <el-table-column prop="name" align="center" label="要素名称"> </el-table-column> - <el-table-column prop="name" label="级别"> </el-table-column> - <el-table-column prop="name" label="父要素"> </el-table-column> - <el-table-column prop="province" label="备注"> </el-table-column> - <el-table-column prop="city" label="创建时间"> </el-table-column> - <el-table-column prop="address" label="更新时间"> </el-table-column> + <el-table-column label="级别" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.type == 0">A级要素</span> + <span v-if="scope.row.type == 1">B级要素</span> + </template> + </el-table-column> + <el-table-column label="父要素" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.parentId == 0">法律法规和标准</span> + <span v-if="scope.row.parentId == 1">机构和职责</span> + </template> + </el-table-column> + <el-table-column prop="remark" label="备注" align="center"> + </el-table-column> + <el-table-column prop="createTime" label="创建时间" align="center"> + </el-table-column> + <el-table-column prop="updateTime" label="更新时间" align="center"> + </el-table-column> <el-table-column align="center" label="操作"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small" + <el-button + @click="handleClick(scope.row, '编辑')" + type="text" + size="small" >编辑</el-button > - <el-button type="text" size="small" style="color: red" + <el-button + type="text" + size="small" + @click="deleteById(scope.row.id)" + style="color: red" >删除</el-button > </template> </el-table-column> </el-table> + <div style="text-align:right"> + <el-pagination + v-show="recordTotal>0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + </div> <el-dialog - title="新增" + :title="title" :visible.sync="dialogVisible" width="40%" - :before-close="handleClose" > - <el-form ref="form" :model="form" label-width="70px"> + <el-form ref="form" :rules="rules" :model="form" label-width="80px"> <el-row> <el-col :span="11"> - <el-form-item label="活动名称"> - <el-input v-model="form.name"></el-input> + <el-form-item label="要素名称" prop="name"> + <el-input v-model="form.name" maxlength="50"></el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="级别"> - <el-select v-model="value" placeholder="请选择" style="width:100%"> + <el-form-item label="级别" prop="type"> + <el-select + v-model="form.type" + placeholder="请选择" + style="width: 100%" + > <el-option v-for="item in options" :key="item.value" @@ -67,10 +105,14 @@ </el-row> <el-row> <el-col :span="11"> - <el-form-item label="父要素"> - <el-select v-model="value" placeholder="请选择" style="width:100%"> + <el-form-item label="父要素" prop="parentId"> + <el-select + v-model="form.parentId" + placeholder="请选择" + style="width: 100%" + > <el-option - v-for="item in options" + v-for="item in parent" :key="item.value" :label="item.label" :value="item.value" @@ -81,11 +123,16 @@ </el-col> </el-row> <el-form-item label="备注"> - <el-input v-model="form.name" maxlength="250" :rows="5" type="textarea"></el-input> + <el-input + v-model="form.remark" + maxlength="250" + :rows="5" + type="textarea" + ></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> - <el-button type="primary" class="btns" @click="dialogVisible = false" + <el-button type="primary" class="btns" @click="AddelementManagement()" >确 定</el-button > <el-button @click="dialogVisible = false">取 消</el-button> @@ -94,71 +141,175 @@ </div> </template> <script> +import { + elementManagementList, + elementManagementAdd, + elementManagementMod, + elementManagementDel, +} from "@/api/elementManagement.js"; export default { data() { return { dialogVisible: false, + title: "", form: { name: "", + type: "", + parentId: "", + remark: "", }, - tableData: [ + pageSize: 10, + recordTotal: 0, + currentPage: 1, + list: [], + listQuery: { + filter: { + name: "", + }, + pageIndex: 1, + pageSize: 10, + }, + options: [ { - date: "2016-05-02", - name: "王小虎", - province: "上海", - city: "普陀区", - address: "上海市普陀区金沙江路 1518 弄", - zip: 200333, + value: 0, + label: "A级要素", }, { - date: "2016-05-04", - name: "王小虎", - province: "上海", - city: "普陀区", - address: "上海市普陀区金沙江路 1517 弄", - zip: 200333, - }, - { - date: "2016-05-01", - name: "王小虎", - province: "上海", - city: "普陀区", - address: "上海市普陀区金沙江路 1519 弄", - zip: 200333, - }, - { - date: "2016-05-03", - name: "王小虎", - province: "上海", - city: "普陀区", - address: "上海市普陀区金沙江路 1516 弄", - zip: 200333, + value: 1, + label: "B级要素", }, ], - options: [{ - value: '选项1', - label: '黄金糕' - }, { - value: '选项2', - label: '双皮奶' - }, { - value: '选项3', - label: '蚵仔煎' - }, { - value: '选项4', - label: '龙须面' - }, { - value: '选项5', - label: '北京烤鸭' - }], - value: '' + parent: [ + { + value: 0, + label: "法律法规和标准", + }, + { + value: 1, + label: "机构和职责", + }, + ], + rules: { + name: [ + { required: true, message: "预案名称不能为空", trigger: "change" }, + ], + type: [ + { required: true, message: "预案名称不能为空", trigger: "change" }, + ], + parentId: [ + { required: true, message: "预案名称不能为空", trigger: "change" }, + ], + remark: [ + { required: true, message: "责任人不能为空", trigger: "blur" }, + ], + }, }; + }, + created() { + this.elementManagementL(); + }, + methods: { + async elementManagementL() { + var res = await elementManagementList(this.listQuery); + console.log(res); + if (res.data.code == 200) { + this.list = res.data.result.records; + this.recordTotal = res.data.result.total + this.pageSize=res.data.result.size; + this.currentPage = res.data.result.current + } + }, + handleClick(value, type) { + this.dialogVisible = true; + this.$nextTick(() => { + this.$refs["form"].clearValidate(); + }); + if (type == "新增") { + this.title = "新增"; + this.form = { + name: "", + type: "", + parentId: "", + remark: "", + }; + } else { + this.title = "编辑"; + this.form = value; + } + }, + AddelementManagement() { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.title == "新增") { + elementManagementAdd(this.form).then((res) => { + if (res.data.code == 200) { + this.dialogVisible = false; + this.elementManagementL(); + this.$notify({ + type: "success", + duration: 2000, + message: "新增成功", + title: "成功", + }); + } else { + this.$message({ + type: "warning", + message: res.data.message, + }); + } + }); + } else { + elementManagementMod(this.form).then((res) => { + if (res.data.code == 200) { + this.dialogVisible = false; + this.elementManagementL(); + this.$notify({ + type: "success", + duration: 2000, + message: "编辑成功", + title: "成功", + }); + } else { + his.$message({ + type: "warning", + message: res.data.message, + }); + } + }); + } + } + }); + }, + deleteById(val) { + elementManagementDel({id:val}).then((res) => { + if (res.data.code == 200) { + this.elementManagementL(); + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + } + }); + }, + find(){ + this.elementManagementL(); + }, + handleSizeChange(val){ + this.listQuery.pageSize = val + this.elementManagementL(); + }, + handleCurrentChange(val){ + this.listQuery.pageIndex = val + this.elementManagementL(); + }, }, }; </script> <style scoped> -.btns{ - background-color: #034EA2; - border: 1px solid #034EA2; +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; } </style> \ No newline at end of file -- Gitblit v1.9.2