zhaojiale
2022-08-04 aeef44031f90e5a7b0cb05da884b38f5047e7d21
src/views/contingencyManagement/panManagement/component/openAdd.vue
@@ -3,7 +3,7 @@
    <el-dialog
        :title="titles"
        v-model="isShowDialog"
        width="769px"
        width="40%"
        draggable
        :fullscreen="full"
    >
@@ -25,10 +25,12 @@
            <el-form-item label="适用部门" prop="responsibleDepartment">
              <el-tree-select
              v-model="ruleForm.treeSelect"
              :data="tree"
              :data="data"
              multiple
              :render-after-expand="true"
              :props="propse"
              show-checkbox
              clearable
              />
              <el-divider />
            </el-form-item>
@@ -36,34 +38,34 @@
          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
            <el-form-item label="预案类型" prop="type">
              <el-select v-model="ruleForm.type" class="w100" placeholder="请选择">
                <el-option label="综合应急预案" value="admin"></el-option>
                <el-option label="现场处置方案" value="common"></el-option>
                <el-option label="专项应急预案" value="common"></el-option>
                <el-option label="其他预案" value="common"></el-option>
                <el-option label="综合应急预案" value="综合应急预案"></el-option>
                <el-option label="现场处置方案" value="现场处置方案"></el-option>
                <el-option label="专项应急预案" value="专项应急预案"></el-option>
                <el-option label="其他预案" value="其他预案"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
            <el-form-item label="危险源关联" prop="associatedDanger">
              <el-select v-model="ruleForm.associatedDanger" class="w100" placeholder="请选择">
                <el-option label="是" value="0"></el-option>
                <el-option label="否" value="1"></el-option>
                <el-option label="是" :value="false"></el-option>
                <el-option label="否" :value="true"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
            <el-form-item label="预案级别" prop="level">
              <el-select v-model="ruleForm.level" class="w100" placeholder="请选择">
                <el-option label="公司级" value="admin"></el-option>
                <el-option label="分厂级" value="common"></el-option>
                <el-option label="车间级" value="common"></el-option>
                <el-option label="公司级" value="公司级"></el-option>
                <el-option label="分厂级" value="分厂级"></el-option>
                <el-option label="车间级" value="车间级"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
            <el-form-item label="编写人" prop="authorId" >
              <el-input
                  v-model="ruleForm.authorId"
                  v-model="ruleForm.authorUid"
                  placeholder="请选择"
                  class="input-with-select"
              >
@@ -77,8 +79,12 @@
            <el-form-item label="编写部门" prop="authorDeptId">
              <el-tree-select
                  v-model="ruleForm.authorDeptId"
                  check-strictly
                  :data="data"
                  class="w100"
                  :props="propse"
                  clearable
                  :render-after-expand="false"
                  placeholder="请选择"/>
            </el-form-item>
          </el-col>
@@ -94,14 +100,14 @@
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
            <el-form-item label="应急队伍" prop="emergencyTeam" @click="daiInpt" >
            <el-form-item label="应急队伍" prop="emergencyTeam">
              <el-input
                  v-model="ruleForm.emergencyTeam"
                  placeholder="请选择"
                  class="input-with-select"
              >
                <template #append>
                  <el-button :icon="Search"/>
                  <el-button :icon="Search" @click="daiInpt" />
                </template>
              </el-input>
            </el-form-item>
@@ -124,19 +130,19 @@
              </el-upload>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
            <el-form-item label="区域名称" prop="areaName">
              <el-input
                  v-model="ruleForm.areaName"
                  placeholder="请选择"
                  class="input-with-select"
              >
                <template #append>
                  <el-button :icon="Search" @click="regionsDialog"/>
                </template>
              </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="areaName">-->
<!--              <el-input-->
<!--                  v-model="ruleForm.areaName"-->
<!--                  placeholder="请选择"-->
<!--                  class="input-with-select"-->
<!--              >-->
<!--                <template #append>-->
<!--                  <el-button :icon="Search" @click="regionsDialog"/>-->
<!--                </template>-->
<!--              </el-input>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
        </el-row>
      </el-form>
      <template #footer>
@@ -155,7 +161,8 @@
<script lang="ts">
import {
  ref,
  defineComponent
  defineComponent,
  onMounted,
} from 'vue';
import type {
@@ -171,6 +178,9 @@
import CheckTemplate from '/@/components/checkTemplate/index.vue'
import RegionsDialog from '/@/components/regionsDialog/index.vue'
import {emergencyPlanApi} from "/@/api/emergencyPlan";
import {goalManagementApi} from "/@/api/goalManagement";
import {emergencyPlanLogApi} from "/@/api/emergencyPlanLog";
import {contingencyApi} from "/@/api/contingency";
export default defineComponent({
  name: 'openAdd',
@@ -187,7 +197,7 @@
      type: '', //预案类型
      associatedDanger: '', // 危险源关联
      level: '', // 预案级别
      authorId: '', // 编写人
      authorUid: '', // 编写人
      authorDeptId: '', // 编写部门
      releaseDate: '', // 发布实施日期
      fileList: [
@@ -222,130 +232,45 @@
      isShowDialog.value = true;
      titles.value = title;
      disabled.value = type;
      if (title == '查看应急预案管理' || title == '修改应急预案管理') {
        emergencyPlanApi()
            .seeEmergencyTeam(id)
            .then((res) => {
              if (res.data.code == 200) {
                ruleForm.value = res.data.data;
              }
            });
      }
    };
    //日期选择器
    const releaseDate = ref('')
    // 上传附件
    const fileList = ref<UploadUserFile[]>([])
    // 可选择树
    //部门树
    const department = () => {
      goalManagementApi()
          .getTreedepartment()
          .then((res) => {
            if (res.data.code == 200) {
              data.value = res.data.data;
            } else {
              ElMessage.error(res.data.msg);
            }
          });
    };
    const treeSelect = ref()
    const tree = [
      {
        value: '1',
        label: 'Level one 1',
        children: [
          {
            value: '1-1',
            label: 'Level two 1-1',
            children: [
              {
                value: '1-1-1',
                label: 'Level three 1-1-1',
              },
            ],
          },
        ],
      },
      {
        value: '2',
        label: 'Level one 2',
        children: [
          {
            value: '2-1',
            label: 'Level two 2-1',
            children: [
              {
                value: '2-1-1',
                label: 'Level three 2-1-1',
              },
            ],
          },
          {
            value: '2-2',
            label: 'Level two 2-2',
            children: [
              {
                value: '2-2-1',
                label: 'Level three 2-2-1',
              },
            ],
          },
        ],
      },
      {
        value: '3',
        label: 'Level one 3',
        children: [
          {
            value: '3-1',
            label: 'Level two 3-1',
            children: [
              {
                value: '3-1-1',
                label: 'Level three 3-1-1',
              },
            ],
          },
          {
            value: '3-2',
            label: 'Level two 3-2',
            children: [
              {
                value: '3-2-1',
                label: 'Level three 3-2-1',
              },
            ],
          },
        ],
      },
    ]
    // const trees = ref();
    const propse = {
      label: 'depName',
      children: 'children',
      value: 'depId',
    };
    onMounted(() => {
      department();
    });
    //定义树形下拉框
    const responsibleDepartment = ref()
    const data = [
      {
        value: '1',
        label: '广汇能源综合物流发展有限责任公司',
        children: [
          {
            value: '1-1',
            label: '经营班子',
            children: [],
          },
        ],
      },
      {
        value: '2',
        label: '生产运行部',
        children: [
          {
            value: '2-1',
            label: '灌装一班',
            children: []
          },
          {
            value: '2-2',
            label: '工艺四班',
            children: [],
          },
        ],
      },
      {
        value: '3',
        label: '设备部',
        children: [
          {
            value: '3-1',
            label: '仪表班',
            children: [],
          },
          {
            value: '3-2',
            label: '机修班',
            children: [],
          },
        ],
      },
    ]
    const data = ref();
    const submitForm = async (title: string, formEl: FormInstance | undefined) => {
      if (title == '新建应急预案管理') {
@@ -378,6 +303,69 @@
          }
        })
      }
      else if (title == '修改应急预案管理') {
        if (!formEl) return;
        await formEl.validate((valid, fields) => {
          if (valid) {
            isShowDialog.value = false;
            emergencyPlanApi()
                .editEmergencyTeam(ruleForm.value)
                .then((res) => {
                  if (res.data.code == 200) {
                    ElMessage({
                      showClose: true,
                      message: '修改成功',
                      type: 'success',
                    });
                    emit('myAdd', true);
                  } else {
                    ElMessage({
                      showClose: true,
                      message: res.data.msg,
                      type: 'error',
                    });
                    emit('myAdd', true);
                  }
                  formEl.resetFields();
                });
          } else {
            console.log('error submit!', fields);
          }
        });
        formEl.resetFields();
        ruleForm.value = {
          name: '', // 预案名称
          type: '', //预案类型
          associatedDanger: '', // 危险源关联
          level: '', // 预案级别
          authorUid: '', // 编写人
          authorDeptId: '', // 编写部门
          releaseDate: '', // 发布实施日期
          fileList: [
            {
              fileUrl: 'url',
              fileName: 'name',
            }
          ],
          emergencyTeam: '', //应急队伍
          areaList: [
            {
              areaId: '',
            }
          ],  //区域列表
          areaName: '',  //区域名称
          teamList: [
            {
              teamId: '',
            }
          ],
          deptList: [
            {
              departmentId: '',
            }
          ]
        };
      }
    };
    const resetForm = (formEl: FormInstance | undefined) => {
      isShowDialog.value = false;
@@ -400,7 +388,7 @@
      userRef.value.openDailog();
    };
    const onUser = (e:any) => {
      ruleForm.value.authorId=e.id
      ruleForm.value.authorUid=e.uid
    };
    //全屏
    const full = ref(false);
@@ -419,7 +407,9 @@
      Search,
      releaseDate,
      treeSelect,
      tree,
      // trees,
      propse,
      department,
      daiInpt,
      Shows,
      submitForm,