From c21f3d6df8746ec55ab9e7a64e4e130577c49fea Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: Mon, 25 Jul 2022 09:25:53 +0800
Subject: [PATCH] 接口对接
---
src/views/contingencyManagement/contingency/component/openAdd.vue | 227 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 157 insertions(+), 70 deletions(-)
diff --git a/src/views/contingencyManagement/contingency/component/openAdd.vue b/src/views/contingencyManagement/contingency/component/openAdd.vue
index 16c05f2..d88e035 100644
--- a/src/views/contingencyManagement/contingency/component/openAdd.vue
+++ b/src/views/contingencyManagement/contingency/component/openAdd.vue
@@ -1,11 +1,13 @@
<template>
<div class="system-edit-user-container">
<el-dialog
- title="新建应急队伍管理"
+ :title="title"
v-model="isShowDialog"
width="769px"
draggable
+ :fullscreen="full"
>
+ <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
<el-form
ref="ruleFormRef"
:model="ruleForm"
@@ -16,7 +18,7 @@
<el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="队伍名称" prop="teamName">
- <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input>
+ <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称" disabled="disabled"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@@ -29,9 +31,9 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="队伍负责人" prop="teamLeader">
+ <el-form-item label="队伍负责人" prop="principalUid">
<el-input
- v-model="ruleForm.teamLeader"
+ v-model="ruleForm.principalUid"
placeholder="请选择"
class="input-with-select"
>
@@ -42,28 +44,28 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="负责人部门" prop="responsibleDepartment">
+ <el-form-item label="负责人部门" prop="principalDepartmentId">
<el-tree-select
- v-model="ruleForm.responsibleDepartment"
+ v-model="ruleForm.principalDepartmentId"
:data="data" class="w100"
placeholder="请选择"/>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="负责人手机" prop="teamPhone">
- <el-input v-model="ruleForm.teamPhone" placeholder="请填写负责人手机"></el-input>
+ <el-form-item label="负责人手机" prop="principalPhone">
+ <el-input v-model="ruleForm.principalPhone" placeholder="请填写负责人手机"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="固定电话" prop="telephone">
- <el-input v-model="ruleForm.telephone" placeholder="请填写固定电话"></el-input>
+ <el-form-item label="固定电话" prop="telephoneNumber">
+ <el-input v-model="ruleForm.telephoneNumber" placeholder="请填写固定电话"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="队伍描述">
+ <el-form-item label="队伍描述" prop="teamDesc">
<el-input
class="textarea"
- v-model="ruleForm.describe"
+ v-model="ruleForm.teamDesc"
type="textarea"
maxlength="150"
placeholder="请填写队伍描述"
@@ -71,7 +73,7 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="相关附件">
+ <el-form-item label="相关附件" prop="fileList">
<el-upload
v-model:file-list="fileList"
class="upload-demo"
@@ -88,6 +90,9 @@
</el-upload>
</el-form-item>
</el-col>
+ </el-row>
+ </el-form>
+ <el-row :gutter="35">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="应急队伍人员" name="first">
@@ -117,37 +122,40 @@
</el-tabs>
</el-col>
</el-row>
- </el-form>
<template #footer>
- <span class="dialog-footer">
- <el-button @click="onCancel" size="default">关闭</el-button>
- <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
- </span>
+ <span class="dialog-footer">
+ <el-button @click="isShowDialog = !isShowDialog" size="default">关闭</el-button>
+ <el-button size="default" type="primary" @click="onSubmit">确定</el-button>
+ </span>
</template>
</el-dialog>
- <AddEmergencyPersonnel ref="addRef" />
- <UserSelections ref="userRef"/>
+ <AddEmergencyPersonnel ref="addRef" />
+ <UserSelections ref="userRef"/>
</div>
</template>
<script lang="ts">
-import { reactive,
+import {
+ reactive,
ref,
- defineComponent
+ defineComponent,
+ toRefs,
} from 'vue';
-
+import { ElMessage } from 'element-plus';
import type {
UploadUserFile,
TabsPaneContext,
- FormInstance,
+ // FormInstance,
FormRules,
} from 'element-plus'
import {
- Search
+ Search,
+ FullScreen
} from '@element-plus/icons-vue'
import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue";
import UserSelections from "/@/components/userSelections/index.vue"
+import {contingencyApi} from "/@/api/contingency";
// 定义表格数据类型
interface User {
personnelName: string
@@ -155,43 +163,82 @@
phone: string;
position: string;
}
+
+
+
+
+// 定义接口来定义对象的类型
+interface MenuDataTree {
+ id: number;
+ label: string;
+ children?: MenuDataTree[];
+}
+interface RoleState {
+ title:string,
+ // buttonName:string,
+ isShowDialog: boolean;
+ ruleForm: {
+ teamName: string;
+ teamLevel: string;
+ principalUid: number;
+ principalDepartmentId: number;
+ principalPhone: string;
+ telephoneNumber: string;
+ teamDesc: string;
+ fileList: string,
+ };
+ menuData: Array<MenuDataTree>;
+}
export default defineComponent({
name: 'openAdd',
components: {
AddEmergencyPersonnel,
UserSelections,
},
- setup() {
- const isShowDialog = ref(false)
-
- const ruleFormRef = ref<FormInstance>()
- //定义表单
- const ruleForm = reactive({
+ setup(prop,context) {
+ const state = reactive<RoleState>({
+ isShowDialog: false,
+ title:'',
+ // buttonName:'',
+ ruleForm: {
teamName: '', // 队伍名称
- teamLeader: '', //队伍负责人
- department: [], // 负责人部门
- phone: '', // 负责人手机
- telephone: '', // 固定电话
- describe: '', // 队伍描述
+ teamLevel: '', // 队伍级别
+ principalUid: 1, // 队伍负责人
+ principalDepartmentId: 2, //负责人部门
+ principalPhone: '', // 负责人手机
+ telephoneNumber: '', // 固定电话
+ teamDesc: '', //队伍描述
+ fileList: [],
+ },
+ menuData: [],
});
// 打开弹窗
- const openDialog = () => {
- // state.ruleForm = row;
- isShowDialog.value = true;
- };
- // 关闭弹窗
- const closeDialog = () => {
- isShowDialog.value = false;
- };
- // 取消
- const onCancel = () => {
- closeDialog();
+ const openDialog = (type: string, value: any) => {
+ state.isShowDialog = true;
+ if(type === '新建'){
+ state.title = '新建应急队伍管理'
+ // state.buttonName = '新增'
+ state.ruleForm = {
+ teamName: '', // 队伍名称
+ teamLevel: '', // 队伍级别
+ principalUid: 1, // 队伍负责人
+ principalDepartmentId: 2, //负责人部门
+ principalPhone: '', // 负责人手机
+ telephoneNumber: '', // 固定电话
+ teamDesc: '', //队伍描述
+ fileList: [],
+ }
+ }else{
+ state.title = '修改应急队伍管理'
+ // state.buttonName = '确定'
+ state.ruleForm = JSON.parse(JSON.stringify(value))
+ }
};
// 上传附件
const fileList = ref<UploadUserFile[]>([])
//定义树形下拉框
- const responsibleDepartment = ref()
+ const principalDepartmentId = ref()
const data = [
{
value: '1',
@@ -274,28 +321,28 @@
trigger: 'change',
},
],
- teamLeader: [
+ principalUid: [
{
required: true,
message: '队伍负责人不能为空',
trigger: 'change',
},
],
- responsibleDepartment: [
+ principalDepartmentId: [
{
required: true,
message: '负责人部门不能为空',
trigger: 'change',
},
],
- teamPhone: [
+ principalPhone: [
{
required: true,
message: '负责人手机不能为空',
trigger: 'change',
},
],
- telephone: [
+ telephoneNumber: [
{
required: true,
message: '固定电话不能为空',
@@ -303,38 +350,77 @@
},
],
})
- // 表单提交验证必填项
- const submitForm = async (formEl: FormInstance | undefined) => {
- if (!formEl) return
- await formEl.validate((valid, fields) => {
- if (valid) {
- console.log('submit!')
- } else {
- console.log('error submit!', fields)
+ //全屏
+ const full = ref(false);
+ const toggleFullscreen = () => {
+ if (full.value == false) {
+ full.value = true;
+ } else {
+ full.value = false;
+ }
+ };
+ // 新增
+ const onSubmit = async () => {
+ if(state.title === '新建应急队伍管理'){
+ let res = await contingencyApi().addEmergencyTeam(state.ruleForm)
+ if(res.data.code === '200'){
+ ElMessage({
+ type:'success',
+ message:'队伍新增成功',
+ // duration:2000
+ })
+ state.isShowDialog = false
+ context.emit('refreshRoleList')
+ }else{
+ ElMessage({
+ type:'warning',
+ message:res.data.msg
+ })
}
- })
- }
+ }
+ else{
+ let res = await contingencyApi().editEmergencyTeam(state.ruleForm)
+ if(res.data.code === '200'){
+ ElMessage({
+ type:'success',
+ message:'队伍修改成功',
+ // duration:2000
+ })
+ state.isShowDialog = false
+ context.emit('refreshRoleList')
+ }else{
+ ElMessage({
+ type:'warning',
+ message:res.data.msg
+ })
+ }
+ }
+ };
return {
openDialog,
- closeDialog,
- isShowDialog,
- onCancel,
+ // closeDialog,
+ // isShowDialog,
+ // onCancel,
fileList,
- responsibleDepartment,
+ principalDepartmentId,
data,
activeName,
handleClick,
tableData,
multipleSelection,
Search,
- ruleForm,
- ruleFormRef,
- submitForm,
+ onSubmit,
+ // ruleForm,
+ // ruleFormRef,
rules,
addRef,
userRef,
openUser,
onAddEmergencyPersonnel,
+ toggleFullscreen,
+ FullScreen,
+ full,
+ ...toRefs(state),
};
},
});
@@ -349,4 +435,5 @@
::v-deep .el-table__cell {
font-weight: 400;
}
-</style>
\ No newline at end of file
+</style>
+
--
Gitblit v1.9.2