Compare commits

...

8 Commits

  1. 18
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/ModifyDutyInformationTable.vue
  2. 154
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/index.vue
  3. 13
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/AddNEditDialog.vue
  4. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/index.vue

18
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/ModifyDutyInformationTable.vue

@ -163,19 +163,25 @@ export default {
const closeMessage = loadingMessage({ message: "人员获取中..." });
request({
url: `/business/employees/list`,
method: "GET",
params: {
organizationId: id
// url: `/business/employees/list`,
// method: "GET",
// params: {
// organizationId: id
// }
url: `/business/shifts/byStation`,
method: "POST",
data: {
station: this.data.station,
date: this.data.date,
}
})
.then((result) => {
if (result.code != 200) return Message.error("人员获取失败");
if (!result.rows?.length) return Message.warning("该驻点下暂无人员");
if (!result.data?.length) return Message.warning("该驻点下暂无人员");
Message.success("人员获取成功")
this.peopleList = result.rows;
this.peopleList = result.data;
})
.catch((err) => {
Message.error("人员获取失败")

154
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/index.vue

@ -34,75 +34,85 @@
</ButtonGradient>
</div>
<InputSearch style="width: 402px;" :formList="searchFormList" :formConfigOptions="{ labelWidth: '72px' }"
<InputSearch
style="width: 402px;"
:formList="searchFormList"
:formConfigOptions="{ labelWidth: '100px' }"
placeholder="请输入姓名、电话,回车搜索"
type="input"
:params="params"
@handleSearch="handleSearch" />
</div>
<!-- <ElEmpty v-if="!data.length && !isFirst" description="暂无数据" style="width: 100%;height: 100%;position: absolute;" /> -->
<div v-if="!data.length && !isFirst" class="no-data" style="position: absolute">暂无数据</div>
<SpecialTable v-else :columns="columns" :data="data" class="body">
<template #title-DateDuty>
<div class="special-title">
值班中心
</div>
</template>
<template #content-date="{ data }">
<div class="item">
<img src="@screen/images/form/calendar.svg" />
{{ data.date }}
</div>
</template>
<template #content-organizationName="{ data }">
<div class="parent">
<div class="body">
<ElEmpty v-if="!data.length && !isFirst" description="暂无数据" style="width: 100%;height: 100%;position: absolute;" />
<!-- <div v-if="!data.length && !isFirst" class="no-data" style="position: absolute">暂无数据</div> -->
<SpecialTable v-else :columns="columns" :data="data" class="body">
<template #title-DateDuty>
<div class="special-title">
值班中心
</div>
</template>
<template #content-date="{ data }">
<div class="item">
<img src="@screen/images/form/location.svg" />
{{ data['organizationName'] }}
<img src="@screen/images/form/calendar.svg" />
{{ data.date }}
</div>
</div>
</template>
<template #content-dayShift="{ data }">
<div class="item-parent" v-if="data.dayShift && data.dayShift.length">
<div class="item" v-for="item in data.dayShift">
<img src="@screen/images/form/people.svg" />
{{ item.name }}
</template>
<template #content-organizationName="{ data }">
<div class="parent">
<div class="item">
<img src="@screen/images/form/location.svg" />
{{ data['organizationName'] }}
</div>
</div>
</div>
<div class="no-data" v-else>
无值班人员
</div>
</template>
<template #content-graveyardShift="{ data }">
<div class="item-parent" v-if="data.graveyardShift && data.graveyardShift.length">
<div class="item" v-for="item in data.graveyardShift">
<img src="@screen/images/form/people.svg" />
{{ item.name }}
</template>
<template #content-dayShift="{ data }">
<div class="item-parent" v-if="data.dayShift && data.dayShift.length">
<div class="item" v-for="(item,index) in data.dayShift" :key="index" >
<img src="@screen/images/form/people.svg" />
{{ item.name }}
</div>
</div>
</div>
<div class="no-data" v-else>
无值班人员
</div>
</template>
<template #operation-content="{ data }">
<ButtonGradient class="operate-button" @click.native="handleModifyDutyInformationTable(true, data)">
<template #prefix>
<img src="@screen/images/form/edit.svg" />
</template>
修改
</ButtonGradient>
<ButtonGradient class="operate-button" @click.native="handleOperateRecord(true, data)">
<template #prefix>
<img src="@screen/images/form/record.svg" />
</template>
记录
</ButtonGradient>
<ButtonGradient class="operate-button" @click.native="handleDelete(data)">
<template #prefix>
<img src="@screen/images/form/delete.svg" />
</template>
删除
</ButtonGradient>
</template>
</SpecialTable>
<div class="no-data" v-else>
无值班人员
</div>
</template>
<template #content-graveyardShift="{ data }">
<div class="item-parent" v-if="data.graveyardShift && data.graveyardShift.length">
<div class="item" v-for="(item,index) in data.graveyardShift" :key="index">
<img src="@screen/images/form/people.svg" />
{{ item.name }}
</div>
</div>
<div class="no-data" v-else>
无值班人员
</div>
</template>
<template #operation-content="{ data }">
<ButtonGradient class="operate-button" @click.native="handleModifyDutyInformationTable(true, data)">
<template #prefix>
<img src="@screen/images/form/edit.svg" />
</template>
修改
</ButtonGradient>
<ButtonGradient class="operate-button" @click.native="handleOperateRecord(true, data)">
<template #prefix>
<img src="@screen/images/form/record.svg" />
</template>
记录
</ButtonGradient>
<ButtonGradient class="operate-button" @click.native="handleDelete(data)">
<template #prefix>
<img src="@screen/images/form/delete.svg" />
</template>
删除
</ButtonGradient>
</template>
</SpecialTable>
</div>
<OperateRecord :visible="operateRecordVisible" @close="handleOperateRecord(false)" :data="dialogData" />
@ -123,6 +133,7 @@ import request from "@/utils/request";
import { setLoading } from "@screen/utils/index.js"
import { delay, exportFile, confirm, uploadFile } from "@screen/utils/common";
import { Message } from "element-ui";
import { getSelectOptionsStation } from "@screen/pages/control/event/businessDataManagement/utils.js";
export default {
name: 'DutyOfficer',
@ -163,23 +174,40 @@ export default {
{
label: "值班日期:",
key: "date",
required: true,
required: false,
type: "datePicker",
options: {
valueFormat: "yyyy-MM-dd"
}
},
{
label: "驻点:",
key: "station",
type: "select",
options: {
clearable: true,
options: [],
},
},
],
operateRecordVisible: false,
modifyDutyInformationTableVisible: false,
dialogData: null,
isFirst: true,
params: "name",
}
},
created() {
this.getData();
this.getOptions();
},
methods: {
async getOptions() {
const result = await getSelectOptionsStation(2);
this.searchFormList[1].options.options = result;
},
handleOperateRecord(bool, data) {
this.operateRecordVisible = bool;
this.dialogData = data;

13
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/emergencyAgencies/components/AddNEditDialog.vue

@ -20,7 +20,7 @@ import Dialog from "@screen/components/Dialog/index.vue";
import Button from "@screen/components/Buttons/Button.vue"
import Form from '@screen/components/FormConfig';
import * as PresetFormItems from "@screen/pages/control/event/event/FormEvent/PresetFormItems.js";
import * as PresetFormItems from "@screen/common/PresetFormItems.js";
import request from "@/utils/request";
import { CameraDirectionEnumList } from "@screen/utils/enum.js"
import { Message } from "element-ui";
@ -53,7 +53,7 @@ export default {
key: "parentId",
type: 'select',
options: {
clearable: true,
clearable: false,
options: []
}
},
@ -171,11 +171,11 @@ export default {
this.formData =
!this.data ? null : {
"parentId": this.data.dcOrganizations.parentId,
"organizationType": this.data.dcOrganizations.organizationType,
// "organizationType": this.data.dcOrganizations.organizationType,
"organizationName": this.data.dcOrganizations.organizationName,
"direction": this.data.dcOrganizations.direction,
"organizationAddress": this.data.dcOrganizations.organizationAddress,
"stakeMark": [...(this.data.dcOrganizations.stakeMark || "").match(/[0-9]+/g)],
"stakeMark": this.data.dcOrganizations.stakeMark ? [...(this.data.dcOrganizations.stakeMark || "").match(/[0-9]+/g)] : ["", ""],
"rescueUnit": this.data.dcOrganizations.rescueUnit,
"description": this.data.dcOrganizations.description
}
@ -190,6 +190,7 @@ export default {
const result = await getSelectOptionsStation(1);
this.formList[0].options.options = result;
this.formList[0].default = result[0]?.key;
},
handleSubmit() {
this.$refs.FormConfigRef.validate()
@ -200,9 +201,9 @@ export default {
if (typeof data.parentId != 'number') data.parentId = 0;
if (data.stakeMark[0]) {
data.stakeMark = `K${data.stakeMark[0]}+${data.stakeMark[1]}`
data.stakeMark = `K${data.stakeMark[0]}+${data.stakeMark[1]}`;
}else{
data.stakeMark = ''
data.stakeMark = '';
}
request({

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/firstResponders/index.vue

@ -86,7 +86,7 @@ export default {
dialogData: null,
isFirst: true,
valueData: "",
params: "value",
params: "name",
queryParams: ["phone", "name"],
};
},

Loading…
Cancel
Save