1095 lines
35 KiB
Vue
1095 lines
35 KiB
Vue
<template>
|
||
<div>
|
||
<home-header></home-header>
|
||
<div id="apply-container">
|
||
<article>
|
||
<div class="from-card" v-if="applySuccess && !applyAll">
|
||
<AbilityToApplyFor :dataList="list"></AbilityToApplyFor>
|
||
</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"
|
||
>
|
||
<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>
|
||
<!-- 西海岸-摄像头-增加过期时间 -->
|
||
<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>
|
||
<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-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"
|
||
:getPopupContainer="(triggerNode) => triggerNode.parentNode"
|
||
show-search
|
||
:filterOption="true"
|
||
@change="deptIdChangeFunction"
|
||
>
|
||
<a-select-option
|
||
v-for="(item, index) in deptNameAll"
|
||
:key="`${index}-${item}`"
|
||
:value="item.name"
|
||
>
|
||
{{ item.name }}
|
||
</a-select-option>
|
||
</a-select>
|
||
</a-form-item>
|
||
</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>
|
||
<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>
|
||
</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 v-if="iskfq && isXiHaiAn">
|
||
<a-row style="margin-top: 0.4rem">
|
||
<a-col :span="24">
|
||
<a-form-item
|
||
name="attachment"
|
||
label="附件上传"
|
||
class="introduction"
|
||
:rules="[{ required: true, message: '请上传附件' }]"
|
||
>
|
||
<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
|
||
class="cancel-apply"
|
||
type="primary"
|
||
html-type="cancle"
|
||
@click="resetFields()"
|
||
>
|
||
退出申请
|
||
</a-button>
|
||
<a-button
|
||
class="confirm-apply"
|
||
type="primary"
|
||
html-type="submit"
|
||
@click="processStartHandle()"
|
||
>
|
||
提交申请
|
||
</a-button>
|
||
</div>
|
||
</a-form>
|
||
</div>
|
||
<div class="success" v-else>
|
||
<div>
|
||
<img src="../../assets/home/success.png" alt="" />
|
||
</div>
|
||
<p>您已成功申请能力,请耐心等待审批结果,结果会第一时间通知您!</p>
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import { willApplyCameraBatchDelete } from '@/api/home'
|
||
import AbilityToApplyFor from './AbilityToApplyFor.vue'
|
||
import HomeHeader from '@/views/home/components/header'
|
||
import { reactive, ref, watch, onBeforeUnmount } from 'vue'
|
||
import { useRouter } from 'vue-router'
|
||
import { message } from 'ant-design-vue'
|
||
import qs from 'qs'
|
||
import { Upload } from 'ant-design-vue'
|
||
import {
|
||
lastestPage,
|
||
tabilityapplication,
|
||
startOfBusinessKey,
|
||
updateInstanceId,
|
||
submitApply,
|
||
applyAllApplication,
|
||
getUser,
|
||
getUserInfo,
|
||
relaunch,
|
||
selectOne,
|
||
} from '@/api/home'
|
||
import { getDeptAll } from '@/api/user'
|
||
import { getCategoryTreePage, endProcess } from '@/api/personalCenter'
|
||
import mybus from '@/myplugins/mybus'
|
||
import { sgcDel, getApplyForm } from '@/api/personalCenter'
|
||
import {
|
||
pageWithAttrs,
|
||
updateIntegrationServices,
|
||
getAppListByDept,
|
||
} from '@/api/home'
|
||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||
import { getIntegrationDetail, soldierApply } from '@/api/home'
|
||
import { useStore } from 'vuex'
|
||
import * as moment from 'moment'
|
||
|
||
export default {
|
||
name: '',
|
||
props: {},
|
||
components: {
|
||
HomeHeader,
|
||
AbilityToApplyFor,
|
||
},
|
||
setup() {
|
||
const router = useRouter()
|
||
const store = useStore()
|
||
const deptName = store.getters['user/deptName']
|
||
const disabled = ref(false)
|
||
const flag = ref(false)
|
||
const list = ref(JSON.parse(localStorage.getItem('applyList')))
|
||
const deptNameAll = ref([]) //所有部门名称
|
||
const deptFlage = ref(true) //判断是否存在默认部门名称
|
||
const applyAll = router.currentRoute.value.query.applyAll
|
||
// 融合服务id
|
||
const integrationServicesId =
|
||
router.currentRoute.value.query.integrationServicesId
|
||
// 融合服务详情
|
||
const integrationServicesItemInfo = ref(null)
|
||
const num = ref(0)
|
||
// 过期时间
|
||
const expireDateOptions = [
|
||
{
|
||
value: moment().add(30, 'days').format('YYYY-MM-DD HH:mm:ss'),
|
||
label: '30天',
|
||
},
|
||
{
|
||
value: moment().add(60, 'days').format('YYYY-MM-DD HH:mm:ss'),
|
||
label: '60天',
|
||
},
|
||
{
|
||
value: moment().add(90, 'days').format('YYYY-MM-DD HH:mm:ss'),
|
||
label: '90天',
|
||
},
|
||
]
|
||
const apiURL = window.SITE_CONFIG.apiURL
|
||
|
||
if (!applyAll) {
|
||
list.value.map((item) => {
|
||
item.arr.map((val) => {
|
||
let obj = item.children
|
||
? item.children.filter((type) => type.id == val.id)[0]
|
||
: val.type !== '应用资源'
|
||
if (obj) {
|
||
if (obj.type !== '应用资源') {
|
||
flag.value = true
|
||
}
|
||
}
|
||
})
|
||
if (item.checkedList) {
|
||
console.log(item)
|
||
num.value += Number(item.checkedList.length)
|
||
}
|
||
})
|
||
}
|
||
console.log('list', list.value)
|
||
const baseURL = window.SITE_CONFIG.apiURL
|
||
let record = ref('1')
|
||
const text = ref('')
|
||
// 西海岸-特殊处理
|
||
let wrjAndDbText = ['单兵设备', '无人机']
|
||
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 &&
|
||
list.value[0].arr[0] &&
|
||
list.value[0].arr[0].type == '基础设施'
|
||
) {
|
||
isCamera.value = true
|
||
}
|
||
const formName = reactive({
|
||
title: applyAll
|
||
? '全部应用资源申请'
|
||
: wrjAndDbText.includes(
|
||
list.value[0].arr &&
|
||
list.value[0].arr[0] &&
|
||
list.value[0].arr[0].type
|
||
)
|
||
? list.value[0].arr[0].type + '申请'
|
||
: list.value[0].children
|
||
? '申请' +
|
||
list.value[0].children
|
||
.filter((val) => val.id == list.value[0].checkedList[0])[0]
|
||
.resourceName.concat(
|
||
num.value > 1 ? '等' + num.value + '项能力' : ''
|
||
)
|
||
: '申请' + list.value[0].arr[0].resourceName, // 标题
|
||
// applicationSystem: '', // 应用系统
|
||
applicationScene: [], // 应用领域
|
||
applicationBackground: '', // 应用背景
|
||
effectWish: '', // 期望效果
|
||
user: '',
|
||
userId: '',
|
||
phone: '',
|
||
unit: '',
|
||
deptId: '',
|
||
system: [],
|
||
enclosure: '', //附件
|
||
enclosureName: '', //附件
|
||
})
|
||
const dataList = ref([])
|
||
const id = router.currentRoute.value.query.id
|
||
const taskId = router.currentRoute.value.query.taskId
|
||
const businessKey = ref(router.currentRoute.value.query.id)
|
||
if (id) {
|
||
getApplyForm(id).then((res) => {
|
||
console.log('修改==============>', res.data.data)
|
||
formName.applicationSystem = res.data.data.applicationSystem || ''
|
||
formName.applicationScene = res.data.data.applicationScene || []
|
||
formName.applicationBackground =
|
||
res.data.data.applicationBackground || ''
|
||
formName.effectWish = res.data.data.effectWish || ''
|
||
formName.phone = res.data.data.phone || ''
|
||
formName.enclosure = res.data.data.enclosure || ''
|
||
formName.enclosureName = res.data.data.enclosureName || ''
|
||
if (res.data.data.enclosure) {
|
||
fileList.value.push({
|
||
name: res.data.data.enclosureName,
|
||
url: res.data.data.enclosure,
|
||
})
|
||
}
|
||
})
|
||
}
|
||
getUser().then((res) => {
|
||
formName.user = res.data.data.realName
|
||
formName.userId = res.data.data.id
|
||
getUserInfo(formName.userId).then((res) => {
|
||
if (res.data.data.mobile) {
|
||
formName.phone = res.data.data.mobile
|
||
}
|
||
formName.unit = res.data.data.deptName
|
||
if (!formName.unit) {
|
||
deptFlage.value = false
|
||
//调用查询所有部门名称的接口
|
||
getDeptAll().then((res) => {
|
||
deptNameAll.value = res.data.data
|
||
})
|
||
}
|
||
})
|
||
})
|
||
//归属部门选中改变事件
|
||
const deptIdChangeFunction = (name) => {
|
||
deptNameAll.value.map((item) => {
|
||
if (item.name == name) {
|
||
formName.deptId = item.id
|
||
}
|
||
})
|
||
console.log(formName)
|
||
}
|
||
const applicationSceneOpthion = ref([])
|
||
getCategoryTreePage({
|
||
page: 1,
|
||
limit: 20,
|
||
dictTypeId: '1513712507692818433',
|
||
deFlage: 0,
|
||
}).then((res) => {
|
||
res.data.data.list.map((val) => {
|
||
applicationSceneOpthion.value.push({
|
||
value: val.dictLabel,
|
||
label: val.dictLabel,
|
||
})
|
||
})
|
||
})
|
||
const formRef = ref()
|
||
const applySuccess = ref(true)
|
||
const dataForm = {
|
||
processDefinitionKey: 'abilityprocess',
|
||
}
|
||
const callbacks = {
|
||
startProcessSuccessCallback: null,
|
||
startProcessErrorCallback: null,
|
||
formSaveSuccessCallback: null,
|
||
formSaveErrorCallback: null,
|
||
}
|
||
const instanceIdUrl = '/processForm/tabilityapplication/updateInstanceId'
|
||
const formUrl = '/processForm/tabilityapplication'
|
||
//退出返回上一页
|
||
const resetFields = () => {
|
||
window.history.go(-1)
|
||
}
|
||
|
||
// 跳转到能力集市
|
||
const jumpToDetailsPageconetent = () => {
|
||
setTimeout(() => {
|
||
router.push({
|
||
path: '/DetailsPageconetent',
|
||
query: {
|
||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||
},
|
||
})
|
||
}, 1000)
|
||
}
|
||
|
||
// 提交申请
|
||
let submitFlag = true
|
||
const processStartHandle = () => {
|
||
formRef.value.validate().then(() => {
|
||
if (submitFlag) {
|
||
submitFlag = false
|
||
if (!formUrl) {
|
||
return message.error('请设置保存表单的URL')
|
||
}
|
||
if (!formName) {
|
||
return message.error('请设置表单名称')
|
||
}
|
||
|
||
if (id) {
|
||
endProcess({ instanceId: taskId }).then((end) => {
|
||
if (end.data.code == 0) {
|
||
let ids = []
|
||
let falgNum = 0
|
||
let sxt = true
|
||
formName.system = []
|
||
console.log('list==================', list.value)
|
||
list.value.map((val) => {
|
||
val.arr.map((item) => {
|
||
if (item.type !== '基础设施') {
|
||
falgNum++
|
||
}
|
||
})
|
||
})
|
||
list.value.map((val) => {
|
||
val.arr.map((item) => {
|
||
if (item.type !== '基础设施') {
|
||
formName.system.push({
|
||
resourceId: item.resourceId,
|
||
resourceName: item.resourceName,
|
||
})
|
||
falgNum++
|
||
console.log(item.id)
|
||
if (item.id) {
|
||
ids.push(item.id)
|
||
}
|
||
} else {
|
||
infrastructureConfirm(item, falgNum, sxt)
|
||
}
|
||
})
|
||
})
|
||
if (formName.system.length !== 0) {
|
||
if (formName.applicationSystem.length == 0) {
|
||
formName.applicationSystem = ''
|
||
}
|
||
submitApply(formName).then((res) => {
|
||
message.success('申请提交成功,请到消息中心查看!')
|
||
console.log('能力申请================>', res)
|
||
if (res.data.code == 0) {
|
||
if (ids && ids.length > 0) {
|
||
sgcDel({ ids: ids }).then((res) => {
|
||
if (res.data.msg === 'success') {
|
||
mybus.emit('getSgcNum')
|
||
jumpToDetailsPageconetent()
|
||
}
|
||
})
|
||
} else {
|
||
// 融合服务
|
||
if (integrationServicesId) {
|
||
getIntegrationServicesDeatil(
|
||
integrationServicesId
|
||
).then((res) => {
|
||
updateIntegrationServiceAction()
|
||
})
|
||
}
|
||
jumpToDetailsPageconetent()
|
||
}
|
||
} else {
|
||
message.error('申请失败!')
|
||
}
|
||
})
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
if (!applyAll) {
|
||
let ids = []
|
||
let falgNum = 0
|
||
let sxt = true
|
||
formName.system = []
|
||
console.log('list==================', list.value)
|
||
list.value.map((val) => {
|
||
val.arr.map((item) => {
|
||
if (item.type !== '基础设施') {
|
||
falgNum++
|
||
}
|
||
})
|
||
})
|
||
list.value.map((val) => {
|
||
val.arr.map((item) => {
|
||
if (item.type !== '基础设施') {
|
||
formName.system.push({
|
||
resourceId: item.resourceId,
|
||
resourceName: item.resourceName,
|
||
})
|
||
falgNum++
|
||
console.log(item.id)
|
||
if (item.id) {
|
||
ids.push(item.id)
|
||
}
|
||
} else {
|
||
infrastructureConfirm(item, falgNum, sxt)
|
||
}
|
||
})
|
||
})
|
||
console.log('formName--ids-提交数据--------->', formName, ids)
|
||
if (formName.system.length !== 0) {
|
||
if (
|
||
formName.applicationSystem &&
|
||
formName.applicationSystem.length == 0
|
||
) {
|
||
formName.applicationSystem = ''
|
||
}
|
||
// 西海岸:单兵设备、无人机单独调取其他接口
|
||
if (wrjAndDbText.includes(list.value[0].arr[0].type)) {
|
||
handleWrjApply(formName)
|
||
return
|
||
}
|
||
|
||
submitApply(formName).then((res) => {
|
||
message.success('申请提交成功,请到消息中心查看!')
|
||
console.log('能力申请================>', res)
|
||
if (res.data.code == 0) {
|
||
if (ids && ids.length > 0) {
|
||
sgcDel({ ids: ids }).then((res) => {
|
||
if (res.data.msg === 'success') {
|
||
mybus.emit('getSgcNum')
|
||
jumpToDetailsPageconetent()
|
||
}
|
||
})
|
||
} else {
|
||
// 融合服务
|
||
if (integrationServicesId) {
|
||
getIntegrationServicesDeatil(
|
||
integrationServicesId
|
||
).then((res) => {
|
||
updateIntegrationServiceAction()
|
||
})
|
||
}
|
||
jumpToDetailsPageconetent()
|
||
}
|
||
} else {
|
||
message.error('申请失败!')
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
formName.applicationSystem = ''
|
||
applyAllApplication(formName).then((res) => {
|
||
if (res.data.code == 0) {
|
||
message.success('申请提交成功,请到消息中心查看!')
|
||
jumpToDetailsPageconetent()
|
||
} else {
|
||
message.error('申请失败!')
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
// 基础设施--数据下发
|
||
const infrastructureConfirm = (item, falgNum, sxt) => {
|
||
let obj = {}
|
||
Object.assign(obj, formName)
|
||
console.log('摄像头===============>', obj, item)
|
||
obj.system = []
|
||
if (item.note1 && typeof item.note1 == 'string') {
|
||
item.note1 = JSON.parse(item.note1)
|
||
}
|
||
let delArr = []
|
||
item.note1 &&
|
||
item.note1.map((jcss) => {
|
||
if (!jcss) {
|
||
return
|
||
}
|
||
let _itemData = {
|
||
resourceId: (jcss.idtCameraChannel || '') + '',
|
||
resourceName: jcss.channelName,
|
||
cameraId: jcss.channelId, // 改接口后删除
|
||
channelCode: jcss.channelCode,
|
||
channelId: jcss.channelId,
|
||
channelName: jcss.channelName,
|
||
checkStatus: jcss.checkStatus + '',
|
||
gpsX: jcss.gpsX,
|
||
gpsY: jcss.gpsY,
|
||
idtCameraChannel: (jcss.idtCameraChannel || '') + '',
|
||
nodeName: jcss.nodeName,
|
||
parentId: jcss.parentId,
|
||
status: jcss.status + '',
|
||
}
|
||
// 西海岸
|
||
if (isXiHaiAn.value) {
|
||
// _itemData.resourceId = jcss.channelId
|
||
_itemData.managementUnitName = jcss.managementUnitName
|
||
_itemData.cameraPointTypeName = jcss.cameraPointTypeName
|
||
delArr.push(jcss.id)
|
||
}
|
||
obj.system.push(_itemData)
|
||
})
|
||
submitApply(obj).then((res) => {
|
||
// applySuccess.value = false
|
||
console.log('摄像头申请================>', res)
|
||
if (res.data.msg == 'success') {
|
||
if (delArr.length > 0) {
|
||
willApplyCameraBatchDelete(delArr).then((res) => {
|
||
jumpToDetailsPageconetent()
|
||
})
|
||
} else if (item.id) {
|
||
sgcDel({ ids: [item.id] }).then((res1) => {
|
||
if (res1.data.msg === 'success') {
|
||
if (falgNum == 0 && sxt) {
|
||
message.success('申请提交成功,请到消息中心查看!')
|
||
sxt = false
|
||
}
|
||
mybus.emit('getSgcNum')
|
||
jumpToDetailsPageconetent()
|
||
}
|
||
})
|
||
} else {
|
||
if (res.data.msg === 'success' && falgNum == 0 && sxt) {
|
||
message.success('申请提交成功,请到消息中心查看!')
|
||
sxt = false
|
||
}
|
||
jumpToDetailsPageconetent()
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
// 启动流程
|
||
const startProcess = (processDefinitionKey, businessKey, formData) => {
|
||
var data = {
|
||
processDefinitionKey: processDefinitionKey,
|
||
businessKey: businessKey,
|
||
variables: formData,
|
||
}
|
||
startOfBusinessKey(data)
|
||
.then(({ data: res }) => {
|
||
if (res.code !== 0) {
|
||
if (callbacks.startProcessErrorCallback) {
|
||
callbacks.startProcessErrorCallback(res.data)
|
||
}
|
||
}
|
||
message({
|
||
message: '操作成功',
|
||
type: 'success',
|
||
duration: 500,
|
||
onClose: () => {
|
||
if (callbacks.startProcessSuccessCallback) {
|
||
callbacks.startProcessSuccessCallback(res.data)
|
||
}
|
||
},
|
||
})
|
||
if (instanceIdUrl) {
|
||
var params = qs.stringify({
|
||
processInstanceId: res.data.processInstanceId,
|
||
processDefinitionKey: processDefinitionKey,
|
||
businessKey: businessKey,
|
||
})
|
||
updateInstanceId(params).then(() => {})
|
||
}
|
||
})
|
||
.catch(() => {})
|
||
}
|
||
const options = ref([
|
||
{
|
||
value: '政法委',
|
||
label: '政法委',
|
||
},
|
||
{
|
||
value: '公安局',
|
||
label: '公安局',
|
||
},
|
||
{
|
||
value: '卫健委',
|
||
label: '卫健委',
|
||
},
|
||
{
|
||
value: '城市管理局',
|
||
label: '城市管理局',
|
||
},
|
||
{
|
||
value: '生态环境局',
|
||
label: '生态环境局',
|
||
},
|
||
{
|
||
value: '交通运输局',
|
||
label: '交通运输局',
|
||
},
|
||
])
|
||
const systemOptions = ref([])
|
||
const systemOptions2 = ref([])
|
||
const fileList = ref([])
|
||
// 应用系统下拉
|
||
const systemHandleChange = (value) => {
|
||
console.log(`selected ${value}`)
|
||
}
|
||
const systemHandleSearch = (value) => {
|
||
let valueArray = []
|
||
systemOptions.value.map((val) => {
|
||
valueArray.push(val.value)
|
||
})
|
||
if (valueArray.indexOf(value) == -1) {
|
||
systemOptions.value.push({
|
||
value: value,
|
||
label: value,
|
||
})
|
||
}
|
||
}
|
||
getAppListByDept().then((res) => {
|
||
console.log('res=====>', res.data.data)
|
||
if (res.data.code == 0) {
|
||
if (res.data.data.length == 0) {
|
||
message.warning('该关键词,暂无应用资源!')
|
||
} else {
|
||
// 过滤本单位的应用系统
|
||
res.data.data.map((val) => {
|
||
systemOptions2.value.push({
|
||
value: val.NAME,
|
||
label: val.NAME,
|
||
})
|
||
})
|
||
// console.log('第一次获取===================>', systemOptions2.value)
|
||
}
|
||
} else {
|
||
message.error('应用系统获取数据失败!')
|
||
}
|
||
})
|
||
const handleBlur = () => {
|
||
console.log('blur')
|
||
}
|
||
const arrId = []
|
||
const handleFocus = () => {
|
||
console.log('focus', systemOptions2.value, systemOptions.value)
|
||
for (let valueIndex of systemOptions2.value) {
|
||
if (arrId.indexOf(valueIndex['value']) == -1) {
|
||
arrId.push(valueIndex['value'])
|
||
systemOptions.value.push(valueIndex)
|
||
}
|
||
}
|
||
}
|
||
|
||
onBeforeUnmount(() => {
|
||
mybus.off('reomveOldData')
|
||
})
|
||
|
||
// 融合服务-更新
|
||
const updateIntegrationServiceAction = () => {
|
||
let _applyCount =
|
||
Number(integrationServicesItemInfo.value.applyCount || 0) + 1
|
||
let _data = Object.assign({}, integrationServicesItemInfo.value, {
|
||
applyCount: _applyCount,
|
||
})
|
||
updateIntegrationServices(_data)
|
||
.then((res) => {
|
||
console.log('res---更新--------->', res)
|
||
})
|
||
.catch((err) => {
|
||
console.log('err----更新-------->', err)
|
||
})
|
||
}
|
||
|
||
// 融合服务--详情
|
||
const getIntegrationServicesDeatil = (id) => {
|
||
return new Promise((resolve, reject) => {
|
||
getIntegrationDetail(id).then(
|
||
(res) => {
|
||
resolve(res)
|
||
if (res.data.code !== 0) {
|
||
return message.error(res.data.msg)
|
||
}
|
||
integrationServicesItemInfo.value = res.data.data || {}
|
||
},
|
||
(err) => {
|
||
reject(err)
|
||
message.error(err)
|
||
}
|
||
)
|
||
})
|
||
}
|
||
|
||
// 西海岸:单兵设备、无人机提交申请
|
||
const handleWrjApply = (formName) => {
|
||
let _data = {
|
||
deviceId:
|
||
formName.system &&
|
||
formName.system[0] &&
|
||
formName.system[0].resourceId,
|
||
deviceName:
|
||
formName.system &&
|
||
formName.system[0] &&
|
||
formName.system[0].resourceName,
|
||
title: formName.title,
|
||
name: formName.user,
|
||
phone: formName.phone,
|
||
dept: formName.unit, // 单位
|
||
applicationSystem: formName.applicationSystem, // 应用系统
|
||
applicationArea: JSON.stringify(formName.applicationScene), // 应用领域
|
||
demand: formName.applicationBackground, // 需求依据
|
||
}
|
||
soldierApply(_data)
|
||
.then((res) => {
|
||
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('申请失败!')
|
||
}
|
||
})
|
||
.catch((err) => {
|
||
message.error(err)
|
||
})
|
||
}
|
||
|
||
//文件上传成功回调
|
||
const roomUpload = (response) => {
|
||
if (response.file.response !== undefined) {
|
||
fileList.value = response.fileList
|
||
formName.attachment = response.file.response.data
|
||
}
|
||
}
|
||
|
||
return {
|
||
deptIdChangeFunction,
|
||
formRef,
|
||
formName,
|
||
deptNameAll,
|
||
instanceIdUrl,
|
||
formUrl,
|
||
processStartHandle,
|
||
resetFields,
|
||
startProcess,
|
||
options,
|
||
fileList,
|
||
list,
|
||
deptFlage,
|
||
headers: {
|
||
authorization: 'authorization-text',
|
||
},
|
||
// handleChange,
|
||
applySuccess,
|
||
disabled,
|
||
baseURL,
|
||
// beforeUpload,
|
||
dataList,
|
||
systemHandleChange,
|
||
systemHandleSearch,
|
||
handleBlur,
|
||
handleFocus,
|
||
systemOptions,
|
||
applicationSceneOpthion,
|
||
flag,
|
||
applyAll,
|
||
getIntegrationServicesDeatil,
|
||
isCamera,
|
||
isXiHaiAn,
|
||
expireDateOptions,
|
||
apiURL,
|
||
roomUpload,
|
||
iskfq,
|
||
}
|
||
},
|
||
}
|
||
</script>
|
||
<style scoped lang="less">
|
||
#apply-container {
|
||
// background-color: #f5f8fc;
|
||
height: 100%;
|
||
width: 100%;
|
||
margin: 0.8rem auto 0;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
|
||
aside {
|
||
width: 282px;
|
||
height: 96%;
|
||
overflow-y: auto;
|
||
background-color: #fff;
|
||
margin: 1% 0 3%;
|
||
}
|
||
|
||
article {
|
||
width: 1090px;
|
||
height: 99%;
|
||
overflow-y: auto;
|
||
background-color: #fff;
|
||
margin: 1% auto;
|
||
}
|
||
|
||
.form-container {
|
||
padding: 20px 20px 30px 20px;
|
||
|
||
.title {
|
||
font-size: 20px;
|
||
color: #000;
|
||
font-weight: bold;
|
||
margin-bottom: 20px;
|
||
}
|
||
}
|
||
|
||
.base-info {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.flex-row-start {
|
||
justify-content: flex-start;
|
||
align-items: center;
|
||
}
|
||
|
||
:deep(.ant-form-item-label) {
|
||
label {
|
||
color: #666;
|
||
font-size: 16px;
|
||
|
||
&::after {
|
||
content: '';
|
||
}
|
||
}
|
||
}
|
||
|
||
:deep(.ant-form-item-required) {
|
||
&::before {
|
||
font-size: 8px;
|
||
margin-right: 10px;
|
||
}
|
||
}
|
||
|
||
:deep(.ant-input) {
|
||
border: 1px solid #e0e0e0;
|
||
border-radius: 6px;
|
||
}
|
||
|
||
.success {
|
||
div {
|
||
width: 100px;
|
||
margin: 80px auto 40px;
|
||
}
|
||
|
||
text-align: center;
|
||
font-size: 20px;
|
||
font-weight: bold;
|
||
color: #000;
|
||
}
|
||
}
|
||
|
||
.applicationScene {
|
||
:deep(.ant-select-selector) {
|
||
overflow-x: scroll;
|
||
}
|
||
|
||
:deep(.ant-select-selection-overflow) {
|
||
flex-wrap: nowrap;
|
||
}
|
||
}
|
||
|
||
textarea {
|
||
resize: none;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.bottom-btn {
|
||
display: flex;
|
||
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>
|