Compare commits
10 Commits
033e123edc
...
29ace46c69
Author | SHA1 | Date |
---|---|---|
|
29ace46c69 | |
|
fe85cd370f | |
|
0d402302f7 | |
|
34ac0b016b | |
|
4354abdf25 | |
|
9c8785b8ce | |
|
e34f47680b | |
|
a71fc5326e | |
|
9bba3077ca | |
|
4580df0182 |
Binary file not shown.
|
@ -8,93 +8,36 @@
|
|||
</div>
|
||||
<div class="form-container">
|
||||
<div v-if="applySuccess">
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:model="formName"
|
||||
name="basic"
|
||||
:label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }"
|
||||
labelAlign="left"
|
||||
autocomplete="off"
|
||||
>
|
||||
<a-form ref="formRef" :model="formName" name="basic" :label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }" labelAlign="left" autocomplete="off">
|
||||
<div class="base-info flex-row-start">
|
||||
<a-form-item
|
||||
label="申请标题"
|
||||
name="title"
|
||||
:rules="[{ required: true, message: '请输入申请标题' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入能力申请标题"
|
||||
v-model:value="formName.title"
|
||||
/>
|
||||
<a-form-item label="申请标题" name="title" :rules="[{ required: true, message: '请输入申请标题' }]">
|
||||
<a-input placeholder="请输入能力申请标题" v-model:value="formName.title" />
|
||||
</a-form-item>
|
||||
<!-- 西海岸-摄像头-增加过期时间 -->
|
||||
<a-form-item
|
||||
v-if="isCamera && isXiHaiAn"
|
||||
label="过期时间"
|
||||
name="expireDate"
|
||||
:rules="[{ required: true, message: '请选择过期时间' }]"
|
||||
style="margin-left: 22px"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.expireDate"
|
||||
placeholder="请选择过期时间"
|
||||
style="width: 200px"
|
||||
:options="expireDateOptions"
|
||||
></a-select>
|
||||
<a-form-item v-if="isCamera && isXiHaiAn" label="过期时间" name="expireDate"
|
||||
:rules="[{ required: true, message: '请选择过期时间' }]" style="margin-left: 22px">
|
||||
<a-select v-model:value="formName.expireDate" placeholder="请选择过期时间" style="width: 200px"
|
||||
:options="expireDateOptions"></a-select>
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div class="base-info">
|
||||
<a-form-item
|
||||
label="申请人信息"
|
||||
name="user"
|
||||
:rules="[{ required: true, message: '请输入申请人' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人"
|
||||
v-model:value="formName.user"
|
||||
disabled
|
||||
/>
|
||||
<a-form-item label="申请人信息" name="user" :rules="[{ required: true, message: '请输入申请人' }]">
|
||||
<a-input placeholder="请输入申请人" v-model:value="formName.user" disabled />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
style="margin: 0 22px"
|
||||
label="电话"
|
||||
name="phone"
|
||||
:rules="[
|
||||
<a-form-item style="margin: 0 22px" label="电话" name="phone" :rules="[
|
||||
{
|
||||
required: true,
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: '请输入正确的电话号码',
|
||||
},
|
||||
]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人电话"
|
||||
v-model:value="formName.phone"
|
||||
/>
|
||||
]">
|
||||
<a-input placeholder="请输入申请人电话" v-model:value="formName.phone" />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
label="单位"
|
||||
name="unit"
|
||||
:rules="[{ required: true, message: '请输入单位' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入单位"
|
||||
v-model:value="formName.unit"
|
||||
disabled
|
||||
v-if="deptFlage"
|
||||
/>
|
||||
<a-select
|
||||
v-else
|
||||
placeholder="请选择归属部门"
|
||||
v-model:value="formName.unit"
|
||||
@change="deptIdChangeFunction"
|
||||
>
|
||||
<a-select-option
|
||||
v-for="(item, index) in deptNameAll"
|
||||
:key="`${index}-${item}`"
|
||||
:value="item.name"
|
||||
>
|
||||
<a-form-item label="单位" name="unit" :rules="[{ required: true, message: '请输入单位' }]">
|
||||
<a-input placeholder="请输入单位" v-model:value="formName.unit" disabled v-if="deptFlage" />
|
||||
<a-select v-else placeholder="请选择归属部门" v-model:value="formName.unit" @change="deptIdChangeFunction">
|
||||
<a-select-option v-for="(item, index) in deptNameAll" :key="`${index}-${item}`" :value="item.name">
|
||||
{{ item.name }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
|
@ -102,102 +45,61 @@
|
|||
</div>
|
||||
<div class="base-info" v-if="flag">
|
||||
<div style="margin-bottom: 24px">
|
||||
<a-form-item
|
||||
style="margin-bottom: 0"
|
||||
label="应用系统"
|
||||
name="applicationSystem"
|
||||
:rules="[{ required: true, message: '请选择应用系统' }]"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.applicationSystem"
|
||||
show-search
|
||||
placeholder="请选择应用系统"
|
||||
style="width: 230px"
|
||||
:options="systemOptions"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@change="systemHandleChange"
|
||||
@search="systemHandleSearch"
|
||||
></a-select>
|
||||
<a-form-item style="margin-bottom: 0" label="应用系统" name="applicationSystem"
|
||||
:rules="[{ required: true, message: '请选择应用系统' }]">
|
||||
<a-select v-model:value="formName.applicationSystem" show-search placeholder="请选择应用系统"
|
||||
style="width: 230px" :options="systemOptions" @focus="handleFocus" @blur="handleBlur"
|
||||
@change="systemHandleChange" @search="systemHandleSearch"></a-select>
|
||||
</a-form-item>
|
||||
<span
|
||||
style="font-size: 12px; color: #666; padding-left: 106px"
|
||||
>
|
||||
<span style="font-size: 12px; color: #666; padding-left: 106px">
|
||||
如选项没有系统请新增
|
||||
</span>
|
||||
</div>
|
||||
<a-form-item
|
||||
class="applicationScene"
|
||||
label="应用领域"
|
||||
name="applicationScene"
|
||||
:rules="[{ required: true, message: '请选择应用领域' }]"
|
||||
style="width: 6.93rem"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.applicationScene"
|
||||
:options="applicationSceneOpthion"
|
||||
mode="tags"
|
||||
:size="size"
|
||||
placeholder="请选择应用领域"
|
||||
:filterOption="false"
|
||||
:searchValue="false"
|
||||
style="width: 5.87rem"
|
||||
></a-select>
|
||||
<a-form-item class="applicationScene" label="应用领域" name="applicationScene"
|
||||
:rules="[{ required: true, message: '请选择应用领域' }]" style="width: 6.93rem">
|
||||
<a-select v-model:value="formName.applicationScene" :options="applicationSceneOpthion" mode="tags"
|
||||
:size="size" placeholder="请选择应用领域" :filterOption="false" :searchValue="false"
|
||||
style="width: 5.87rem"></a-select>
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<a-form-item label="需求依据" name="applicationBackground" :rules="[
|
||||
{ required: true, message: '请输入需求依据' },
|
||||
{ min: 50, message: '需求依据最少为50个字' },
|
||||
]">
|
||||
<a-textarea placeholder="请输入需求依据" v-model:value="formName.applicationBackground" :rows="4" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a-form-item
|
||||
label="需求依据"
|
||||
name="applicationBackground"
|
||||
:rules="[
|
||||
{ required: true, message: '请输入需求依据' },
|
||||
{ min: 50, message: '需求依据最少为50个字' },
|
||||
]"
|
||||
>
|
||||
<a-textarea
|
||||
placeholder="请输入需求依据"
|
||||
v-model:value="formName.applicationBackground"
|
||||
:rows="4"
|
||||
/>
|
||||
<!-- 西海岸--附件上传 -->
|
||||
<div v-if="iskfq && isXiHaiAn">
|
||||
<a-row style="margin-top: 0.4rem">
|
||||
<a-col :span="24">
|
||||
<a-form-item name="attachment" label="附件上传" class="introduction">
|
||||
<a-upload :max-count="1" accept=".doc,.docx,pdf" v-model:file-list="fileList"
|
||||
:action="`${apiURL}/upload`" @remove="handleRemove" @change="roomUpload">
|
||||
<a-button>
|
||||
<upload-outlined>选择上传附件</upload-outlined>
|
||||
</a-button>
|
||||
<span>
|
||||
支持doc、docx、PDF等格式支撑材料上传,文件大小不超过100M
|
||||
</span>
|
||||
</a-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-left: 106px">
|
||||
<a href="/static/download/感知资源申请表.doc" download="感知资源申请表">感知资源申请表模板下载</a>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
|
||||
<div class="bottom-btn">
|
||||
<a-button
|
||||
style="
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
margin-right: 20px;
|
||||
background: #e1edfa;
|
||||
color: #0087ff;
|
||||
font-size: 14px;
|
||||
border-radius: 6px;
|
||||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
"
|
||||
type="primary"
|
||||
html-type="cancle"
|
||||
@click="resetFields()"
|
||||
>
|
||||
<a-button class="cancel-apply" type="primary" html-type="cancle" @click="resetFields()">
|
||||
退出申请
|
||||
</a-button>
|
||||
<a-button
|
||||
style="
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
border-radius: 6px;
|
||||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
"
|
||||
type="primary"
|
||||
html-type="submit"
|
||||
@click="processStartHandle()"
|
||||
>
|
||||
<a-button class="confirm-apply" type="primary" html-type="submit" @click="processStartHandle()">
|
||||
提交申请
|
||||
</a-button>
|
||||
</div>
|
||||
|
@ -279,6 +181,7 @@
|
|||
label: '90天',
|
||||
},
|
||||
]
|
||||
const apiURL = window.SITE_CONFIG.apiURL
|
||||
|
||||
if (!applyAll) {
|
||||
list.value.map((item) => {
|
||||
|
@ -307,6 +210,9 @@
|
|||
const isXiHaiAn = ref(whoShow.itShowXiHaiAn)
|
||||
// 西海岸-判断是否是基础设施-摄像头
|
||||
const isCamera = ref(false)
|
||||
// 西海岸-是否是开发区公安分局,是的话,增加上传附件字段
|
||||
let note1 = JSON.parse(list.value[0] && list.value[0].arr && list.value[0].arr[0].note1 || "[]");
|
||||
let iskfq = ref(note1.some(v => v.managementUnitName == '开发区公安局' || v.managementUnitName == '开发区公安分局'))
|
||||
if (
|
||||
list.value[0] &&
|
||||
list.value[0].arr &&
|
||||
|
@ -560,6 +466,7 @@
|
|||
handleWrjApply(formName)
|
||||
return
|
||||
}
|
||||
|
||||
submitApply(formName).then((res) => {
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
console.log('能力申请================>', res)
|
||||
|
@ -726,34 +633,6 @@
|
|||
])
|
||||
const systemOptions = ref([])
|
||||
const systemOptions2 = ref([])
|
||||
const handleChange = (info) => {
|
||||
if (info.file.status !== 'uploading') {
|
||||
// console.log(info.file, info.fileList)
|
||||
}
|
||||
if (info.file.status === 'done') {
|
||||
message.success(`${info.file.name} 上传成功`)
|
||||
formName.enclosure = info.file.response.data
|
||||
formName.enclosureName = info.file.name
|
||||
} else if (info.file.status === 'error') {
|
||||
message.error(`${info.file.name} 上传失败`)
|
||||
}
|
||||
}
|
||||
const beforeUpload = (file) => {
|
||||
const isPNG =
|
||||
file.type === 'image/png' ||
|
||||
'image/doc' ||
|
||||
'image/docx' ||
|
||||
'image/jpg' ||
|
||||
'image/png' ||
|
||||
'image/jpeg' ||
|
||||
'image/pdf' ||
|
||||
'image/xlxs' ||
|
||||
'image/ppt'
|
||||
if (!isPNG) {
|
||||
message.error(`上传失败`)
|
||||
}
|
||||
return isPNG || Upload.LIST_IGNORE
|
||||
}
|
||||
const fileList = ref([])
|
||||
// 应用系统下拉
|
||||
const systemHandleChange = (value) => {
|
||||
|
@ -868,9 +747,18 @@
|
|||
}
|
||||
soldierApply(_data)
|
||||
.then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
message.success(res.data.msg)
|
||||
jumpToDetailsPageconetent()
|
||||
if (res.data.msg === 'success') {
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
setTimeout(() => {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
// 基础设施类型
|
||||
facilitiesType: list.value[0] && list.value[0].arr && list.value[0].arr[0] && list.value[0].arr[0].type
|
||||
},
|
||||
})
|
||||
}, 1000)
|
||||
} else {
|
||||
message.error('申请失败!')
|
||||
}
|
||||
|
@ -880,6 +768,14 @@
|
|||
})
|
||||
}
|
||||
|
||||
//文件上传成功回调
|
||||
const roomUpload = (response) => {
|
||||
if (response.file.response !== undefined) {
|
||||
fileList.value = response.fileList
|
||||
formName.attachment = response.file.response.data
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
deptIdChangeFunction,
|
||||
formRef,
|
||||
|
@ -897,11 +793,11 @@
|
|||
headers: {
|
||||
authorization: 'authorization-text',
|
||||
},
|
||||
handleChange,
|
||||
// handleChange,
|
||||
applySuccess,
|
||||
disabled,
|
||||
baseURL,
|
||||
beforeUpload,
|
||||
// beforeUpload,
|
||||
dataList,
|
||||
systemHandleChange,
|
||||
systemHandleSearch,
|
||||
|
@ -915,6 +811,9 @@
|
|||
isCamera,
|
||||
isXiHaiAn,
|
||||
expireDateOptions,
|
||||
apiURL,
|
||||
roomUpload,
|
||||
iskfq,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -1021,4 +920,29 @@
|
|||
justify-content: center;
|
||||
// position: fixed;
|
||||
}
|
||||
|
||||
.cancel-apply {
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
margin-right: 20px;
|
||||
background: #e1edfa;
|
||||
color: #0087ff;
|
||||
font-size: 14px;
|
||||
border-radius: 6px;
|
||||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.confirm-apply {
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
border-radius: 6px;
|
||||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -5,24 +5,15 @@
|
|||
<div class="infrastructrue-tab">
|
||||
<div v-for="(item, index) in tabList" :key="index" class="tabBox">
|
||||
<b class="leftType">{{ item.title }}</b>
|
||||
<el-button
|
||||
@click="nullClick"
|
||||
v-if="item.title == '视频标签'"
|
||||
type="small"
|
||||
>
|
||||
<el-button @click="nullClick" v-if="item.title == '视频标签'" type="small">
|
||||
清空
|
||||
</el-button>
|
||||
<span
|
||||
v-for="itemContent in item.content"
|
||||
:key="itemContent"
|
||||
@click="tabClick(index, itemContent)"
|
||||
:class="
|
||||
<span v-for="itemContent in item.content" :key="itemContent" @click="tabClick(index, itemContent)" :class="
|
||||
clickList[index].content.indexOf(itemContent.labelName) != -1 ||
|
||||
clickList[index].content.indexOf(itemContent) != -1
|
||||
? 'down'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
">
|
||||
{{ itemContent.labelName || itemContent }}
|
||||
</span>
|
||||
</div>
|
||||
|
@ -30,35 +21,19 @@
|
|||
|
||||
<div v-if="!room" class="roomBox">
|
||||
<div class="leftMake">
|
||||
<div
|
||||
class="leftTop"
|
||||
@click="roomResults"
|
||||
:class="roomYuyue ? 'roomBackground' : 'nullBackground'"
|
||||
>
|
||||
<div class="leftTop" @click="roomResults" :class="roomYuyue ? 'roomBackground' : 'nullBackground'">
|
||||
会议室预约
|
||||
</div>
|
||||
<div
|
||||
class="leftBottom"
|
||||
@click="result"
|
||||
:class="roomResult ? 'roomBackground' : 'nullBackground'"
|
||||
>
|
||||
<div class="leftBottom" @click="result" :class="roomResult ? 'roomBackground' : 'nullBackground'">
|
||||
预约结果
|
||||
</div>
|
||||
</div>
|
||||
<div class="roomSearch">
|
||||
<span>会议室搜索</span>
|
||||
<div class="searchInput">
|
||||
<a-input-search
|
||||
v-model:value="roomInput"
|
||||
placeholder="请输入关键词"
|
||||
enter-button="搜索"
|
||||
size="large"
|
||||
@search="onSearch"
|
||||
/>
|
||||
<a-button
|
||||
style="width: 0.8rem; height: 0.36rem; margin-left: 0.7rem"
|
||||
@click="reSetSearch"
|
||||
>
|
||||
<a-input-search v-model:value="roomInput" placeholder="请输入关键词" enter-button="搜索" size="large"
|
||||
@search="onSearch" />
|
||||
<a-button style="width: 0.8rem; height: 0.36rem; margin-left: 0.7rem" @click="reSetSearch">
|
||||
重置
|
||||
</a-button>
|
||||
</div>
|
||||
|
@ -69,40 +44,23 @@
|
|||
<div class="roomTime">
|
||||
<span>可用时间查询</span>
|
||||
<a-space direction="vertical" class="roomSpace">
|
||||
<a-date-picker
|
||||
v-model:value="roomCerateDate"
|
||||
placeholder="开始日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
<a-time-picker
|
||||
v-model:value="roomCreateTime"
|
||||
placeholder="开始时间"
|
||||
value-format="HH:mm:ss"
|
||||
:disabledHours="disabledStartHours"
|
||||
:disabledMinutes="disabledStartMinutes"
|
||||
:disabledSeconds="disabledStartSeconds"
|
||||
/>
|
||||
<a-time-picker
|
||||
v-model:value="roomEndTime"
|
||||
placeholder="结束时间"
|
||||
value-format="HH:mm:ss"
|
||||
:disabledHours="disabledEndHours"
|
||||
:disabledMinutes="disabledEndMinutes"
|
||||
:disabledSeconds="disabledEndSeconds"
|
||||
/>
|
||||
<a-date-picker v-model:value="roomCerateDate" placeholder="开始日期" value-format="YYYY-MM-DD" />
|
||||
<a-time-picker v-model:value="roomCreateTime" placeholder="开始时间" value-format="HH:mm:ss"
|
||||
:disabledHours="disabledStartHours" :disabledMinutes="disabledStartMinutes"
|
||||
:disabledSeconds="disabledStartSeconds" />
|
||||
<a-time-picker v-model:value="roomEndTime" placeholder="结束时间" value-format="HH:mm:ss"
|
||||
:disabledHours="disabledEndHours" :disabledMinutes="disabledEndMinutes"
|
||||
:disabledSeconds="disabledEndSeconds" />
|
||||
</a-space>
|
||||
</div>
|
||||
</div>
|
||||
<div class="roomItem" v-for="item in roomList" :key="item.id">
|
||||
<div class="leftImg">
|
||||
<img
|
||||
:src="
|
||||
<img :src="
|
||||
item.pic == null
|
||||
? 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fp1.itc.cn%2Fimages01%2F20201221%2F00885cf666cc4c2ab80c7b4e59259e85.jpeg&refer=http%3A%2F%2Fp1.itc.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1662707222&t=13d3246428ee80cc7519702d5eb6eb7d'
|
||||
: `${item.pic}`
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
" alt="" />
|
||||
</div>
|
||||
<div class="rightContent">
|
||||
<div class="topContent">{{ item.name }}</div>
|
||||
|
@ -115,38 +73,23 @@
|
|||
{{ item.description }}
|
||||
</div>
|
||||
</div>
|
||||
<a-button
|
||||
style="
|
||||
<a-button style="
|
||||
margin-left: 0.8rem;
|
||||
background: #e1edfa;
|
||||
color: #0087ff;
|
||||
border: none;
|
||||
border-radius: 0.06rem;
|
||||
"
|
||||
@click="appointment(item)"
|
||||
>
|
||||
" @click="appointment(item)">
|
||||
预约
|
||||
</a-button>
|
||||
</div>
|
||||
<a-pagination
|
||||
v-model:current="roomPage"
|
||||
v-model:pageSize="roomLimit"
|
||||
show-quick-jumper
|
||||
:total="roomTotal"
|
||||
:page-size-options="pageSizeOptions"
|
||||
@change="onRoomChange"
|
||||
@showSizeChange="onShowSizeChange"
|
||||
show-size-changer
|
||||
/>
|
||||
<a-pagination v-model:current="roomPage" v-model:pageSize="roomLimit" show-quick-jumper :total="roomTotal"
|
||||
:page-size-options="pageSizeOptions" @change="onRoomChange" @showSizeChange="onShowSizeChange"
|
||||
show-size-changer />
|
||||
</div>
|
||||
<div v-if="roomResult" style="display: grid">
|
||||
<a-table
|
||||
:columns="columnsRomm"
|
||||
:data-source="dataRoom"
|
||||
:filterMultiple="false"
|
||||
:align="center"
|
||||
:pagination="false"
|
||||
>
|
||||
<a-table :columns="columnsRomm" :data-source="dataRoom" :filterMultiple="false" :align="center"
|
||||
:pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'bookDate'">
|
||||
<span>
|
||||
|
@ -171,38 +114,20 @@
|
|||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
<a-pagination
|
||||
v-model:current="roomPage"
|
||||
v-model:pageSize="roomLimit"
|
||||
show-quick-jumper
|
||||
:total="roomTotal"
|
||||
:page-size-options="pageSizeOptionsChengguo"
|
||||
@change="onRoomChangeChengguo"
|
||||
@showSizeChange="onShowSizeChangeChengguo"
|
||||
show-size-changer
|
||||
/>
|
||||
<a-pagination v-model:current="roomPage" v-model:pageSize="roomLimit" show-quick-jumper :total="roomTotal"
|
||||
:page-size-options="pageSizeOptionsChengguo" @change="onRoomChangeChengguo"
|
||||
@showSizeChange="onShowSizeChangeChengguo" show-size-changer />
|
||||
</div>
|
||||
<a-modal
|
||||
v-model:visible="visibleRoom"
|
||||
width="10rem"
|
||||
title="预约详情"
|
||||
:body-style="bodystyle"
|
||||
class="modalClass"
|
||||
:footer="null"
|
||||
>
|
||||
<a-modal v-model:visible="visibleRoom" width="10rem" title="预约详情" :body-style="bodystyle" class="modalClass"
|
||||
:footer="null">
|
||||
<div class="modalResult" style="margin-bottom: 0.05rem">预约结果</div>
|
||||
<div
|
||||
style="
|
||||
<div style="
|
||||
width: 100%;
|
||||
height: 0.01rem;
|
||||
border-top: 1px solid #ccc;
|
||||
transform: scaleY(0.5);
|
||||
"
|
||||
></div>
|
||||
<div
|
||||
class="modalExamine"
|
||||
style="display: flex; flex-direction: column; margin-top: 0.2rem"
|
||||
>
|
||||
"></div>
|
||||
<div class="modalExamine" style="display: flex; flex-direction: column; margin-top: 0.2rem">
|
||||
<span style="margin-bottom: 0.2rem">
|
||||
审核结果:{{
|
||||
lookData.state == 2
|
||||
|
@ -217,29 +142,24 @@
|
|||
</span>
|
||||
</div>
|
||||
<div class="modalYuyue" style="margin-bottom: 0.05rem">预约信息</div>
|
||||
<div
|
||||
style="
|
||||
<div style="
|
||||
width: 100%;
|
||||
height: 0.01rem;
|
||||
border-top: 1px solid #ccc;
|
||||
transform: scaleY(0.5);
|
||||
"
|
||||
></div>
|
||||
"></div>
|
||||
<div class="modalTime" style="margin-top: 0.2rem">
|
||||
<div>
|
||||
预约时段:{{ lookData.bookDate }} {{ lookData.startTime }}-{{
|
||||
lookData.endTime
|
||||
}}
|
||||
</div>
|
||||
<div
|
||||
class="modalContent"
|
||||
style="
|
||||
<div class="modalContent" style="
|
||||
width: 7.5rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin: 0.15rem 0 0.15rem 0;
|
||||
"
|
||||
>
|
||||
">
|
||||
<span>预约人:{{ lookData.name }}</span>
|
||||
<span>联系方式:{{ lookData.phone }}</span>
|
||||
<span>预约部门:{{ lookData.dept }}</span>
|
||||
|
@ -249,43 +169,18 @@
|
|||
使用事项:{{ lookData.matter }}
|
||||
</div>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="appointmentRoom"
|
||||
title="会议室预约"
|
||||
width="10rem"
|
||||
@ok="handleOk"
|
||||
:body-style="bodystyle"
|
||||
class="appModal"
|
||||
:footer="null"
|
||||
>
|
||||
<a-form
|
||||
:model="formState"
|
||||
name="basic"
|
||||
:label-col="{ span: 8 }"
|
||||
:wrapper-col="{ span: 16 }"
|
||||
autocomplete="off"
|
||||
@finish="onFinish"
|
||||
@finishFailed="onFinishFailed"
|
||||
:labelAlign="labelPosition"
|
||||
>
|
||||
<a-modal v-model:visible="appointmentRoom" title="会议室预约" width="10rem" @ok="handleOk" :body-style="bodystyle"
|
||||
class="appModal" :footer="null">
|
||||
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off"
|
||||
@finish="onFinish" @finishFailed="onFinishFailed" :labelAlign="labelPosition">
|
||||
<a-row>
|
||||
<a-col :span="8">
|
||||
<a-form-item
|
||||
name="bookDate"
|
||||
label="预约日期"
|
||||
v-bind="validateInfos.bookDate"
|
||||
@blur="validate('create', { trigger: 'blur' }).catch(() => {})"
|
||||
>
|
||||
<a-date-picker
|
||||
style="width: 72%"
|
||||
v-model:value="formState.bookDate"
|
||||
value-format="YYYY-MM-DD"
|
||||
@change="handleChange"
|
||||
/>
|
||||
<a-form-item name="bookDate" label="预约日期" v-bind="validateInfos.bookDate"
|
||||
@blur="validate('create', { trigger: 'blur' }).catch(() => {})">
|
||||
<a-date-picker style="width: 72%" v-model:value="formState.bookDate" value-format="YYYY-MM-DD"
|
||||
@change="handleChange" />
|
||||
</a-form-item>
|
||||
<div
|
||||
:class="roomDateList[0] != null ? 'jinggaoD' : 'jinggaoNull'"
|
||||
>
|
||||
<div :class="roomDateList[0] != null ? 'jinggaoD' : 'jinggaoNull'">
|
||||
<div class="imgJinggao"></div>
|
||||
<span style="color: #da2a13; font-size: 0.12rem">
|
||||
当日会议室可用时段:{{ roomDateList[0] }}
|
||||
|
@ -293,40 +188,21 @@
|
|||
</div>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item
|
||||
name="startTime"
|
||||
label="预约时段"
|
||||
v-bind="validateInfos.startTime"
|
||||
style="display: flex"
|
||||
>
|
||||
<a-time-picker
|
||||
v-model:value="formState.startTime"
|
||||
placeholder="开始时间"
|
||||
value-format="HH:mm:ss"
|
||||
:disabledHours="disabledTimeHours"
|
||||
:disabledMinutes="disabledTimeMinutes"
|
||||
:disabledSeconds="disabledTimeSeconds"
|
||||
/>
|
||||
<a-form-item name="startTime" label="预约时段" v-bind="validateInfos.startTime" style="display: flex">
|
||||
<a-time-picker v-model:value="formState.startTime" placeholder="开始时间" value-format="HH:mm:ss"
|
||||
:disabledHours="disabledTimeHours" :disabledMinutes="disabledTimeMinutes"
|
||||
:disabledSeconds="disabledTimeSeconds" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-time-picker
|
||||
v-model:value="formState.endTime"
|
||||
placeholder="结束时间"
|
||||
value-format="HH:mm:ss"
|
||||
:disabledHours="disabledTimeEndHours"
|
||||
:disabledMinutes="disabledTimeEndMinutes"
|
||||
:disabledSeconds="disabledTimeEndSeconds"
|
||||
/>
|
||||
<a-time-picker v-model:value="formState.endTime" placeholder="结束时间" value-format="HH:mm:ss"
|
||||
:disabledHours="disabledTimeEndHours" :disabledMinutes="disabledTimeEndMinutes"
|
||||
:disabledSeconds="disabledTimeEndSeconds" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row style="margin-top: 0.4rem">
|
||||
<a-col :span="8">
|
||||
<a-form-item
|
||||
name="name"
|
||||
label="预约人"
|
||||
v-bind="validateInfos.name"
|
||||
>
|
||||
<a-form-item name="name" label="预约人" v-bind="validateInfos.name">
|
||||
<a-input v-model:value="formState.name" style="width: 72%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
@ -336,42 +212,23 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item
|
||||
name="dept"
|
||||
label="预约部门"
|
||||
v-bind="validateInfos.dept"
|
||||
>
|
||||
<a-form-item name="dept" label="预约部门" v-bind="validateInfos.dept">
|
||||
<a-input v-model:value="formState.dept" style="width: 72%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row style="margin-top: 0.4rem">
|
||||
<a-col :span="24">
|
||||
<a-form-item
|
||||
name="matter"
|
||||
v-bind="validateInfos.matter"
|
||||
label="使用事项"
|
||||
class="introduction"
|
||||
>
|
||||
<a-form-item name="matter" v-bind="validateInfos.matter" label="使用事项" class="introduction">
|
||||
<a-textarea v-model:value="formState.matter" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row style="margin-top: 0.4rem">
|
||||
<a-col :span="24">
|
||||
<a-form-item
|
||||
name="uploadRoom"
|
||||
label="附件上传"
|
||||
class="introduction"
|
||||
>
|
||||
<a-upload
|
||||
:max-count="1"
|
||||
accept=".doc,.docx,pdf"
|
||||
v-model:file-list="fileList"
|
||||
:action="`${apiURL}/upload`"
|
||||
@remove="handleRemove"
|
||||
@change="roomUpload"
|
||||
>
|
||||
<a-form-item name="uploadRoom" label="附件上传" class="introduction">
|
||||
<a-upload :max-count="1" accept=".doc,.docx,pdf" v-model:file-list="fileList"
|
||||
:action="`${apiURL}/upload`" @remove="handleRemove" @change="roomUpload">
|
||||
<a-button>
|
||||
<upload-outlined>选择上传附件</upload-outlined>
|
||||
</a-button>
|
||||
|
@ -382,18 +239,11 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item
|
||||
:wrapper-col="{ span: 14, offset: 4 }"
|
||||
style="text-align: center; margin-top: 0.4rem"
|
||||
>
|
||||
<a-form-item :wrapper-col="{ span: 14, offset: 4 }" style="text-align: center; margin-top: 0.4rem">
|
||||
<a-button @click="appointmentRoom = false" type="primary" danger>
|
||||
取消
|
||||
</a-button>
|
||||
<a-button
|
||||
style="margin-left: 10px"
|
||||
type="primary"
|
||||
@click="onSubmit"
|
||||
>
|
||||
<a-button style="margin-left: 10px" type="primary" @click="onSubmit">
|
||||
提交
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
|
@ -423,47 +273,23 @@
|
|||
<!-- 右侧 -->
|
||||
<div class="contentRight">
|
||||
<div class="searchInput" v-if="isXiHaiAn">
|
||||
<a-input-search
|
||||
v-model:value="mapSearchParam.cameraName"
|
||||
placeholder="请输入关键词"
|
||||
enter-button="搜索"
|
||||
size="large"
|
||||
@change="(e) => getCamera(true, e.target.value)"
|
||||
/>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="width: 0.8rem; height: 0.36rem; margin-left: 0.7rem"
|
||||
@click="clean"
|
||||
>
|
||||
<a-input-search v-model:value="mapSearchParam.cameraName" placeholder="请输入关键词" enter-button="搜索"
|
||||
size="large" @change="(e) => getCamera(true, e.target.value)" />
|
||||
<a-button type="primary" style="width: 0.8rem; height: 0.36rem; margin-left: 0.7rem" @click="clean">
|
||||
重置
|
||||
</a-button>
|
||||
</div>
|
||||
<i class="boundary"></i>
|
||||
<!-- 批量预览 -->
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="batchPreview"
|
||||
class="buttonAdd"
|
||||
v-if="isXiHaiAn"
|
||||
>
|
||||
<a-button type="primary" @click="batchPreview" class="buttonAdd" v-if="isXiHaiAn">
|
||||
批量预览
|
||||
</a-button>
|
||||
<!-- 添加至申购车 -->
|
||||
<a-button
|
||||
v-if="isXiHaiAn"
|
||||
type="primary"
|
||||
@click="addShoppingCart"
|
||||
class="buttonAdd"
|
||||
>
|
||||
<a-button v-if="isXiHaiAn" type="primary" @click="addShoppingCart" class="buttonAdd">
|
||||
添加至申购车
|
||||
</a-button>
|
||||
<!-- 一键申请 -->
|
||||
<a-button
|
||||
v-if="isXiHaiAn"
|
||||
type="primary"
|
||||
@click="apply"
|
||||
class="buttonAdd"
|
||||
>
|
||||
<a-button v-if="isXiHaiAn" type="primary" @click="apply" class="buttonAdd">
|
||||
一键申请
|
||||
</a-button>
|
||||
<a-button v-else type="primary" @click="goToWeb" class="buttonAdd">
|
||||
|
@ -473,39 +299,27 @@
|
|||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="infrastructrue-table" v-if="!wrjFlag">
|
||||
<a-table
|
||||
class="ant-table-striped"
|
||||
:dataSource="dataSource"
|
||||
:columns="columns"
|
||||
:scroll="{ y: tableHeight }"
|
||||
rowKey="channelId"
|
||||
:rowClassName="
|
||||
<a-table class="ant-table-striped" :dataSource="dataSource" :columns="columns" :scroll="{ y: tableHeight }"
|
||||
rowKey="channelId" :rowClassName="
|
||||
(record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
"
|
||||
:pagination="pagination"
|
||||
@change="handleTableChange"
|
||||
:row-selection="{
|
||||
" :pagination="pagination" @change="handleTableChange" :row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onSelect: onSelectChange,
|
||||
onSelectAll: onSelectAll,
|
||||
}"
|
||||
:loading="loadingCamera"
|
||||
>
|
||||
}" :loading="loadingCamera">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="isXiHaiAn && column.dataIndex === 'status'">
|
||||
<span>{{ statusText[record.status] || '' }}</span>
|
||||
</template>
|
||||
<template v-if="column.dataIndex === 'operation'">
|
||||
<a
|
||||
@click="
|
||||
<a @click="
|
||||
openVideo(
|
||||
record.channelCode ||
|
||||
record.channelId ||
|
||||
record.channelCode.channelId,
|
||||
record
|
||||
)
|
||||
"
|
||||
>
|
||||
">
|
||||
预览
|
||||
</a>
|
||||
</template>
|
||||
|
@ -514,25 +328,13 @@
|
|||
</div>
|
||||
<!-- 西海岸-无人机、单兵设备 -->
|
||||
<div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag">
|
||||
<a-table
|
||||
class="ant-table-striped"
|
||||
:dataSource="dataSource2"
|
||||
:columns="columns2"
|
||||
:scroll="{ y: tableHeight }"
|
||||
rowKey="channelId"
|
||||
:rowClassName="
|
||||
<a-table class="ant-table-striped" :dataSource="dataSource2" :columns="columns2" :scroll="{ y: tableHeight }"
|
||||
rowKey="channelId" :rowClassName="
|
||||
(record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
"
|
||||
:pagination="pagination"
|
||||
@change="handleTableChange"
|
||||
>
|
||||
" :pagination="pagination" @change="handleTableChange">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.dataIndex === 'operation'">
|
||||
<a-button
|
||||
@click="goToApply(record)"
|
||||
type="link"
|
||||
:disabled="record.state != 1"
|
||||
>
|
||||
<a-button @click="goToApply(record)" type="link" :disabled="record.state != 1">
|
||||
申请
|
||||
</a-button>
|
||||
<a-button @click="showWrj(record)" type="link">详情</a-button>
|
||||
|
@ -541,19 +343,10 @@
|
|||
</a-table>
|
||||
</div>
|
||||
<!-- 单个预览弹窗 -->
|
||||
<a-modal
|
||||
wrapClassName="single-preview-modal"
|
||||
v-model:visible="visible"
|
||||
title="视频预览"
|
||||
:width="960"
|
||||
destroyOnClose
|
||||
>
|
||||
<a-modal wrapClassName="single-preview-modal" v-model:visible="visible" title="视频预览" :width="960" destroyOnClose>
|
||||
<template #footer></template>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div
|
||||
style="width: 100%; height: 100%; position: relative"
|
||||
v-show="isXiHaiAn"
|
||||
>
|
||||
<div style="width: 100%; height: 100%; position: relative" v-show="isXiHaiAn">
|
||||
<!-- 西海岸--预览视频--遮罩 todo-->
|
||||
<div class="video-cover" @click="videoShowMsg"></div>
|
||||
<div class="waterMark waterMark-left-top">
|
||||
|
@ -574,138 +367,70 @@
|
|||
</a-modal>
|
||||
|
||||
<!-- 图片预览 -->
|
||||
<a-modal
|
||||
wrapClassName="single-preview-modal"
|
||||
v-model:visible="picVisible"
|
||||
title="图片预览"
|
||||
:width="960"
|
||||
destroyOnClose
|
||||
>
|
||||
<a-modal wrapClassName="single-preview-modal" v-model:visible="picVisible" title="图片预览" :width="960"
|
||||
destroyOnClose>
|
||||
<template #footer></template>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<a-image :src="options.src" />
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 批量预览图片弹窗 -->
|
||||
<a-modal
|
||||
wrapClassName="batch-preview-modal"
|
||||
v-model:visible="batchPicVisible"
|
||||
title="图片批量预览"
|
||||
:width="1060"
|
||||
destroyOnClose
|
||||
@cancel="videoClean"
|
||||
>
|
||||
<a-modal wrapClassName="batch-preview-modal" v-model:visible="batchPicVisible" title="图片批量预览" :width="1060"
|
||||
destroyOnClose @cancel="videoClean">
|
||||
<template #footer></template>
|
||||
<div class="batch-video">
|
||||
<div
|
||||
v-for="item in videoList"
|
||||
:key="item.id"
|
||||
style="width: 100%; height: 100%"
|
||||
>
|
||||
<a-image
|
||||
width="500px"
|
||||
height="281px"
|
||||
:src="item.options.src"
|
||||
fallback="data:image/png;base64,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"
|
||||
/>
|
||||
<div v-for="item in videoList" :key="item.id" style="width: 100%; height: 100%">
|
||||
<a-image width="500px" height="281px" :src="item.options.src"
|
||||
fallback="data:image/png;base64,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" />
|
||||
</div>
|
||||
</div>
|
||||
<a-pagination
|
||||
v-model:current="current"
|
||||
:total="videoTotal"
|
||||
defaultPageSize="4"
|
||||
:showSizeChanger="false"
|
||||
@change="batchPicturePreview"
|
||||
show-less-items
|
||||
/>
|
||||
<a-pagination v-model:current="current" :total="videoTotal" defaultPageSize="4" :showSizeChanger="false"
|
||||
@change="batchPicturePreview" show-less-items />
|
||||
</a-modal>
|
||||
|
||||
<!-- 批量预览视频弹窗 -->
|
||||
<a-modal
|
||||
wrapClassName="batch-preview-modal"
|
||||
v-model:visible="batchVisible"
|
||||
title="视频批量预览"
|
||||
:width="1060"
|
||||
destroyOnClose
|
||||
@cancel="videoClean"
|
||||
>
|
||||
<a-modal wrapClassName="batch-preview-modal" v-model:visible="batchVisible" title="视频批量预览" :width="1060"
|
||||
destroyOnClose @cancel="videoClean">
|
||||
<template #footer></template>
|
||||
<div class="batch-video">
|
||||
<div
|
||||
v-for="(item, index) in videoList"
|
||||
:key="item.id"
|
||||
style="width: 100%; height: 100%; position: relative"
|
||||
>
|
||||
<div v-for="(item, index) in videoList" :key="item.id" style="width: 100%; height: 100%; position: relative">
|
||||
<!-- 批量预览视频--遮罩 -->
|
||||
<div
|
||||
class="batch-video-cover"
|
||||
@click="videoShowMsg(index)"
|
||||
v-show="isXiHaiAn"
|
||||
></div>
|
||||
<div
|
||||
class="batch-waterMark batch-waterMark-left-top"
|
||||
v-show="isXiHaiAn"
|
||||
>
|
||||
<div class="batch-video-cover" @click="videoShowMsg(index)" v-show="isXiHaiAn"></div>
|
||||
<div class="batch-waterMark batch-waterMark-left-top" v-show="isXiHaiAn">
|
||||
{{ userInfo.usernameShow }}
|
||||
</div>
|
||||
<div
|
||||
class="batch-waterMark batch-waterMark-right-top"
|
||||
v-show="isXiHaiAn"
|
||||
>
|
||||
<div class="batch-waterMark batch-waterMark-right-top" v-show="isXiHaiAn">
|
||||
{{ userInfo.realNameShow }}
|
||||
</div>
|
||||
<div
|
||||
class="batch-waterMark batch-waterMark-left-bottom"
|
||||
v-show="isXiHaiAn"
|
||||
>
|
||||
<div class="batch-waterMark batch-waterMark-left-bottom" v-show="isXiHaiAn">
|
||||
{{ userInfo.usernameShow }}
|
||||
</div>
|
||||
<div
|
||||
class="batch-waterMark batch-waterMark-right-bottom"
|
||||
v-show="isXiHaiAn"
|
||||
>
|
||||
<div class="batch-waterMark batch-waterMark-right-bottom" v-show="isXiHaiAn">
|
||||
{{ userInfo.realNameShow }}
|
||||
</div>
|
||||
<p></p>
|
||||
<vue3VideoPlay v-bind="item.options" />
|
||||
</div>
|
||||
</div>
|
||||
<a-pagination
|
||||
v-model:current="current"
|
||||
:total="videoTotal"
|
||||
defaultPageSize="4"
|
||||
:showSizeChanger="false"
|
||||
@change="batchPreview"
|
||||
show-less-items
|
||||
/>
|
||||
<a-pagination v-model:current="current" :total="videoTotal" defaultPageSize="4" :showSizeChanger="false"
|
||||
@change="batchPreview" show-less-items />
|
||||
</a-modal>
|
||||
|
||||
<a-modal
|
||||
wrapClassName="wrj"
|
||||
v-model:visible="wrjVisible"
|
||||
:width="1000"
|
||||
:title="wrjName + '详情'"
|
||||
@ok="wrjVisible = false"
|
||||
>
|
||||
<a-modal wrapClassName="wrj" v-model:visible="wrjVisible" :width="1000" :title="wrjName + '详情'"
|
||||
@ok="wrjVisible = false">
|
||||
<template #footer></template>
|
||||
<div v-for="(db, key) in wrjData" :key="key">
|
||||
<template v-if="typeof db == 'object'">
|
||||
<div
|
||||
style="
|
||||
<div style="
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
margin: 10px 0;
|
||||
text-align: center;
|
||||
"
|
||||
>
|
||||
">
|
||||
{{ db.attrType || '--' }}
|
||||
</div>
|
||||
<template v-if="db.attrValue">
|
||||
<div
|
||||
style="padding: 0 30px"
|
||||
v-for="(value, key2) in JSON.parse(db.attrValue)"
|
||||
:key="value"
|
||||
>
|
||||
<div style="padding: 0 30px" v-for="(value, key2) in JSON.parse(db.attrValue)" :key="value">
|
||||
{{ key2 + ':' + value }}
|
||||
</div>
|
||||
</template>
|
||||
|
@ -898,10 +623,11 @@
|
|||
}
|
||||
// 消息列表页面
|
||||
let formPage = router.currentRoute.value.query.formPage || ''
|
||||
// 设施类型--无人机和单兵设备
|
||||
let facilitiesType = router.currentRoute.value.query.facilitiesType || ''
|
||||
onMounted(() => {
|
||||
// 获取用户信息
|
||||
handleUser()
|
||||
|
||||
if (jcssType.value) {
|
||||
tabClick(0, jcssType.value)
|
||||
if (jcssType.value == '视频资源') {
|
||||
|
@ -909,12 +635,16 @@
|
|||
}
|
||||
} else {
|
||||
if (isXiHaiAn) {
|
||||
if (facilitiesType) {
|
||||
tabClick(0, facilitiesType)
|
||||
} else {
|
||||
let _obj = {
|
||||
title: '视频标签',
|
||||
content: ['视频资源'],
|
||||
}
|
||||
clickList.value.push(_obj)
|
||||
tabClick(0, '视频资源')
|
||||
}
|
||||
} else {
|
||||
// 默认选中
|
||||
if (formPage && formPage == 'noticePage') {
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<p>
|
||||
<span>应用背景:{{ props.refObj.applicationBackground }}</span>
|
||||
</p>
|
||||
<p>
|
||||
<p v-if="!whoShow1.itShowXiHaiAn">
|
||||
<span>期望效果:{{ props.refObj.effectWish }}</span>
|
||||
</p>
|
||||
<p v-if="props.refObj.enclosure">
|
||||
|
@ -163,6 +163,7 @@
|
|||
@click.stop="openVideo(val)">
|
||||
视频预览
|
||||
</a-button>
|
||||
<span class="channelName" style="color:#ff7875" v-if="whoShow1.itShowXiHaiAn && !item.ended" >该流程已终止</span>
|
||||
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
|
|
|
@ -130,9 +130,9 @@ const columns = [
|
|||
key: 'comment',
|
||||
},
|
||||
{
|
||||
title: '任务时长/秒',
|
||||
dataIndex: 'durationInSeconds',
|
||||
key: 'durationInSeconds',
|
||||
title: '任务时长',
|
||||
dataIndex: 'duration',
|
||||
key: 'duration',
|
||||
},
|
||||
]
|
||||
const getInfo = () => {
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
</template>
|
||||
<div class="content-body-title">
|
||||
<span>
|
||||
名称:{{ item.cameraList ? item.system : item.title }}
|
||||
名称:{{ item.cameraList ? item.system : (item.title || item.name) }}
|
||||
</span>
|
||||
<div></div>
|
||||
</div>
|
||||
|
@ -48,7 +48,8 @@
|
|||
</div>
|
||||
<div class="content-body-bottom">
|
||||
<div>申请日期:{{ item.createDate || item.startTime }}</div>
|
||||
<div></div>
|
||||
<!-- 西海岸--增加过期时间显示 -->
|
||||
<div v-if="isXiHaiAn">过期时间:{{ item.expireDate || '' }}</div>
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<div class="button" v-if="typeName == '设备申请' && phoneSate.includes(item.state)"
|
||||
|
@ -86,8 +87,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<a-empty v-else />
|
||||
<a-modal bodyStyle="padding:0.1rem 0" v-model:visible="detailsVisible" title="申请详情" style="width: 900px"
|
||||
:footer="null" destroyOnClose="true" :maskClosable="false">
|
||||
<!-- :title="detailModalTitle" -->
|
||||
<a-modal bodyStyle="padding:0.1rem 0" v-model:visible="detailsVisible"
|
||||
style="width: 900px" :footer="null" destroyOnClose="true" :maskClosable="false">
|
||||
<template v-slot:title>{{detailModalTitle}}</template>
|
||||
<apply-details :processDefinitionName="processDefinitionName" :businessKey="businessKey"
|
||||
:processInstanceId="processInstanceId" :resourceId="resourceId" :refObj="refObj" :showType="showType">
|
||||
</apply-details>
|
||||
|
@ -237,9 +240,17 @@ function changeApplyState(item, index) {
|
|||
}
|
||||
}
|
||||
|
||||
const cilckRowData = ref({})
|
||||
let detailModalTitle = '申请详情';
|
||||
const showDetail = (item) => {
|
||||
cilckRowData.value = item;
|
||||
// 西海岸-申请时间过期,提示
|
||||
if (isXiHaiAn) {
|
||||
// 西海岸、单兵无人机设备
|
||||
if (item.tbDeviceDTO) {
|
||||
detailModalTitle = item.tbDeviceDTO.name ? item.tbDeviceDTO.name + '申请详情' : '申请详情'
|
||||
}
|
||||
console.log('detailModalTitle------------>', detailModalTitle);
|
||||
if (item.expireDate) {
|
||||
let diff = moment().diff(moment(item.expireDate), 'seconds')
|
||||
if (diff > 0) {
|
||||
|
@ -251,7 +262,6 @@ const showDetail = (item) => {
|
|||
getByApplyFlag(item.applyFlag).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
refObj.value = res.data.data
|
||||
|
||||
detailsVisible.value = true
|
||||
processDefinitionName.value = item.processDefinitionName
|
||||
businessKey.value = item.businessKey
|
||||
|
|
Loading…
Reference in New Issue