header.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <com-head :options="head" showCtrl>
  3. <el-form label-width="84px">
  4. <el-form-item label="项目编号:">
  5. <el-input v-model="pagging.state.query.projectSn" placeholder="请输入"></el-input>
  6. </el-form-item>
  7. <el-form-item label="起火对象:">
  8. <el-input
  9. v-model="pagging.state.query.projectName"
  10. placeholder="请输入"
  11. ></el-input>
  12. </el-form-item>
  13. <el-form-item label="起火地址:">
  14. <el-input
  15. v-model="pagging.state.query.projectAddress"
  16. placeholder="请输入"
  17. ></el-input>
  18. </el-form-item>
  19. <el-form-item label="起火场所:">
  20. <el-cascader
  21. style="width: 100%"
  22. v-model="projectSite"
  23. placeholder="请选择"
  24. :options="[{ label: '全部', value: UN_REQ_NUM.toString() }].concat(place)"
  25. :props="{ expandTrigger: 'hover', checkStrictly: true }"
  26. ></el-cascader>
  27. </el-form-item>
  28. <el-form-item label="承办单位:">
  29. <com-company v-model="pagging.state.query.deptId" />
  30. </el-form-item>
  31. <el-form-item label="事故日期:">
  32. <el-date-picker
  33. type="date"
  34. v-model="pagging.state.query.accidentDate"
  35. placeholder="请选择"
  36. style="width: 100%"
  37. />
  38. </el-form-item>
  39. <el-form-item label="火灾原因:">
  40. <el-cascader
  41. style="width: 100%"
  42. v-model="fireReason"
  43. placeholder="请选择"
  44. :options="[{ label: '全部', value: UN_REQ_NUM.toString() }].concat(reason)"
  45. :props="{ expandTrigger: 'hover', checkStrictly: true }"
  46. ></el-cascader>
  47. </el-form-item>
  48. <el-form-item label="项目状态:">
  49. <el-select placeholder="请选择" v-model="pagging.state.query.status" showAll>
  50. <el-option
  51. v-for="option in fireStatuOptions"
  52. :key="option.value"
  53. :value="option.value"
  54. :label="option.label"
  55. />
  56. </el-select>
  57. </el-form-item>
  58. <el-form-item class="searh-btns" style="grid-area: 1/4/4/5">
  59. <el-button type="primary" @click="pagging.refresh">查询</el-button>
  60. <el-button type="primary" plain @click="pagging.queryReset">重置</el-button>
  61. </el-form-item>
  62. </el-form>
  63. </com-head>
  64. </template>
  65. <script lang="ts" setup>
  66. import { FirePagging } from "./pagging";
  67. import comCompany from "@/components/company-select/index.vue";
  68. import { genCascaderValue, getCode, getRaw, getValue } from "@/helper/cascader";
  69. import { reason, place, fireStatuOptions } from "@/app/fire/constant/fire";
  70. import comHead from "@/components/head/index.vue";
  71. import { computed, ref, watchEffect } from "vue";
  72. import { UN_REQ_NUM } from "@/constant/sys";
  73. const props = defineProps<{ pagging: FirePagging; isTeached: boolean }>();
  74. const head = computed(() => [
  75. { name: props.isTeached ? "教学平台" : "火调管理", value: "2" },
  76. ]);
  77. const projectSite = genCascaderValue(
  78. computed(() => props.pagging.state.query),
  79. "projectSite",
  80. UN_REQ_NUM.toString()
  81. );
  82. watchEffect(() => {
  83. props.pagging.state.query.projectSiteCode = getCode(place, getRaw(projectSite.value!));
  84. });
  85. const fireReason = genCascaderValue(
  86. computed(() => props.pagging.state.query),
  87. "fireReason"
  88. );
  89. </script>