Compare commits

..

2 Commits

6 changed files with 905 additions and 979 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

View File

@ -289,6 +289,9 @@
margin-bottom: 0.2rem; margin-bottom: 0.2rem;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
background: url("~@/assets/newHome/biaoti.png") no-repeat;
background-position-y: 7px;
padding-left: 17px;
} }
.ability-to-apply-for-content { .ability-to-apply-for-content {
@ -297,7 +300,7 @@
.dep-name { .dep-name {
color: #0558e1; color: #0558e1;
font-size: 0.22rem; font-size: 0.18rem;
display: flex; display: flex;
align-items: center; align-items: center;
line-height: 0.22rem; line-height: 0.22rem;
@ -346,7 +349,7 @@
.description { .description {
width: 8.8rem; width: 8.8rem;
color: rgba(0, 0, 0, 0.45); color: rgba(0, 0, 0, 0.70);
} }
.remove { .remove {

View File

@ -678,11 +678,21 @@
height: 100vh; height: 100vh;
width: 100%; width: 100%;
} }
:deep .ant-anchor-link{
height: 50px !important;
line-height: 50px;
margin:0px !important;
}
:deep .ant-anchor-link-active > .ant-anchor-link-title {
color: #fff;
width: 100%;
height: 100%;
background: #0058e1;
}
:deep .ant-anchor-link-title:only-child {
// @font-face { padding-left: 14px;
// font-family: 'num-typeface'; }
// src: url('~@/assets/newHome/font/num-typeface.otf');
// }
.border { .border {
border: 1px solid #dddee1; border: 1px solid #dddee1;
@ -768,22 +778,22 @@
.top { .top {
width: 100%; width: 100%;
height: 100px; height: 137px;
margin-bottom: 20px; margin-bottom: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-end;
.td-name { .td-name {
height: 100px; height: 137px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.td { .td {
height: 100px; height: 137px;
line-height: 100px; line-height: 137px;
position: relative; position: relative;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -877,9 +887,9 @@
} }
.add-img { .add-img {
height: 60px; height: 40px;
width: 60px; width: 40px;
background: url('~@/assets/newHome/add-on.png'); background: url('~@/assets/newHome/add-grey.png');
background-size: 100% 100%; background-size: 100% 100%;
cursor: pointer; cursor: pointer;
} }

View File

@ -8,96 +8,44 @@
</div> </div>
<div class="form-container"> <div class="form-container">
<div v-if="applySuccess"> <div v-if="applySuccess">
<a-form <div style=" background: #f6f7f9;
ref="formRef" padding: 24px 14px 14px 20px;
:model="formName" margin-bottom: 10px;
name="basic" margin-top: 10px;
:label-col="{ style: { width: '106px' } }" margin-bottom: 20px">
:wrapper-col="{ style: { width: '230px' } }" <a-form ref="formRef" :model="formName" name="basic" :label-col="{ style: { width: '106px' } }"
labelAlign="left" :wrapper-col="{ style: { width: '230px' } }" labelAlign="left" autocomplete="off">
autocomplete="off"
>
<div class="base-info flex-row-start"> <div class="base-info flex-row-start">
<a-form-item <a-form-item label="申请标题" name="title" :rules="[{ required: true, message: '请输入申请标题' }]">
label="申请标题" <a-input placeholder="请输入能力申请标题" v-model:value="formName.title" />
name="title"
:rules="[{ required: true, message: '请输入申请标题' }]"
>
<a-input
placeholder="请输入能力申请标题"
v-model:value="formName.title"
/>
</a-form-item> </a-form-item>
<!-- 西海岸-摄像头-增加过期时间 --> <!-- 西海岸-摄像头-增加过期时间 -->
<a-form-item <a-form-item v-if="isCamera && isXiHaiAn" label="过期时间" name="expireDate"
v-if="isCamera && isXiHaiAn" :rules="[{ required: true, message: '请选择过期时间' }]" style="margin-left: 22px">
label="过期时间" <a-select v-model:value="formName.expireDate" placeholder="请选择过期时间" style="width: 200px"
name="expireDate" :options="expireDateOptions"></a-select>
: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> </a-form-item>
</div> </div>
<div class="base-info"> <div class="base-info">
<a-form-item <a-form-item label="申请人信息" name="user" :rules="[{ required: true, message: '请输入申请人' }]">
label="申请人信息" <a-input placeholder="请输入申请人" v-model:value="formName.user" disabled />
name="user"
:rules="[{ required: true, message: '请输入申请人' }]"
>
<a-input
placeholder="请输入申请人"
v-model:value="formName.user"
disabled
/>
</a-form-item> </a-form-item>
<a-form-item <a-form-item style="margin: 0 0px" label="电话" name="phone" :rules="[
style="margin: 0 22px"
label="电话"
name="phone"
:rules="[
{ {
required: true, required: true,
pattern: /^1[3456789]\d{9}$/, pattern: /^1[3456789]\d{9}$/,
message: '请输入正确的电话号码', message: '请输入正确的电话号码',
}, },
]" ]">
> <a-input placeholder="请输入申请人电话" v-model:value="formName.phone" />
<a-input
placeholder="请输入申请人电话"
v-model:value="formName.phone"
/>
</a-form-item> </a-form-item>
<a-form-item <a-form-item label="单位" name="unit" :rules="[{ required: true, message: '请输入单位' }]">
label="单位" <a-input placeholder="请输入单位" v-model:value="formName.unit" disabled v-if="deptFlage" />
name="unit" <a-select v-else placeholder="请选择归属部门" v-model:value="formName.unit"
:rules="[{ required: true, message: '请输入单位' }]" :getPopupContainer="(triggerNode) => triggerNode.parentNode" show-search :filterOption="true"
> @change="deptIdChangeFunction">
<a-input <a-select-option v-for="(item, index) in deptNameAll" :key="`${index}-${item}`"
placeholder="请输入单位" :value="item.name">
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 }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -105,63 +53,29 @@
</div> </div>
<div class="base-info" v-if="flag"> <div class="base-info" v-if="flag">
<div style="margin-bottom: 24px"> <div style="margin-bottom: 24px">
<a-form-item <a-form-item style="margin-bottom: 0" label="应用系统" name="applicationSystem"
style="margin-bottom: 0" :rules="[{ required: true, message: '请选择应用系统' }]">
label="应用系统" <a-select v-model:value="formName.applicationSystem" show-search placeholder="请选择应用系统"
name="applicationSystem" style="width: 230px" :options="systemOptions" @focus="handleFocus" @blur="handleBlur"
:rules="[{ required: true, message: '请选择应用系统' }]" @change="systemHandleChange" @search="systemHandleSearch"></a-select>
>
<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> </a-form-item>
<span <span style="font-size: 12px; color: #666; padding-left: 106px">
style="font-size: 12px; color: #666; padding-left: 106px"
>
如选项没有系统请新增 如选项没有系统请新增
</span> </span>
</div> </div>
<a-form-item <a-form-item class="applicationScene" label="应用领域" name="applicationScene"
class="applicationScene" :rules="[{ required: true, message: '请选择应用领域' }]" style="width: 6.93rem">
label="应用领域" <a-select v-model:value="formName.applicationScene" :options="applicationSceneOpthion" mode="tags"
name="applicationScene" :size="size" placeholder="请选择应用领域" :filterOption="false" :searchValue="false"
:rules="[{ required: true, message: '请选择应用领域' }]" style="width: 5.87rem"></a-select>
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> </a-form-item>
</div> </div>
<div> <div>
<a-form-item <a-form-item label="需求依据" name="applicationBackground" :rules="[
label="需求依据"
name="applicationBackground"
:rules="[
{ required: true, message: '请输入需求依据' }, { required: true, message: '请输入需求依据' },
{ min: 50, message: '需求依据最少为50个字' }, { min: 50, message: '需求依据最少为50个字' },
]" ]">
> <a-textarea placeholder="请输入需求依据" v-model:value="formName.applicationBackground" :rows="4" />
<a-textarea
placeholder="请输入需求依据"
v-model:value="formName.applicationBackground"
:rows="4"
/>
</a-form-item> </a-form-item>
</div> </div>
@ -169,20 +83,10 @@
<div v-if="isXiHaiAn"> <div v-if="isXiHaiAn">
<a-row style="margin-top: 0.4rem"> <a-row style="margin-top: 0.4rem">
<a-col :span="24"> <a-col :span="24">
<a-form-item <a-form-item name="attachment" label="附件上传" class="introduction"
name="attachment" :rules="[{ required: true, message: '请上传附件' }]">
label="附件上传" <a-upload :max-count="1" accept=".doc,.docx,pdf" v-model:file-list="fileList"
class="introduction" :action="`${apiURL}/upload`" @remove="handleRemove" @change="roomUpload">
: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> <a-button>
<upload-outlined>选择上传附件</upload-outlined> <upload-outlined>选择上传附件</upload-outlined>
</a-button> </a-button>
@ -195,35 +99,25 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="24" style="margin-left: 106px"> <a-col :span="24" style="margin-left: 106px">
<a <a href="/static/download/感知资源申请表.doc" download="感知资源申请表">
href="/static/download/感知资源申请表.doc"
download="感知资源申请表"
>
感知资源申请表模板下载 感知资源申请表模板下载
</a> </a>
</a-col> </a-col>
</a-row> </a-row>
</div> </div>
</a-form>
</div>
<div class="bottom-btn"> <div class="bottom-btn">
<a-button
class="cancel-apply" <a-button class="confirm-apply" type="primary" html-type="submit" @click="processStartHandle()">
type="primary" 申请
html-type="cancle"
@click="resetFields()"
>
退出申请
</a-button> </a-button>
<a-button <a-button class="cancel-apply" type="primary" html-type="cancle" @click="resetFields()">
class="confirm-apply" 取消
type="primary"
html-type="submit"
@click="processStartHandle()"
>
提交申请
</a-button> </a-button>
</div> </div>
</a-form>
</div> </div>
<div class="success" v-else> <div class="success" v-else>
<div> <div>
@ -237,15 +131,15 @@
</div> </div>
</template> </template>
<script> <script>
import { willApplyCameraBatchDelete } from '@/api/home' import { willApplyCameraBatchDelete } from '@/api/home'
import AbilityToApplyFor from './AbilityToApplyFor.vue' import AbilityToApplyFor from './AbilityToApplyFor.vue'
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
import { reactive, ref, watch, onBeforeUnmount } from 'vue' import { reactive, ref, watch, onBeforeUnmount } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import qs from 'qs' import qs from 'qs'
import { Upload } from 'ant-design-vue' import { Upload } from 'ant-design-vue'
import { import {
lastestPage, lastestPage,
tabilityapplication, tabilityapplication,
startOfBusinessKey, startOfBusinessKey,
@ -256,22 +150,22 @@
getUserInfo, getUserInfo,
relaunch, relaunch,
selectOne, selectOne,
} from '@/api/home' } from '@/api/home'
import { getDeptAll } from '@/api/user' import { getDeptAll } from '@/api/user'
import { getCategoryTreePage, endProcess } from '@/api/personalCenter' import { getCategoryTreePage, endProcess } from '@/api/personalCenter'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { sgcDel, getApplyForm } from '@/api/personalCenter' import { sgcDel, getApplyForm } from '@/api/personalCenter'
import { import {
pageWithAttrs, pageWithAttrs,
updateIntegrationServices, updateIntegrationServices,
getAppListByDept, getAppListByDept,
} from '@/api/home' } from '@/api/home'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js' import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { getIntegrationDetail, soldierApply } from '@/api/home' import { getIntegrationDetail, soldierApply } from '@/api/home'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import * as moment from 'moment' import * as moment from 'moment'
export default { export default {
name: '', name: '',
props: {}, props: {},
components: { components: {
@ -352,8 +246,7 @@
const isCamera = ref(false) const isCamera = ref(false)
// 西- // 西-
let note1 = JSON.parse( let note1 = JSON.parse(
(list.value[0] && list.value[0].arr && list.value[0].arr[0].note1) || (list.value[0] && list.value[0].arr && list.value[0].arr[0].note1) || '[]'
'[]'
) )
let iskfq = ref( let iskfq = ref(
note1.some( note1.some(
@ -758,10 +651,10 @@
processDefinitionKey: processDefinitionKey, processDefinitionKey: processDefinitionKey,
businessKey: businessKey, businessKey: businessKey,
}) })
updateInstanceId(params).then(() => {}) updateInstanceId(params).then(() => { })
} }
}) })
.catch(() => {}) .catch(() => { })
} }
const options = ref([ const options = ref([
{ {
@ -974,10 +867,14 @@
iskfq, iskfq,
} }
}, },
} }
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
#apply-container { :deep .ant-form-item-label-left {
text-align: right;
}
#apply-container {
// background-color: #f5f8fc; // background-color: #f5f8fc;
height: 100%; height: 100%;
width: 100%; width: 100%;
@ -1002,8 +899,11 @@
} }
.form-container { .form-container {
padding: 20px 20px 30px 20px; //padding: 20px 20px 30px 20px;
overflow: hidden; overflow: hidden;
margin-top: 15px;
// background: #f6f7f9;
.title { .title {
font-size: 20px; font-size: 20px;
color: #000; color: #000;
@ -1056,9 +956,9 @@
font-weight: bold; font-weight: bold;
color: #000; color: #000;
} }
} }
.applicationScene { .applicationScene {
:deep(.ant-select-selector) { :deep(.ant-select-selector) {
overflow-x: scroll; overflow-x: scroll;
} }
@ -1066,41 +966,51 @@
:deep(.ant-select-selection-overflow) { :deep(.ant-select-selection-overflow) {
flex-wrap: nowrap; flex-wrap: nowrap;
} }
} }
textarea { textarea {
resize: none; resize: none;
font-size: 14px; font-size: 14px;
} }
.bottom-btn { .bottom-btn {
display: flex; display: flex;
justify-content: center; justify-content: center;
// position: fixed; // position: fixed;
} }
.cancel-apply { .cancel-apply {
width: 80px; width: 80px;
height: 38px; height: 32px;
text-align: center;
background: #fff;
color: #0558e1;
border: 1px solid #0558e1;
border-radius: 2px;
font-size: 14px;
}
.cancel-apply:hover {
background: #fff;
color: #0558e1;
opacity: 0.8;
}
.confirm-apply {
margin-right: 20px; margin-right: 20px;
background: #e1edfa;
color: #0087ff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
}
.confirm-apply {
width: 80px; width: 80px;
height: 38px; height: 32px;
background: #0087ff;
color: #fff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center; text-align: center;
} background: #0558e1;
color: #fff;
border: 1px solid #0558e1;
border-radius: 2px;
font-size: 14px;
}
.confirm-apply :hover {
background: #0558e1;
color: #fff;
opacity: 0.8;
}
</style> </style>

View File

@ -117,11 +117,14 @@
</div> </div>
<a-button <a-button
style=" style="
margin-left: 0.8rem; width: 80px;
background: #e1edfa; height: 32px;
color: #0087ff; text-align: center;
border: none; background: #0558e1;
border-radius: 0.06rem; color: #fff;
border: 1px solid #0558e1;
border-radius: 2px;
font-size: 14px;
" "
@click="appointment(item)" @click="appointment(item)"
> >
@ -2830,7 +2833,7 @@
.rightContent { .rightContent {
height: 1.75rem; height: 1.75rem;
width: 5.8rem; width: 5.8rem;
margin-right:72px;
.topContent { .topContent {
font-size: 0.2rem; font-size: 0.2rem;
color: #000; color: #000;