@@ -282,7 +282,7 @@ const | |||
}) | |||
} | |||
}, | |||
emits = defineEmits(['changeIsFirst', 'getBasicInfoData', 'reuseItem']), | |||
emits = defineEmits(['changeIsFirst', 'getBasicInfoData', 'reuseItem', 'changeProjectTypeResetForm']), | |||
changeIsFirst = (val) => { | |||
emits('changeIsFirst', val) | |||
}, | |||
@@ -531,6 +531,14 @@ watch(() => props.dictionaryList, val => { | |||
watch(() => formData.value, val => { | |||
emits('getBasicInfoData', formData.value) | |||
}, { deep: true }) | |||
const isClickFy = ref(false) | |||
function changeProjectType () { | |||
console.log(isClickFy.value) | |||
if (isClickFy.value) { | |||
emits('changeProjectTypeResetForm', formData.value) | |||
} | |||
} | |||
</script> | |||
<template> | |||
@@ -563,6 +571,7 @@ watch(() => formData.value, val => { | |||
<el-radio-group | |||
v-model="formData.projectType" | |||
:disabled="$route.name==='declarePlan'||[10012,10013,10016].includes(detailData?.status)" | |||
@change="changeProjectType" | |||
> | |||
<el-radio label="01">首次建设</el-radio> | |||
<el-radio label="02">迭代升级</el-radio> | |||
@@ -585,7 +594,7 @@ watch(() => formData.value, val => { | |||
:empty-temp="false" | |||
> | |||
<template #action="{scope}"> | |||
<a v-if="formData.projectType==='03'" class="text-primary" @click="emits('reuseItem', formData.baseHistorProjs[scope.$index])">复用信息</a> | |||
<a v-if="formData.projectType==='03'" class="text-primary" @click="emits('reuseItem', formData.baseHistorProjs[scope.$index]);isClickFy=true">复用信息</a> | |||
<a class="text-danger" @click="delPro(scope.$index)">删除</a> | |||
</template> | |||
</table-list> | |||
@@ -522,6 +522,10 @@ const { proxy } = getCurrentInstance(), | |||
} | |||
onMounted(async () => { | |||
dictionaryList.value = (await dictionary()).data | |||
getData() | |||
}) | |||
async function getData () { | |||
if (!route.query.id) { | |||
const res = await getFormConfig({ | |||
regionCode: userInfo.value.regionCode | |||
@@ -585,7 +589,7 @@ onMounted(async () => { | |||
collapseModal.value.push(index++ + '') | |||
}) | |||
} | |||
}) | |||
} | |||
async function reuseItem (data) { | |||
const projectId = data.baseProjId | |||
@@ -647,7 +651,15 @@ async function reuseItem (data) { | |||
setData() | |||
}) | |||
} | |||
function changeProjectTypeResetForm () { | |||
// nextTick(() => { | |||
// console.log('111111111') | |||
// setData() | |||
// }) | |||
// getData() | |||
// detailData.value = {} | |||
location.reload() | |||
} | |||
</script> | |||
<template> | |||
<div class="declarePage footerPage"> | |||
@@ -715,6 +727,7 @@ async function reuseItem (data) { | |||
:declare-amount="fundsInfoRef?.formData.declareAmount" | |||
@reuse-item="reuseItem" | |||
@change-is-first="changeIsFirst" | |||
@change-project-type-reset-form="changeProjectTypeResetForm" | |||
@get-basic-info-data="getBasicInfoData" | |||
/> | |||
</div> | |||
@@ -21,10 +21,21 @@ import { UserFilled, Lock } from '@element-plus/icons-vue' | |||
const | |||
{ proxy } = getCurrentInstance() | |||
const appName = import.meta.env.MODE === 'production' ? '浙政钉' : '专有钉钉' | |||
// const qrSrc = | |||
// import.meta.env.MODE === 'production' | |||
// ? 'https://login-pro.ding.zj.gov.cn/oauth2/auth.htm?response_type=code&client_id=ls_project_managment_dingoa&redirect_uri=http://10.39.255.184:8090/login&scope=get_user_info&authType=QRCODE&embedMode=true' | |||
// : 'https://login.dg-work.cn/oauth2/auth.htm?response_type=code&client_id=ls_project_managment_dingoa&redirect_uri=http://121.199.28.40:9089/login&scope=get_user_info&authType=QRCODE&embedMode=true' | |||
// const qrSrc = | |||
// import.meta.env.MODE === 'production' | |||
// ? 'https://login-pro.ding.zj.gov.cn/oauth2/auth.htm?response_type=code&client_id=ls_project_managment_dingoa&redirect_uri=http://60.188.225.145/&scope=get_user_info&authType=QRCODE&embedMode=true' | |||
// : 'https://login.dg-work.cn/oauth2/auth.htm?response_type=code&client_id=ls-rebuild_dingoa&redirect_uri=http://ls-rebuild.ningdatech.com/login&scope=get_user_info&authType=QRCODE&embedMode=true' | |||
const qrSrc = | |||
import.meta.env.MODE === 'production' | |||
? 'https://login-pro.ding.zj.gov.cn/oauth2/auth.htm?response_type=code&client_id=ls_project_managment_dingoa&redirect_uri=http://60.188.225.145/&scope=get_user_info&authType=QRCODE&embedMode=true' | |||
: 'https://login.dg-work.cn/oauth2/auth.htm?response_type=code&client_id=ls-rebuild_dingoa&redirect_uri=http://ls-rebuild.ningdatech.com/login&scope=get_user_info&authType=QRCODE&embedMode=true' | |||
const tabStatus = ref(true) | |||
const clickTab = (val) => { | |||
tabStatus.value = val | |||
@@ -98,7 +98,7 @@ | |||
import { ElMessage } from 'element-plus' | |||
const title = '关联运维包' | |||
import { defineModel, ref, watch, defineEmits } from 'vue' | |||
import { defineModel, ref, watch, defineEmits, nextTick } from 'vue' | |||
import { | |||
operationPackageList, | |||
operationPackageSave, | |||
@@ -127,7 +127,7 @@ const emits = defineEmits(['relevanceSuccess']) | |||
async function savePackage (row) { | |||
if (!row.operationPackageName) { | |||
ElMessage({ | |||
message: '运维包名称', | |||
message: '请输入运维包名称', | |||
type: 'warning' | |||
}) | |||
return | |||
@@ -141,11 +141,14 @@ async function savePackage (row) { | |||
} | |||
loading.value = true | |||
await operationPackageSave(row) | |||
loading.value = false | |||
row.edit = false | |||
getList() | |||
try { | |||
await operationPackageSave(row) | |||
loading.value = false | |||
row.edit = false | |||
getList() | |||
} catch (e) { | |||
loading.value = false | |||
} | |||
} | |||
function addPackage () { | |||
@@ -154,6 +157,10 @@ function addPackage () { | |||
operationPackageName: '', | |||
edit: true | |||
}) | |||
nextTick(() => { | |||
// 调到底部 | |||
tableRef.value.setScrollTop(1000000) | |||
}) | |||
} | |||
async function relevance () { | |||
@@ -242,6 +242,11 @@ function relevanceSuccess () { | |||
getTableData() | |||
} | |||
async function operationPackageIdVisibleChange () { | |||
const res = await operationPackageList() | |||
operationList.value = res.data | |||
} | |||
</script> | |||
<template> | |||
<el-row> | |||
@@ -391,6 +396,7 @@ function relevanceSuccess () { | |||
filterable | |||
placeholder="全部" | |||
class="w-full" | |||
@visible-change="operationPackageIdVisibleChange" | |||
> | |||
<el-option | |||
v-for="(v,k) in operationList" | |||
@@ -510,6 +516,7 @@ function relevanceSuccess () { | |||
:column="column" | |||
:data="data" | |||
:total="total" | |||
row-key="projectId" | |||
:selectable="selectable" | |||
@selection-change="selectionChange" | |||
@get-table-data="getTableData" | |||
@@ -4,7 +4,8 @@ import store from '@/store' | |||
const { statusOptions } = store.dictStore.globalDicts || {} | |||
const select = { | |||
type: 'selection', | |||
width: '50' | |||
width: '50', | |||
reserveSelection: true | |||
} | |||
export const allColumn = [ | |||
{ | |||
@@ -178,6 +179,7 @@ export const maintenanceColumn = [ | |||
label: '序号', | |||
type: 'index', | |||
width: '60' | |||
}, | |||
{ | |||
label: '项目名称', | |||
@@ -48,11 +48,13 @@ defineProps({ | |||
</p> | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.constructionPlanFile&&JSON.parse(detailData.constructionPlanFile)?.length" label="建设方案"> | |||
<p v-for="(item,index) in detailData.constructionPlanFile&&JSON.parse(detailData.constructionPlanFile)" :key="index" class="mb-4"> | |||
<accessory :file-name="item.originalFileName" :file-id="item.id" :is-down-load="isDownLoadFile" /> | |||
</p> | |||
</el-descriptions-item> | |||
<template v-if="detailData.projectType!=='03'&&detailData.projectType!=='04'&&detailData.projectType!=='05'"> | |||
<el-descriptions-item v-if="detailData.constructionPlanFile&&JSON.parse(detailData.constructionPlanFile)?.length" label="建设方案"> | |||
<p v-for="(item,index) in detailData.constructionPlanFile&&JSON.parse(detailData.constructionPlanFile)" :key="index" class="mb-4"> | |||
<accessory :file-name="item.originalFileName" :file-id="item.id" :is-down-load="isDownLoadFile" /> | |||
</p> | |||
</el-descriptions-item> | |||
</template> | |||
<el-descriptions-item label="其他附件"> | |||
<p v-for="(item,index) in detailData.baseProjOtherFile&&JSON.parse(detailData.baseProjOtherFile)" :key="index" class="mb-4"> | |||
<accessory :file-name="item.originalFileName" :file-id="item.id" :is-down-load="isDownLoadFile" /> | |||