@@ -17,8 +17,10 @@ function moveFile() { | |||
function openSSH() { | |||
echo "请输入服务器(121.199.28.40)密码: " | |||
read password # -s 参数使得输入内容不回显 | |||
sshpass -p "$password" ssh root@121.199.28.40 'cd ..; cd /server/testweb; git pull' | |||
# read password # -s 参数使得输入内容不回显 | |||
# sshpass -p "$password" ssh root@121.199.28.40 'cd ..; cd /server/testweb; git pull' | |||
sshpass -p Ndkj@2024 ssh root@121.199.28.40 'cd ..; cd /server/testweb; git pull' | |||
} | |||
function gitCommint() { | |||
@@ -0,0 +1,43 @@ | |||
/** | |||
* 项目阶段:未立项 | |||
*/ | |||
NOT_APPROVED(10000, "未立项",null), | |||
UNDER_INTERNAL_AUDIT(10001, "单位内部审核中",null), | |||
UNDER_INTERNAL_AUDIT_NOT_PASS(10002, "单位内部审核不通过",null), | |||
PENDING_PREQUALIFICATION(10003, "待预审",null), | |||
JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS(10004, "省级部门联审中",null), | |||
JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_SUCCESS(10018, "省级部门联审通过",null), | |||
THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED(10005, "省级部门联审不通过",null), | |||
PRE_APPLYING(10006, "预审中",null), | |||
PREQUALIFICATION_FAILED(10007, "预审不通过",null), | |||
DEPARTMENT_JOINT_REVIEW(10008, "部门联审中",null), | |||
DEPARTMENT_JOINT_REVIEW_FAILED(10009, "部门联审不通过",null), | |||
IN_THE_ANNUAL_PLAN(10010, "年度计划中",null), | |||
BE_SUSPENDED(10011, "被暂缓",null), | |||
SCHEME_UNDER_REVIEW(10012, "方案评审中",GovProjectStatusEnum.APPROVAL), | |||
SCHEME_REVIEW_FAILED(10013, "方案评审不通过",null), | |||
TO_BE_APPROVED(10014, "待立项批复",GovProjectStatusEnum.PENDING), | |||
TO_BE_DECLARED(10015, "待申报",null), | |||
PLAN_TO_BE_DECLARED(10016, "方案待申报",null), | |||
PENDING_PREQUALIFICATION_CHOICE(10017, "待预审选择态",null), | |||
PREQUALIFICATION_WITHDRAW_CHOICE(10019, "预审中撤回选择态",null), | |||
APPROVED_AFTER_CHOICE(10020, "立项批复后选择态",null), | |||
TO_BE_APP_REGISTER(10021, "待应用注册",null), | |||
SCHEME_AFTER_CHOICE(10022, "方案评审后选择态",null), | |||
IMPORTANT_PROJECT_CONFIRM(10023, "联审意见确认中",null), | |||
/** | |||
* 项目阶段:已立项 | |||
*/ | |||
PROJECT_APPROVED(20000, "已立项",null), | |||
TO_BE_PURCHASED(20001, "待采购",GovProjectStatusEnum.APPROVED), | |||
UNDER_CONSTRUCTION(20002, "建设中",null), | |||
TO_BE_FINALLY_INSPECTED(20003, "待终验",GovProjectStatusEnum.HAS_PRE_INS), | |||
FINAL_ACCEPTANCE_IS_UNDER_REVIEW(20004, "终验审核中",null), | |||
FINAL_ACCEPTANCE_REVIEW_FAILED(20005, "终验审核不通过",null), | |||
OPERATION(20006, "待开工",GovProjectStatusEnum.PURCHASED), | |||
/** | |||
* 项目阶段:已归档 | |||
*/ | |||
ARCHIVED(30000, "已归档",null), | |||
ACCEPTED(30001, "已验收",GovProjectStatusEnum.HAS_FINAL_INS); |
@@ -0,0 +1,5 @@ | |||
/pages/toDoCenter/handleDuringExamine/index.vue 270行 | |||
/pages/toDoCenter/components/auditDialog.vue 234行 | |||
@@ -252,52 +252,6 @@ onMounted(() => { | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="供应商收款开户行" prop="supplierBank"> | |||
<el-input | |||
v-model="formData.supplierBank" | |||
maxlength="50" | |||
placeholder="请输入" | |||
:disabled="!!$route.query.isReplenishment" | |||
/> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="供应商收款账号" prop="supplierAccount"> | |||
<el-input | |||
v-model="formData.supplierAccount" | |||
maxlength="50" | |||
placeholder="请输入" | |||
:disabled="!!$route.query.isReplenishment" | |||
/> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="质保期" prop="warrantyPeriod"> | |||
<el-input | |||
v-model="formData.warrantyPeriod" | |||
maxlength="50" | |||
placeholder="请输入" | |||
:disabled="!!$route.query.isReplenishment" | |||
@input="formData.warrantyPeriod=formData.warrantyPeriod?.replace(/[^\d]/g,'')" | |||
> | |||
<template #suffix> | |||
年 | |||
</template> | |||
</el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="质保金" prop="retentionMoney"> | |||
<el-input | |||
v-model.number="formData.retentionMoney" | |||
placeholder="请填写" | |||
:disabled="!!$route.query.isReplenishment" | |||
> | |||
<template #suffix>万元</template> | |||
</el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="合同签订完成时间" | |||
prop="contractTime" | |||
@@ -142,6 +142,7 @@ watch( | |||
<template #symbol="{scope}"> | |||
<el-form-item | |||
v-if="scope.$index>=0" | |||
:rules="[{required:true,message:' '}]" | |||
:prop="`perIndicator[${scope.$index}].symbol`" | |||
label-width="0" | |||
style="margin-bottom: 0" | |||
@@ -158,6 +159,7 @@ watch( | |||
<template #nums="{scope}"> | |||
<el-form-item | |||
v-if="scope.$index>=0" | |||
:rules="[{required:true,message:' '}]" | |||
:prop="`perIndicator[${scope.$index}].nums`" | |||
label-width="0" | |||
style="margin-bottom: 0" | |||
@@ -174,6 +176,7 @@ watch( | |||
<template #unit="{scope}"> | |||
<el-form-item | |||
v-if="scope.$index>=0" | |||
:rules="[{required:true,message:' '}]" | |||
:prop="`perIndicator[${scope.$index}].unit`" | |||
label-width="0" | |||
style="margin-bottom: 0" | |||
@@ -246,7 +246,15 @@ watch(() => props.detailData, val => { | |||
<el-descriptions-item label="立项依据说明" span="2"> | |||
<span style="word-break:break-all">{{ detailData.baseBasisEstablish || '-' }}</span> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="历年项目名称" :span="2"> | |||
<table-list | |||
:column="column1" | |||
:data="detailData?.baseHistorProjs|| []" | |||
:pagination="false" | |||
:empty-temp="false" | |||
style="width: 98%;" | |||
/> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="发改编码"> | |||
{{ detailData.developCode || '-' }} | |||
</el-descriptions-item> | |||
@@ -261,25 +269,55 @@ watch(() => props.detailData, val => { | |||
:span="2" | |||
>{{ detailData.isTemporaryAugment ? '是' : '否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item label="历年项目名称" :span="2"> | |||
<table-list | |||
:column="column1" | |||
:data="detailData?.baseHistorProjs|| []" | |||
:pagination="false" | |||
:empty-temp="false" | |||
style="width: 98%;" | |||
/> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="项目内容与预期成效" :span="2"> | |||
<table-list | |||
ref="tableList2" | |||
:pagination="false" | |||
style="width: 100%" | |||
:column="column2" | |||
:data="detailData?.beseExpectedResults&&JSON.parse(detailData?.beseExpectedResults)" | |||
:empty-temp="false" | |||
/> | |||
</el-descriptions-item> | |||
<template v-if="detailData.status>10011"> | |||
<el-descriptions-item label="项目内容与预期成效" :span="2"> | |||
<table-list | |||
ref="tableList2" | |||
:pagination="false" | |||
style="width: 100%" | |||
:column="column2" | |||
:data="detailData?.beseExpectedResults&&JSON.parse(detailData?.beseExpectedResults)" | |||
:empty-temp="false" | |||
/> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="移动端入口" :span="2"> | |||
{{ getMobileText(detailData.mobileTerminalEntry) }} | |||
</el-descriptions-item> | |||
<el-descriptions-item label="是否使用云资源" :span="2"> | |||
{{ detailData.isCloudResource===1?'是':'否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.isCloudResource===1" label="云资源" :span="2"> | |||
<el-table :data="detailData.cloudResource" style="width: 100%"> | |||
<el-table-column prop="cloudResourceType" label="云资源类型" /> | |||
<el-table-column prop="baseSpecification" label="基础规格" /> | |||
<el-table-column prop="serversCount" label="台数" /> | |||
<el-table-column prop="description" label="描述" /> | |||
</el-table> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="是否产生数据" :span="2"> | |||
{{ detailData.isProduceData===1?'是':'否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.isProduceData===1" label="数据列表" :span="2"> | |||
<el-table :data="detailData.produceData" style="width: 100%"> | |||
<el-table-column prop="dataDirectoryName" label="数据目录名称" /> | |||
<el-table-column prop="dataItem" label="数据项" /> | |||
</el-table> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="是否使用公共组件" :span="2"> | |||
{{ detailData.isCommonComponent===1?'是':'否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.isCommonComponent===1" label="公共组件列表" :span="2"> | |||
<el-table :data="detailData.commonComponent" style="width: 100%"> | |||
<el-table-column prop="componentName" label="公共组件名称" /> | |||
<el-table-column prop="componentType" label="公共组件类型" /> | |||
</el-table> | |||
</el-descriptions-item> | |||
</template> | |||
<el-descriptions-item | |||
v-if="detailData?.projectApplicationForm&&JSON.parse(detailData.projectApplicationForm)?.length" | |||
@@ -329,40 +367,6 @@ watch(() => props.detailData, val => { | |||
/> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="移动端入口" :span="2"> | |||
{{ getMobileText(detailData.mobileTerminalEntry) }} | |||
</el-descriptions-item> | |||
<el-descriptions-item label="是否使用云资源" :span="2"> | |||
{{ detailData.isCloudResource===1?'是':'否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.isCloudResource===1" label="云资源" :span="2"> | |||
<el-table :data="detailData.cloudResource" style="width: 100%"> | |||
<el-table-column prop="cloudResourceType" label="云资源类型" /> | |||
<el-table-column prop="baseSpecification" label="基础规格" /> | |||
<el-table-column prop="serversCount" label="台数" /> | |||
<el-table-column prop="description" label="描述" /> | |||
</el-table> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="是否产生数据" :span="2"> | |||
{{ detailData.isProduceData===1?'是':'否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.isProduceData===1" label="数据列表" :span="2"> | |||
<el-table :data="detailData.produceData" style="width: 100%"> | |||
<el-table-column prop="dataDirectoryName" label="数据目录名称" /> | |||
<el-table-column prop="dataItem" label="数据项" /> | |||
</el-table> | |||
</el-descriptions-item> | |||
<el-descriptions-item label="是否使用公共组件" :span="2"> | |||
{{ detailData.isCommonComponent===1?'是':'否' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item v-if="detailData.isCommonComponent===1" label="公共组件列表" :span="2"> | |||
<el-table :data="detailData.commonComponent" style="width: 100%"> | |||
<el-table-column prop="componentName" label="公共组件名称" /> | |||
<el-table-column prop="componentType" label="公共组件类型" /> | |||
</el-table> | |||
</el-descriptions-item> | |||
</template> | |||
</el-descriptions> | |||
</template> |
@@ -53,18 +53,6 @@ onMounted(() => { | |||
<el-descriptions-item label="合同总金额"> | |||
{{ data.totalAmount||'-' }}万元 | |||
</el-descriptions-item> | |||
<el-descriptions-item label="供应商收款开户行"> | |||
{{ data.supplierBank||'-' }} | |||
</el-descriptions-item> | |||
<el-descriptions-item label="采购方式"> | |||
{{ data.supplierAccount }} | |||
</el-descriptions-item> | |||
<el-descriptions-item label="质保期"> | |||
{{ data.warrantyPeriod||'-' }}年 | |||
</el-descriptions-item> | |||
<el-descriptions-item label="质保金"> | |||
{{ data.retentionMoney||'-' }}万元 | |||
</el-descriptions-item> | |||
<el-descriptions-item label="合同签订完成时间"> | |||
{{ data.contractTime||'-' }} | |||
</el-descriptions-item> | |||
@@ -38,6 +38,9 @@ const route = useRoute(), | |||
type: Boolean, | |||
default: false | |||
}, | |||
projectDetail: { | |||
type: Object | |||
}, | |||
projectCode: { | |||
type: String, | |||
default: '' | |||
@@ -50,13 +53,15 @@ const route = useRoute(), | |||
emits = defineEmits(['close', 'reload']), | |||
formRef = ref(), | |||
form = ref({ | |||
attachments: [] | |||
attachments: [], | |||
opinions: [] | |||
}), | |||
rules = { | |||
comment: [{ required: true, message: '请输入意见', trigger: 'blur' }], | |||
proposeTotalInvest: [{ required: true, message: '请输入建议总投资' }], | |||
proposeAnnualBudget: [{ required: true, message: '请输入建议年度预算' }], | |||
proposeAttachFiles: [{ required: true, message: '请上传' }] | |||
proposeAttachFiles: [{ required: true, message: '请上传' }], | |||
opinions: [{ required: true, message: '请上传' }] | |||
}, | |||
submit = async formEl => { | |||
if (!formEl) { | |||
@@ -75,6 +80,10 @@ const route = useRoute(), | |||
attachments: form.value.attachments.map((i) => ({ | |||
fileId: i.response.data.id, | |||
fileName: i.response.data.originalFileName | |||
})), | |||
opinions: form.value.opinions.map((i) => ({ | |||
fileId: i.response.data.id, | |||
fileName: i.response.data.originalFileName | |||
})) | |||
} | |||
} | |||
@@ -221,6 +230,32 @@ watch( | |||
</el-form-item> | |||
</el-col> | |||
</template> | |||
<el-col v-if="projectDetail&&projectDetail.status===20004" :span="24"> | |||
<el-form-item | |||
:label="`终验意见`" | |||
prop="opinions" | |||
> | |||
<el-upload | |||
v-model:file-list="form.opinions" | |||
class="w-full" | |||
:action="uploadUrl" | |||
:on-success="res => handleFileSuccess(res, form.opinions)" | |||
:on-error="handleFileError" | |||
:before-upload="file=>fileFormatVerification(file, {types: fileTypes})" | |||
:accept="fileTypes.map(i=>`.${i}`).join(',')" | |||
multiple | |||
:limit="10" | |||
:on-preview="handleFilePreview" | |||
> | |||
<el-button type="primary" class="mr-4">上传附件</el-button> | |||
<template #tip> | |||
<div class="el-upload__tip">支持{{ fileDesc }}文件</div> | |||
</template> | |||
</el-upload> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="24"> | |||
<el-form-item | |||
:label="`${constructionSuggestions&&action==='PASS'?'其他附件':'附件'}`" | |||
@@ -13,6 +13,7 @@ import WantReadInfo from '@/pages/projectStoreManage/projectStore/projectDetail/ | |||
import SjFlowRecord from '@/pages/projectStoreManage/projectStore/projectDetail/components/sjFlowRecord.vue' | |||
import ChangeInfoDialog from '@/pages/toDoCenter/handleDuringExamine/components/changeInfoDialog.vue' | |||
import { dictionary } from '@/http/apis/projectCollection/projectCollectionEnter' | |||
import { ElMessageBox } from 'element-plus' | |||
const | |||
userInfo = storeToRefs(store.userStore).userInfo || {}, | |||
{ proxy } = getCurrentInstance(), | |||
@@ -152,7 +153,8 @@ const | |||
visible: false, | |||
title: undefined, | |||
taskId: undefined, | |||
action: undefined | |||
action: undefined, | |||
projectDetail: undefined | |||
}), | |||
showDialog = async (title, action) => { | |||
dialogData.visible = true | |||
@@ -162,6 +164,7 @@ const | |||
dialogData.action = action | |||
dialogData.constructionSuggestions = flowData.value.constructionSuggestions | |||
dialogData.projectCode = detailData.value.projectCode | |||
dialogData.projectDetail = detailData.value | |||
}, | |||
close = () => { | |||
dialogData.visible = false | |||
@@ -257,6 +260,21 @@ onMounted(async () => { | |||
dictionaryList.value = (await dictionary()).data | |||
await store.countStore.setCountStore() | |||
}) | |||
function rejectYear () { | |||
// ElMessageBox.confirm('确认驳回至年度计划吗?') | |||
// .then(() => { | |||
// }) | |||
// .catch(() => { | |||
// }) | |||
ElMessageBox.confirm('正在开发中......') | |||
.then(() => { | |||
}) | |||
.catch(() => { | |||
}) | |||
} | |||
</script> | |||
<template> | |||
<div v-loading="loading" class="footerPage"> | |||
@@ -372,6 +390,11 @@ onMounted(async () => { | |||
>驳回 | |||
</el-button> | |||
<el-button @click="router.go(-1)">返回</el-button> | |||
<el-button | |||
plain | |||
type="danger" | |||
@click="rejectYear" | |||
>驳回至年度计划</el-button> | |||
<!-- <el-dropdown--> | |||
<!-- v-if="((flowData.canPass||flowData.canReject||flowData.canSeal)&&(flowData.processProgressVo.processDefName!=='申请延期审批流程')&&flowData.processProgressVo.processDefName!=='申请借阅审批流程')||isWithDraw()"--> | |||
<!-- size="small"--> | |||
@@ -404,6 +427,7 @@ onMounted(async () => { | |||
<!-- </template>--> | |||
<!-- </el-dropdown>--> | |||
</div> | |||
</div> | |||
</div> | |||
<div | |||
@@ -418,6 +442,7 @@ onMounted(async () => { | |||
@click="withdraw" | |||
>撤回</el-button> | |||
</div> | |||
</div> | |||
</div> | |||
<audit-dialog | |||
@@ -426,6 +451,7 @@ onMounted(async () => { | |||
:action="dialogData.action" | |||
:task-id="dialogData.taskId" | |||
:construction-suggestions="dialogData.constructionSuggestions" | |||
:project-detail="dialogData.projectDetail" | |||
:project-code="dialogData.projectCode" | |||
@close="close" | |||
@reload="reload" | |||