|
@@ -29,6 +29,7 @@ import {
|
|
|
Dialog,
|
|
|
ImagePreview,
|
|
|
Popup,
|
|
|
+ Tab,Tabs
|
|
|
} from 'vant';
|
|
|
/** @ts-ignore */
|
|
|
import icon_communication from '@/assets/icons/incident/communication@2x.png';
|
|
@@ -248,11 +249,9 @@ export default defineComponent({
|
|
|
autoplay="true"
|
|
|
style="width:100%"></video>
|
|
|
</Popup>
|
|
|
- <Collapse v-model={activeNames.value}>
|
|
|
- <CollapseItem
|
|
|
- title="事件信息"
|
|
|
- name="事件信息"
|
|
|
- v-slots={{ icon: <img class="icon-i" src={icon_information} /> }}>
|
|
|
+
|
|
|
+ <van-tabs color="#1777ff" title-active-color="#1777ff" v-model:active={activeNames.value}>
|
|
|
+ <van-tab title="事件信息">
|
|
|
<p>
|
|
|
事件类型:
|
|
|
{
|
|
@@ -286,11 +285,11 @@ export default defineComponent({
|
|
|
<p>上报人员:{store.incidentDetail?.baseInfo?.createBy}</p>
|
|
|
<p>联系电话:{store.incidentDetail?.baseInfo?.expr1}</p>
|
|
|
<p>上报单位:{store.incidentDetail?.baseInfo?.createDept ?? '-'}</p>
|
|
|
- </CollapseItem>
|
|
|
- <CollapseItem
|
|
|
- title="应急预案"
|
|
|
- name="应急预案"
|
|
|
- v-slots={{ icon: <img class="icon-i" src={icon_yjya} /> }}>
|
|
|
+
|
|
|
+
|
|
|
+ </van-tab>
|
|
|
+
|
|
|
+ <van-tab title="应急预案">
|
|
|
{console.log(planOptions.value)}
|
|
|
{planOptions.value?.map((d, index) => (
|
|
|
<div style={"margin-bottom:10px"}>
|
|
@@ -300,11 +299,9 @@ export default defineComponent({
|
|
|
<div style={"font-size:10px;padding-left:15px"}>{d[1]}</div>
|
|
|
</div>
|
|
|
))}
|
|
|
- </CollapseItem>
|
|
|
- <CollapseItem
|
|
|
- title="处置方案"
|
|
|
- name="处置方案"
|
|
|
- v-slots={{ icon: <img class="icon-i" src={icon_plan} /> }}>
|
|
|
+ </van-tab>
|
|
|
+
|
|
|
+ <van-tab title="处置方案">
|
|
|
<Collapse v-model={activeoplanNames.value}>
|
|
|
{store.incidentDetail.task?.map((i) => (
|
|
|
<div class="cz-item">
|
|
@@ -329,22 +326,20 @@ export default defineComponent({
|
|
|
</div>
|
|
|
))}
|
|
|
</Collapse>
|
|
|
- </CollapseItem>
|
|
|
- <CollapseItem
|
|
|
- title="处置详情"
|
|
|
- name="处置详情"
|
|
|
- v-slots={{ icon: <img class="icon-i" src={icon_detail} /> }}>
|
|
|
+ </van-tab>
|
|
|
+
|
|
|
+
|
|
|
+ <van-tab title="处置详情">
|
|
|
<div>
|
|
|
{process.value?.map((i, index) => (
|
|
|
<div class="czxq-item">
|
|
|
<div class="cz-yuan"></div>
|
|
|
<div
|
|
|
class="cz-line"
|
|
|
- style={`display:${
|
|
|
- index === (process.value?.length ?? 0) - 1
|
|
|
+ style={`display:${index === (process.value?.length ?? 0) - 1
|
|
|
? 'none'
|
|
|
: 'block'
|
|
|
- }`}></div>
|
|
|
+ }`}></div>
|
|
|
<div class="cz-time"> {i.createTime}</div>
|
|
|
<div class="cz-des">
|
|
|
{' '}
|
|
@@ -357,11 +352,10 @@ export default defineComponent({
|
|
|
<div class="cz-yuan"></div>
|
|
|
<div
|
|
|
class="cz-line"
|
|
|
- style={`display:${
|
|
|
- index === ((i.child ?? [])?.length ?? 0) - 1
|
|
|
+ style={`display:${index === ((i.child ?? [])?.length ?? 0) - 1
|
|
|
? 'none'
|
|
|
: 'block'
|
|
|
- }`}></div>
|
|
|
+ }`}></div>
|
|
|
<div class="cz-time"> {ii.createTime}</div>
|
|
|
<div class="cz-des">
|
|
|
<div style={'margin-bottom:8px'}>{ii.des}</div>
|
|
@@ -409,7 +403,7 @@ export default defineComponent({
|
|
|
BaseMediaUrl + iim;
|
|
|
videop.value.play();
|
|
|
videop.value.currentTime = 0;
|
|
|
- } catch (error) {}
|
|
|
+ } catch (error) { }
|
|
|
}}
|
|
|
src={icon_video}
|
|
|
style={
|
|
@@ -454,21 +448,233 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </CollapseItem>
|
|
|
- <CollapseItem
|
|
|
- title="融合通信"
|
|
|
- name="融合通信"
|
|
|
- v-slots={{ icon: <img class="icon-i" src={icon_communication} /> }}>
|
|
|
- <Button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- onClick={() => {
|
|
|
- dohs();
|
|
|
- }}>
|
|
|
- 发起协同会商
|
|
|
- </Button>
|
|
|
- </CollapseItem>
|
|
|
- </Collapse>
|
|
|
+ </van-tab>
|
|
|
+
|
|
|
+
|
|
|
+ </van-tabs>
|
|
|
+
|
|
|
+ {
|
|
|
+ false && (<Collapse v-model={activeNames.value}>
|
|
|
+ <CollapseItem
|
|
|
+ title="事件信息"
|
|
|
+ name="事件信息"
|
|
|
+ v-slots={{ icon: <img class="icon-i" src={icon_information} /> }}>
|
|
|
+ <p>
|
|
|
+ 事件类型:
|
|
|
+ {
|
|
|
+ commonStore.globalDict['zhdd_incident_type']?.find(
|
|
|
+ (o) =>
|
|
|
+ o.dictValue.toString() ===
|
|
|
+ store.incidentDetail?.baseInfo?.type?.toString(),
|
|
|
+ )?.dictLabel
|
|
|
+ }
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ 事件等级:
|
|
|
+ {
|
|
|
+ commonStore.globalDict['zhdd_incident_level']?.find(
|
|
|
+ (o) =>
|
|
|
+ o.dictValue.toString() ===
|
|
|
+ store.incidentDetail?.baseInfo?.level?.toString(),
|
|
|
+ )?.dictLabel
|
|
|
+ }
|
|
|
+ </p>
|
|
|
+ <p>事件时间:{store.incidentDetail?.baseInfo?.createTime}</p>
|
|
|
+ <p>事件地点:{store.incidentDetail?.baseInfo?.addr}</p>
|
|
|
+ <p>
|
|
|
+ 事件来源:
|
|
|
+ {commonStore.globalDict['zhdd_incident_source']?.find(
|
|
|
+ (i) =>
|
|
|
+ i.dictValue?.toString() ===
|
|
|
+ (store.incidentDetail?.baseInfo?.source ?? '').toString(),
|
|
|
+ )?.dictLabel ?? '-'}
|
|
|
+ </p>
|
|
|
+ <p>上报人员:{store.incidentDetail?.baseInfo?.createBy}</p>
|
|
|
+ <p>联系电话:{store.incidentDetail?.baseInfo?.expr1}</p>
|
|
|
+ <p>上报单位:{store.incidentDetail?.baseInfo?.createDept ?? '-'}</p>
|
|
|
+ </CollapseItem>
|
|
|
+ <CollapseItem
|
|
|
+ title="应急预案"
|
|
|
+ name="应急预案"
|
|
|
+ v-slots={{ icon: <img class="icon-i" src={icon_yjya} /> }}>
|
|
|
+ {console.log(planOptions.value)}
|
|
|
+ {planOptions.value?.map((d, index) => (
|
|
|
+ <div style={"margin-bottom:10px"}>
|
|
|
+ <div style={"color:#333"}>
|
|
|
+ {index + 1}、{d[0]}
|
|
|
+ </div>
|
|
|
+ <div style={"font-size:10px;padding-left:15px"}>{d[1]}</div>
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ </CollapseItem>
|
|
|
+ <CollapseItem
|
|
|
+ title="处置方案"
|
|
|
+ name="处置方案"
|
|
|
+ v-slots={{ icon: <img class="icon-i" src={icon_plan} /> }}>
|
|
|
+ <Collapse v-model={activeoplanNames.value}>
|
|
|
+ {store.incidentDetail.task?.map((i) => (
|
|
|
+ <div class="cz-item">
|
|
|
+ {i.taskName}
|
|
|
+ {/* <CollapseItem title={i.taskName} name={i.taskName}>
|
|
|
+ <div class="cz-zh">
|
|
|
+ {i.taskPersonVos
|
|
|
+ ?.map((p) => {
|
|
|
+ return p.person + p.position;
|
|
|
+ })
|
|
|
+ .join('、')}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="zl">指令</div>
|
|
|
+ {i.taskCommandVos.map((c, index) => (
|
|
|
+ <div>
|
|
|
+ {index + 1}、{c.command}
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ </div>
|
|
|
+ </CollapseItem> */}
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ </Collapse>
|
|
|
+ </CollapseItem>
|
|
|
+ <CollapseItem
|
|
|
+ title="处置详情"
|
|
|
+ name="处置详情"
|
|
|
+ v-slots={{ icon: <img class="icon-i" src={icon_detail} /> }}>
|
|
|
+ <div>
|
|
|
+ {process.value?.map((i, index) => (
|
|
|
+ <div class="czxq-item">
|
|
|
+ <div class="cz-yuan"></div>
|
|
|
+ <div
|
|
|
+ class="cz-line"
|
|
|
+ style={`display:${index === (process.value?.length ?? 0) - 1
|
|
|
+ ? 'none'
|
|
|
+ : 'block'
|
|
|
+ }`}></div>
|
|
|
+ <div class="cz-time"> {i.createTime}</div>
|
|
|
+ <div class="cz-des">
|
|
|
+ {' '}
|
|
|
+ {i.des}
|
|
|
+ <div
|
|
|
+ style={'margin-top: 4px;'}
|
|
|
+ class={i.taskId === currenttaskid.value ? 'active' : ''}>
|
|
|
+ {(i.child ?? [])?.map((ii, index) => (
|
|
|
+ <div class="czxq-item">
|
|
|
+ <div class="cz-yuan"></div>
|
|
|
+ <div
|
|
|
+ class="cz-line"
|
|
|
+ style={`display:${index === ((i.child ?? [])?.length ?? 0) - 1
|
|
|
+ ? 'none'
|
|
|
+ : 'block'
|
|
|
+ }`}></div>
|
|
|
+ <div class="cz-time"> {ii.createTime}</div>
|
|
|
+ <div class="cz-des">
|
|
|
+ <div style={'margin-bottom:8px'}>{ii.des}</div>
|
|
|
+
|
|
|
+ <div
|
|
|
+ class={'img'}
|
|
|
+ style={
|
|
|
+ ii.pic === '' && ii.video === ''
|
|
|
+ ? 'display:none'
|
|
|
+ : ''
|
|
|
+ }>
|
|
|
+ {((ii.pic ?? '') + ',' + (ii.video ?? '') ?? '')
|
|
|
+ .split(',')
|
|
|
+ .map((iim, idxq) => {
|
|
|
+ iim = iim ?? '';
|
|
|
+ if (isImage({ fileName: iim, url: iim })) {
|
|
|
+ return (
|
|
|
+ <img
|
|
|
+ src={BaseMediaUrl + iim}
|
|
|
+ onClick={() => {
|
|
|
+ ImagePreview({
|
|
|
+ images: ii.pic
|
|
|
+ .split(',')
|
|
|
+ .filter((cc) => cc != '')
|
|
|
+ .map((cc) => {
|
|
|
+ return BaseMediaUrl + cc;
|
|
|
+ }),
|
|
|
+ startPosition: idxq,
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ style={
|
|
|
+ 'width:20px;height:30px;object-fit: contain;margin-right:10px;padding:0 10px;background:rgb(240 236 236);'
|
|
|
+ }></img>
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isVideo({ fileName: iim, url: iim })) {
|
|
|
+ // console.log(iim);
|
|
|
+ return (
|
|
|
+ <img
|
|
|
+ onClick={() => {
|
|
|
+ isshowprew.value = true;
|
|
|
+ try {
|
|
|
+ videopsrc.value =
|
|
|
+ BaseMediaUrl + iim;
|
|
|
+ videop.value.play();
|
|
|
+ videop.value.currentTime = 0;
|
|
|
+ } catch (error) { }
|
|
|
+ }}
|
|
|
+ src={icon_video}
|
|
|
+ style={
|
|
|
+ 'width:20px;height:30px;object-fit: contain;margin-right:10px;background:rgb(240 236 236);padding:0 10px;border-radius:4px'
|
|
|
+ }></img>
|
|
|
+ );
|
|
|
+ }
|
|
|
+ return <div></div>;
|
|
|
+ })}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+ <div style={getisbj() ? 'display:none' : ''}>
|
|
|
+ <Field
|
|
|
+ v-model={message.value}
|
|
|
+ autosize
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入"
|
|
|
+ />
|
|
|
+ <div class="cz-action">
|
|
|
+ <Button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ onClick={() => {
|
|
|
+ dosubmitdata();
|
|
|
+ }}>
|
|
|
+ 保存
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ size="small"
|
|
|
+ type="default"
|
|
|
+ onClick={() => {
|
|
|
+ message.value = '';
|
|
|
+ }}>
|
|
|
+ 取消
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </CollapseItem>
|
|
|
+ <CollapseItem
|
|
|
+ title="融合通信"
|
|
|
+ name="融合通信"
|
|
|
+ v-slots={{ icon: <img class="icon-i" src={icon_communication} /> }}>
|
|
|
+ <Button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ onClick={() => {
|
|
|
+ dohs();
|
|
|
+ }}>
|
|
|
+ 发起协同会商
|
|
|
+ </Button>
|
|
|
+ </CollapseItem>
|
|
|
+ </Collapse>)
|
|
|
+ }
|
|
|
+
|
|
|
</div>
|
|
|
);
|
|
|
},
|