123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- <template>
- <BasicModal
- v-bind="$attrs"
- @register="registerModal"
- :title="title"
- width="1000px"
- :showCancelBtn="false"
- :showOkBtn="false"
- :footer="null"
- destroyOnClose
- :mask-closable="false"
- @cancel="closeModalFn"
- >
- <a-tabs v-if="props.showTab" v-model:activeKey="activeKey">
- <a-tab-pane key="1" tab="基本信息" force-render>
- <FormModal :record="deviceData" @saveOrUpdate="(values) => emit('saveOrUpdate', values)" />
- </a-tab-pane>
- <!-- <a-tab-pane key="10" v-if="deviceType == 'fanlocal' || deviceType == 'fanmain'" tab="风机曲线" force-render>
- <FanLineModal :record="deviceData" />
- </a-tab-pane> -->
- <a-tab-pane key="2" tab="点表关联">
- <PointTable
- :columns="pointColumns"
- :pointType="deviceData.strtype"
- :deviceId="deviceData.id"
- :valuetype="9"
- @save="savePointData"
- @delete="deletePointById"
- />
- </a-tab-pane>
- <a-tab-pane key="8" tab="虚拟点表配置">
- <PointTable
- :columns="simulationColumns"
- :pointType="deviceData.strtype"
- :deviceId="deviceData.id"
- :valuetype="4"
- @save="savePointData"
- @delete="deletePointById"
- />
- </a-tab-pane>
- <a-tab-pane key="3" tab="设备关联" v-if="deviceType == 'managesys'">
- <WorkFacePointTable :columns="linkColumns" :deviceId="deviceData.id" @save="savePointData" @delete="deletePointById" />
- </a-tab-pane>
- <a-tab-pane v-if="deviceType == 'managesys'" key="4" tab="预警条目管理">
- <ManagerWarningDeviceTable v-if="activeKey == '4'" :deviceId="deviceData.id" />
- </a-tab-pane>
- <a-tab-pane key="5" :tab="deviceType !== 'managesys' ? '报警配置' : '配置预警设备'">
- <template v-if="activeKey == '5'">
- <WarningTable v-if="deviceType !== 'managesys'" :deviceId="deviceData.id" :pointType="deviceData.strtype" />
- <BackWindDeviceTable v-else :deviceId="deviceData.id" />
- </template>
- </a-tab-pane>
- <a-tab-pane v-if="deviceType == 'managesys'" key="6" tab="配置控制设备">
- <template v-if="activeKey == '6'">
- <WarningTable v-if="deviceType !== 'managesys'" :deviceId="deviceData.id" :pointType="deviceData.strtype" />
- <ManagerWarningTable v-else :deviceId="deviceData.id" />
- </template>
- </a-tab-pane>
- <a-tab-pane key="7" tab="摄像头配置"
- ><EditRowTable
- :columns="cameraColumns"
- :list="cameraList"
- :params="{ deviceid: deviceData.id }"
- @saveOrUpdate="saveCameraData"
- @deleteById="deleteCameraById"
- :isAdd="true"
- /></a-tab-pane>
- <!-- <a-tab-pane key="9" tab="预警指标修改">
- <template v-if="activeKey == '9'">
- <editWarnTable></editWarnTable>
- </template>
- </a-tab-pane> -->
- </a-tabs>
- <FormModal v-else :record="record" @saveOrUpdate="(values) => emit('saveOrUpdate', values)" />
- </BasicModal>
- </template>
- <script lang="ts" setup>
- import { computed, unref, inject, reactive, ref, watch } from 'vue';
- import { BasicModal, useModalInner } from '/@/components/Modal';
- import EditRowTable from '../../comment/EditRowTable.vue';
- import PointTable from './pointTabel/PointTable.vue';
- import WarningTable from './warningTabel/index.vue';
- import ManagerWarningTable from './warningTabel/index1.vue';
- import ManagerWarningDeviceTable from './warningTabel/index2.vue';
- import BackWindDeviceTable from './warningTabel/index3.vue';
- import WorkFacePointTable from './pointTabel/WorkFacePointTable.vue';
- // import editWarnTable from './editWarnTable/index.vue'
- import FanLineModal from './FanLineModal .vue';
- import FormModal from './FormModal.vue';
- import { cloneDeep } from 'lodash-es';
- import { columns as pointColumns, workFaceColumns, simulationColumns } from './pointTabel/point.data';
- import { saveOrUpdate as pointSaveOrUpdate, deleteById as pointDeleteById } from './pointTabel/point.api';
- import { columns as cameraColumns } from './cameraTabel/camera.data';
- import { list as cameraList, saveOrUpdate as cameraSaveOrUpdate, deleteById as cameraDeleteById } from './cameraTabel/camera.api';
- const props = defineProps({
- showTab: { type: Boolean, required: true },
- // deviceType: { type: String },
- });
- // 声明Emits
- const emit = defineEmits(['saveOrUpdate', 'register', 'closeModal']);
- const isUpdate = inject('isUpdate');
- const deviceData = inject('formData') as any;
- const deviceType = inject('deviceType') as any;
- const record = reactive({});
- const activeKey = ref('1');
- const linkColumns = ref<any[]>([]);
- //表单赋值
- const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
- //重置表单
- setModalProps({ confirmLoading: false });
- Object.assign(deviceData, data.record);
- // 判断是否是关键阻力路线
- });
- //设置标题
- const title = computed(() => {
- if (!unref(isUpdate)) {
- if (deviceData.strname || deviceData.systemname) {
- return `新增(${deviceData.strname || deviceData.systemname})`;
- }
- return `新增`;
- } else {
- if (deviceData['strtype'] == 'sys_majorpath') {
- linkColumns.value = [
- ...workFaceColumns,
- ...[
- {
- title: '是否在关键通风路线上',
- width: 100,
- dataIndex: 'pathflag',
- edit: true,
- editComponent: 'Switch',
- editValueMap: (value) => {
- return value ? '是' : '否';
- },
- },
- {
- title: '传感器类型',
- width: 100,
- dataIndex: 'sensorType',
- edit: true,
- editComponent: 'Select',
- editComponentProps: {
- options: [
- {
- label: '多参',
- value: '1',
- },
- {
- label: '测风',
- value: '2',
- },
- ],
- },
- },
- {
- title: '风向',
- width: 100,
- dataIndex: 'winddir',
- edit: true,
- editComponent: 'Select',
- editComponentProps: {
- options: [
- {
- label: '进风',
- value: '1',
- },
- {
- label: '用风',
- value: '2',
- },
- {
- label: '回风',
- value: '3',
- },
- ],
- },
- },
- {
- title: '是否总风量',
- width: 100,
- dataIndex: 'windflag',
- edit: true,
- editComponent: 'Switch',
- editValueMap: (value) => {
- return value ? '是' : '否';
- },
- },
- {
- title: '路线名称',
- width: 100,
- dataIndex: 'des',
- edit: true,
- editComponent: 'Input',
- },
- {
- title: ' 阻力值',
- width: 100,
- dataIndex: 'testDrag',
- edit: true,
- editComponent: 'InputNumber',
- },
- ],
- ];
- } else {
- linkColumns.value = [...workFaceColumns];
- }
- if (deviceData.strname || deviceData.systemname) {
- return `编辑(${deviceData.strname || deviceData.systemname})`;
- }
- return `编辑`;
- }
- });
- const closeModalFn = () => {
- closeModal();
- emit('closeModal');
- };
- const savePointData = (data) => {
- const record = cloneDeep(data.editValueRefs);
- pointSaveOrUpdate(Object.assign(record, { id: data.id, deviceId: deviceData.id }), data.id);
- };
- const saveCameraData = (data: any, reload: Function) => {
- cameraSaveOrUpdate(Object.assign({ ...data }, { id: data.id, deviceid: deviceData.id }), data.id);
- };
- const deletePointById = (id, reload) => {
- pointDeleteById({ id: id }, reload);
- };
- const deleteCameraById = (id, reload) => {
- cameraDeleteById({ id: id }, reload);
- };
- </script>
- <style scoped lang="less">
- ::v-deep .suffix {
- height: 32px;
- line-height: 32px;
- margin-left: 5px;
- color: #fff;
- }
- </style>
|