You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
948 lines
31 KiB
948 lines
31 KiB
<template>
|
|
<view>
|
|
<view class="cc-card form-card" ref="form">
|
|
<view class="form-title">基本信息</view>
|
|
<view class="form-item">
|
|
<text class="form-label">项目名称</text>
|
|
<view class="form-content">
|
|
<input v-model="form.projectName" class="form-input" placeholder="请输入项目名称" />
|
|
</view>
|
|
</view>
|
|
<view class="form-item">
|
|
<text class="form-label">行政区划</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.adcdName" class="form-input" placeholder="请选择行政区划" disabled/>
|
|
<view v-if="isEdit" style="position: relative;">
|
|
<view class="form-select" @click="handleOpenSelect">
|
|
选择
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目编码</text>
|
|
<view class="form-content">
|
|
<input v-model="form.proCode" class="form-input" placeholder="请输入项目编码" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目种类</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.projectCategory" class="form-input" placeholder="请选择项目种类" disabled/>
|
|
<picker v-if="isEdit" mode="selector" :range="projectCategorys" @change="onProjectCategoryPickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目法人单位</text>
|
|
<view class="form-content">
|
|
<input v-model="form.projectLegalPerson" class="form-input" placeholder="请输入项目法人单位" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目负责人</text>
|
|
<view class="form-content">
|
|
<input v-model="form.projectSuperintendent" class="form-input" placeholder="请输入项目负责人" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目负责人电话</text>
|
|
<view class="form-content">
|
|
<input v-model="form.projectLegalPhone" class="form-input" placeholder="请输入项目负责人电话" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">单位法定代表人</text>
|
|
<view class="form-content">
|
|
<input v-model="form.projectUnitLegal" class="form-input" placeholder="请输入单位法定代表人" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">单位法定代表人电话</text>
|
|
<view class="form-content">
|
|
<input v-model="form.projectUnitLegalPhone" class="form-input" placeholder="请输入单位法定代表人电话" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目类型</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.projectType" class="form-input" placeholder="请选择项目类型" disabled/>
|
|
<project-type-picker v-if="isEdit" operateType="edit" @trigge-method="handleProjectTypeParams" />
|
|
<!-- <picker v-if="isEdit" mode="selector" :range="projectTypes" @change="onProjectTypePickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker> -->
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">工程等别</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.projectLevel" class="form-input" placeholder="请选择工程等别" disabled/>
|
|
<picker v-if="isEdit" mode="selector" :range="projectLevels" @change="onProjectLevelPickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">工程用途</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.projectFunction" class="form-input" placeholder="请选择工程用途" disabled/>
|
|
<picker v-if="isEdit" mode="selector" :range="projectFunctions" @change="onProjectPurposesPickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">项目建设地址</text>
|
|
<view class="form-content">
|
|
<input v-model="form.constructionAddress" class="form-input" placeholder="请输入项目建设地址" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">建设模式</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.buildMode" class="form-input" placeholder="请选择建设模式" disabled/>
|
|
<picker v-if="isEdit" mode="selector" :range="buildModes" @change="onProjectModesPickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">建设性质</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.buildNature" class="form-input" placeholder="请选择建设性质" disabled/>
|
|
<picker v-if="isEdit" mode="selector" :range="buildNatures" @change="onProjectBuildTypesPickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<view class="form-label">建设内容<text class="number-limit">{{countBuildContentNumber}}/300</text></view>
|
|
<view class="form-content">
|
|
<textarea v-model="form.constructionContent" class="form-input form-textarea" placeholder="请输入建设内容" style="height: 51px;line-height: 17px;" maxlength="300"></textarea>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">中央资金(万元)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.centralArrangedFunds" class="form-input" placeholder="请输入中央资金(万元)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">中央资金资金比例(%)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.centralArrangedFundsRate" class="form-input" placeholder="请输入中央资金资金比例(%)" type="number"/>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">省级资金(万元)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.provincialFunding" class="form-input" placeholder="请输入省级资金(万元)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">省级资金比例(%)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.provincialFundingRate" class="form-input" placeholder="请输入省级资金比例(%)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">地市资金(万元)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.cityLevelFunds" class="form-input" placeholder="请输入地市资金(万元)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">地市资金比例(%)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.cityLevelFundsRate" class="form-input" placeholder="请输入地市资金比例(%)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">区县资金(万元)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.countyLevelFunds" class="form-input" placeholder="请输入区县资金(万元)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">区县资金比例(%)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.countyLevelFundsRate" class="form-input" placeholder="请输入区县资金比例(%)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">乡镇及群众自筹和其他投资(万元)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.townshipInvestments" class="form-input" placeholder="请输入乡镇及群众自筹和其他投资(万元)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">乡镇及群众自筹和其他投资比例(%)</text>
|
|
<view class="form-content">
|
|
<input v-model="form.townshipInvestmentsRate" class="form-input" placeholder="请输入乡镇及群众自筹和其他投资比例(%)" type="number" />
|
|
</view>
|
|
</view>
|
|
|
|
<view class="form-item">
|
|
<text class="form-label">是否省重大水利工程项目</text>
|
|
<view class="form-content">
|
|
<input v-model="showSelectInfo.isImportant" class="form-input" placeholder="请选择是否省重大水利工程项目" disabled/>
|
|
<picker v-if="isEdit" mode="selector" :range="isImportants" @change="onImportProjectPickerChange">
|
|
<view class="form-select">
|
|
选择
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 省市区选项 -->
|
|
<cityPicker :column="column" :default-value="defaultValue" :mask-close-able="maskCloseAble" @confirm="confirm" @cancel="cancel" :visible="visible"/>
|
|
</view>
|
|
|
|
<view v-if="pageType==='check'" class="cc-card form-card" style="margin-top: 16px;">
|
|
<view class="form-title">审核信息</view>
|
|
<!-- <view class="form-item">
|
|
<text class="form-label">审批人</text>
|
|
<view class="form-content">
|
|
<input v-model="form.checkPerson" class="form-input" placeholder="请输入审批人" />
|
|
</view>
|
|
</view> -->
|
|
<view class="form-item">
|
|
<text class="form-label">审批时间</text>
|
|
<view class="form-content">
|
|
<input v-model="form.approvalTime" class="form-input" placeholder="请输入审批时间" disabled />
|
|
<picker mode="date" @change="handleBindTimeChange">
|
|
<view class="form-select">选择</view>
|
|
</picker>
|
|
</view>
|
|
</view>
|
|
<view class="form-item">
|
|
<text class="form-label">审批意见</text>
|
|
<view class="form-content">
|
|
<textarea v-model="form.applicationResults" class="form-input" placeholder="请输入审批意见" rows="3"></textarea>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import ProjectTypePicker from '@/components/project-type-picker/project-type-picker.vue'
|
|
import { projectInfoApi, projectApplyAddApi, projectUpdateApi } from '@/api/system/project'
|
|
import { addressList } from '@/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js'
|
|
import { addDraft, getDraft, updateDraft } from '@/api/system/project/draft'
|
|
import { getProInfoApply, updateProInfoApply } from '@/api/system/project/proInfoApply'
|
|
|
|
export default {
|
|
props: {
|
|
pageType: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
operateType: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
projectId: {
|
|
type: String,
|
|
default: ''
|
|
}
|
|
},
|
|
components: {
|
|
ProjectTypePicker
|
|
},
|
|
data() {
|
|
return {
|
|
form: {
|
|
isApproval: "0",
|
|
id: this.projectId,
|
|
isKeyProject: null,
|
|
isPierceProject: null,
|
|
isMajor: null,
|
|
projectName: '',
|
|
unitLeader: null,
|
|
projectLegalPerson: '',
|
|
projectLegalUnit: null,
|
|
projectLegalPhone: '',
|
|
|
|
projectSuperintendent: '',
|
|
projectSuperintendentPhone: null,
|
|
projectUnitLegal: '',
|
|
projectUnitLegalPhone: '',
|
|
|
|
engineeringGrade: '',
|
|
engineeringPurposes: '',
|
|
workCategory: null,
|
|
constructionAddress: '',
|
|
constructionMode: '',
|
|
constructionNature: null,
|
|
constructionContent: '',
|
|
adcd: '',
|
|
basin: null,
|
|
projectType: '',
|
|
// fundingSource: null,
|
|
|
|
centralArrangedFunds: '',
|
|
centralArrangedFundsRate: '',
|
|
provincialFunding: '',
|
|
provincialFundingRate: '',
|
|
cityLevelFunds: '',
|
|
cityLevelFundsRate: '',
|
|
countyLevelFunds: '',
|
|
countyLevelFundsRate: '',
|
|
townshipInvestments: '',
|
|
townshipInvestmentsRate: '',
|
|
|
|
isMajorProject: '',
|
|
investmentSubject: null,
|
|
constructionPhase: null,
|
|
fundingNumber: null,
|
|
proCode: '',
|
|
proNo: null,
|
|
createUid: null,
|
|
createTime: null,
|
|
updateUid: null,
|
|
updateTime: null,
|
|
owerDept: null,
|
|
pointLatitudeLongitudeList: null,
|
|
lineLatitudeLongitudeList: null,
|
|
allLatitudeLongitudeList: null,
|
|
projectKinds: '',
|
|
applicationStatus: '6',
|
|
applicationTime: null
|
|
},
|
|
// 下拉展示信息
|
|
showSelectInfo: {
|
|
adcdName: '',
|
|
projectCategory: '',
|
|
projectType: '',
|
|
projectLevel: '',
|
|
projectFunction: '',
|
|
buildMode: '',
|
|
buildNature: '',
|
|
isImportant: ''
|
|
},
|
|
projectTypes: ['建筑', 'IT', '教育', '制造业'], // 可根据实际项目类型进行扩展
|
|
projectKindsOptions: [],
|
|
engineeringGradeOptions: [],
|
|
// 工程用途字典
|
|
engineeringPurposesOptions: [],
|
|
// 建设模式字典
|
|
constructionModeOptions: [],
|
|
// 建设性质字典
|
|
constructionNatureOptions: [],
|
|
isMajorProjectOptions: [],
|
|
// 省市区选项属性
|
|
visible: false,
|
|
maskCloseAble: true,
|
|
str: '',
|
|
defaultValue: '420103',
|
|
column: 3,
|
|
addressTreeList: addressList,
|
|
addressList: [],
|
|
isEdit: true,
|
|
// 重大项目字典
|
|
zd_projectTypeOptions: [],
|
|
ms_projectTypeOptions: [],
|
|
}
|
|
},
|
|
watch: {
|
|
operateType(newVal) {
|
|
if (newVal==='view') {
|
|
this.isEdit = false
|
|
} else {
|
|
this.isEdit = true
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
projectCategorys() {
|
|
return this.projectKindsOptions.map(option => option.dictLabel);
|
|
},
|
|
// projectTypes() {
|
|
// return this.projectTypes.map(option => option.dictLabel);
|
|
// },
|
|
projectLevels() {
|
|
return this.engineeringGradeOptions.map(option => option.dictLabel);
|
|
},
|
|
projectFunctions() {
|
|
return this.engineeringPurposesOptions.map(option => option.dictLabel);
|
|
},
|
|
buildModes() {
|
|
return this.constructionModeOptions.map(option => option.dictLabel);
|
|
},
|
|
buildNatures() {
|
|
return this.constructionNatureOptions.map(option => option.dictLabel);
|
|
},
|
|
isImportants() {
|
|
return this.isMajorProjectOptions.map(option => option.dictLabel);
|
|
},
|
|
countBuildContentNumber() {
|
|
return this.form.constructionContent.length
|
|
}
|
|
},
|
|
created () {
|
|
if (this.operateType==='view') {
|
|
this.isEdit = false
|
|
} else {
|
|
this.isEdit = true
|
|
}
|
|
this.handleAddressTreeData()
|
|
this.getDicts("type_of_project").then((response) => {
|
|
this.projectKindsOptions = response.data;
|
|
})
|
|
this.getDicts("engineering_grade").then((response) => {
|
|
this.engineeringGradeOptions = response.data;
|
|
})
|
|
this.getDicts("project_purposes").then((response) => {
|
|
this.engineeringPurposesOptions = response.data;
|
|
})
|
|
this.getDicts("Construction_mode").then((response) => {
|
|
this.constructionModeOptions = response.data;
|
|
})
|
|
this.getDicts("CONSTRUCTION_NATURE").then((response) => {
|
|
this.constructionNatureOptions = response.data;
|
|
})
|
|
this.getDicts("whether").then((response) => {
|
|
this.isMajorProjectOptions = response.data;
|
|
})
|
|
this.getDicts("major_project").then((response) => {
|
|
this.zd_projectTypeOptions = response.data
|
|
})
|
|
this.getDicts("general_project").then((response) => {
|
|
this.ms_projectTypeOptions = response.data
|
|
})
|
|
this.judgeGetInfo()
|
|
},
|
|
methods: {
|
|
// 展开省市区选项
|
|
handleOpenSelect() {
|
|
this.visible = true
|
|
},
|
|
cancel () {
|
|
this.visible = false
|
|
},
|
|
confirm (val) {
|
|
console.log(val)
|
|
this.str = JSON.stringify(val)
|
|
this.form.area = val.name
|
|
this.visible = false
|
|
this.form.adcd = val.code
|
|
this.showSelectInfo.adcdName = val.provinceName + '-' + val.cityName + '-' + val.areaName
|
|
},
|
|
|
|
// 处理下达时间
|
|
handleBindTimeChange(e) {
|
|
this.form.approvalTime = e.detail.value
|
|
},
|
|
|
|
// 判断请求哪个详情
|
|
judgeGetInfo() {
|
|
if (this.pageType==='draft') {
|
|
this.getProjectDraftInfo()
|
|
} else if (this.pageType==='check') {
|
|
this.getProjectApplyInfo()
|
|
} else {
|
|
this.getProjectInfo()
|
|
}
|
|
},
|
|
|
|
// 获取项目详情
|
|
getProjectInfo() {
|
|
if (!this.projectId) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
projectInfoApi(this.projectId).then(res => {
|
|
this.form = res.data
|
|
this.showSelectInfo.adcdName = this.formatAdcd(res.data)
|
|
this.showSelectInfo.projectCategory = this.selectDictLabel(this.projectKindsOptions, this.form.projectKinds)
|
|
this.showSelectInfo.projectLevel = this.selectDictLabel(this.engineeringGradeOptions, this.form.engineeringGrade)
|
|
this.showSelectInfo.projectFunction = this.selectDictLabel(this.engineeringPurposesOptions, this.form.engineeringPurposes)
|
|
this.showSelectInfo.buildMode = this.selectDictLabel(this.constructionModeOptions, this.form.constructionMode)
|
|
this.showSelectInfo.buildNature = this.selectDictLabel(this.constructionNatureOptions, this.form.constructionNature)
|
|
this.showSelectInfo.isImportant = this.selectDictLabel(this.isMajorProjectOptions, this.form.isMajorProject)
|
|
this.showSelectInfo.projectType = this.projectTypeFormat(this.form)
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
// 获取项目草稿详情
|
|
getProjectDraftInfo() {
|
|
if (!this.projectId) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
getDraft(this.projectId).then(res => {
|
|
this.form = res.data
|
|
this.showSelectInfo.adcdName = this.formatAdcd(res.data)
|
|
this.showSelectInfo.projectCategory = this.selectDictLabel(this.projectKindsOptions, this.form.projectKinds)
|
|
this.showSelectInfo.projectLevel = this.selectDictLabel(this.engineeringGradeOptions, this.form.engineeringGrade)
|
|
this.showSelectInfo.projectFunction = this.selectDictLabel(this.engineeringPurposesOptions, this.form.engineeringPurposes)
|
|
this.showSelectInfo.buildMode = this.selectDictLabel(this.constructionModeOptions, this.form.constructionMode)
|
|
this.showSelectInfo.buildNature = this.selectDictLabel(this.constructionNatureOptions, this.form.constructionNature)
|
|
this.showSelectInfo.isImportant = this.selectDictLabel(this.isMajorProjectOptions, this.form.isMajorProject)
|
|
this.showSelectInfo.projectType = this.projectTypeFormat(this.form)
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
// 获取项目草稿详情
|
|
getProjectApplyInfo() {
|
|
if (!this.projectId) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
getProInfoApply(this.projectId).then(res => {
|
|
this.form = res.data
|
|
this.showSelectInfo.adcdName = this.formatAdcd(res.data)
|
|
this.showSelectInfo.projectCategory = this.selectDictLabel(this.projectKindsOptions, this.form.projectKinds)
|
|
this.showSelectInfo.projectLevel = this.selectDictLabel(this.engineeringGradeOptions, this.form.engineeringGrade)
|
|
this.showSelectInfo.projectFunction = this.selectDictLabel(this.engineeringPurposesOptions, this.form.engineeringPurposes)
|
|
this.showSelectInfo.buildMode = this.selectDictLabel(this.constructionModeOptions, this.form.constructionMode)
|
|
this.showSelectInfo.buildNature = this.selectDictLabel(this.constructionNatureOptions, this.form.constructionNature)
|
|
this.showSelectInfo.isImportant = this.selectDictLabel(this.isMajorProjectOptions, this.form.isMajorProject)
|
|
this.showSelectInfo.projectType = this.projectTypeFormat(this.form)
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
|
|
// 将省市区的树状数据分解成列表,并在后面补零
|
|
handleAddressTreeData() {
|
|
let result = [];
|
|
function traverse(node) {
|
|
result.push({ code: node.code, name: node.name, dictLabel: node.name, dictValue: node.code}); // 将当前节点添加到结果中
|
|
if (node.children) {
|
|
node.children.forEach(child => traverse(child)); // 递归遍历子节点
|
|
}
|
|
}
|
|
this.addressTreeList.forEach(node => traverse(node)); // 遍历树的每个根节点
|
|
this.addressList = result
|
|
this.addressList.forEach(item => {
|
|
if (item.code.length===2) {
|
|
item.code = item.dictValue = item.code + '0000'
|
|
}
|
|
if (item.code.length===4) {
|
|
item.code = item.dictValue = item.code + '00'
|
|
}
|
|
})
|
|
},
|
|
|
|
// 处理省市区显示
|
|
formatAdcd(row) {
|
|
if (row.adcd) {
|
|
let provinceCode = row.adcd.slice(0, 2)+"0000";
|
|
let cityCode = row.adcd.slice(0, 4)+"00";
|
|
let areaCode = row.adcd;
|
|
let s="";
|
|
if (areaCode.length > 2) {
|
|
s=this.areaCodeFormat(provinceCode)
|
|
if (cityCode!=provinceCode){
|
|
s+="-"+this.areaCodeFormat(cityCode)
|
|
}
|
|
if (areaCode!=cityCode){
|
|
s+="-" + this.areaCodeFormat(areaCode)
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
},
|
|
|
|
//行政区划字典
|
|
areaCodeFormat(adcd, column) {
|
|
return this.selectDictLabel(
|
|
this.addressList,
|
|
adcd
|
|
);
|
|
},
|
|
|
|
// 判断必填项是否填写
|
|
judgeAttrWrite() {
|
|
const form = this.form
|
|
if (!form.projectName) {
|
|
uni.showToast({
|
|
title: `项目名称不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.adcd) {
|
|
uni.showToast({
|
|
title: `行政区划不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.proCode) {
|
|
uni.showToast({
|
|
title: `项目编码不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectKinds) {
|
|
uni.showToast({
|
|
title: `项目种类不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectLegalPerson) {
|
|
uni.showToast({
|
|
title: `项目法人单位不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectSuperintendent) {
|
|
uni.showToast({
|
|
title: `项目负责人不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectLegalPhone) {
|
|
uni.showToast({
|
|
title: `项目负责人电话不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectUnitLegal) {
|
|
uni.showToast({
|
|
title: `单位法定代表人不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectUnitLegalPhone) {
|
|
uni.showToast({
|
|
title: `单位法定代表人电话不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.projectType) {
|
|
uni.showToast({
|
|
title: `项目类型不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.engineeringGrade) {
|
|
uni.showToast({
|
|
title: `工程等别不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.engineeringPurposes) {
|
|
uni.showToast({
|
|
title: `工程用途不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.constructionAddress) {
|
|
uni.showToast({
|
|
title: `项目建设地址不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.constructionMode) {
|
|
uni.showToast({
|
|
title: `建设模式不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.constructionNature) {
|
|
uni.showToast({
|
|
title: `建设性质不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.constructionContent) {
|
|
uni.showToast({
|
|
title: `建设内容不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.centralArrangedFunds) {
|
|
uni.showToast({
|
|
title: `中央资金不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.centralArrangedFundsRate) {
|
|
uni.showToast({
|
|
title: `中央资金比例不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.provincialFunding) {
|
|
uni.showToast({
|
|
title: `省级资金不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.provincialFundingRate) {
|
|
uni.showToast({
|
|
title: `省级资金比例不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.cityLevelFunds) {
|
|
uni.showToast({
|
|
title: `地市资金不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.cityLevelFundsRate) {
|
|
uni.showToast({
|
|
title: `地市资金比例不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.countyLevelFunds) {
|
|
uni.showToast({
|
|
title: `区县资金不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.countyLevelFundsRate) {
|
|
uni.showToast({
|
|
title: `区县资金比例不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.townshipInvestments) {
|
|
uni.showToast({
|
|
title: `乡镇及群众自筹和其他投资不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.townshipInvestmentsRate) {
|
|
uni.showToast({
|
|
title: `乡镇及群众自筹和其他投资比例不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
if (!form.isMajorProject) {
|
|
uni.showToast({
|
|
title: `是否省重大水利工程不能为空!`,
|
|
icon: 'none'
|
|
})
|
|
return false
|
|
}
|
|
return true
|
|
},
|
|
|
|
handleProjectAdd() {
|
|
if (!this.judgeAttrWrite()) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
projectApplyAddApi(this.form).then(res => {
|
|
uni.showToast({
|
|
title: `操作成功`,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateTo({
|
|
url: `/pages/project/list/index`
|
|
});
|
|
})
|
|
},
|
|
|
|
// 新增项目草稿
|
|
handleProjectDraft() {
|
|
if (!this.judgeAttrWrite()) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
addDraft(this.form).then(res => {
|
|
uni.showToast({
|
|
title: `操作成功`,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateTo({
|
|
url: `/pages/project/list/index`
|
|
});
|
|
})
|
|
},
|
|
|
|
// 更新项目信息
|
|
handleProjectUpdate() {
|
|
if (!this.judgeAttrWrite()) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
if (this.pageType === 'project') {
|
|
projectUpdateApi(this.form).then(res => {
|
|
uni.showToast({
|
|
title: `操作成功`,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateTo({
|
|
url: `/pages/project/list/index`
|
|
})
|
|
})
|
|
} else {
|
|
updateDraft(this.form).then(res => {
|
|
uni.showToast({
|
|
title: `操作成功`,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateTo({
|
|
url: `/pages/project/list/index`
|
|
})
|
|
})
|
|
}
|
|
},
|
|
|
|
// 更新审批项目
|
|
handleUpdateProjectApply() {
|
|
if (!this.judgeAttrWrite()) {
|
|
return
|
|
}
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
this.form.applicationStatus = '3'
|
|
updateProInfoApply(this.form).then(res => {
|
|
uni.showToast({
|
|
title: `操作成功`,
|
|
icon: 'none'
|
|
})
|
|
uni.navigateTo({
|
|
url: `/pages/project/list/index`
|
|
})
|
|
})
|
|
},
|
|
|
|
// 处理项目类型
|
|
handleProjectTypeParams(params) {
|
|
this.form.projectType = params.projectType
|
|
this.form.isMajor = params.isMajor
|
|
this.showSelectInfo.projectType = params.projectTypeText
|
|
},
|
|
|
|
// 项目类型字典翻译
|
|
projectTypeFormat(row, column) {
|
|
if (row.isMajor == "zd") {
|
|
return this.selectDictLabel(
|
|
this.zd_projectTypeOptions,
|
|
row.projectType
|
|
);
|
|
} else if (row.isMajor == "ms") {
|
|
return this.selectDictLabel(
|
|
this.ms_projectTypeOptions,
|
|
row.projectType
|
|
);
|
|
}else if (row.isMajor !=null){
|
|
return '其他'
|
|
}
|
|
},
|
|
|
|
// 监听项目类型切换
|
|
onProjectTypePickerChange(event) {
|
|
this.form.projectType = this.projectTypes[event.detail.value].dictValue
|
|
this.showSelectInfo.projectType = this.projectTypes[event.detail.value]
|
|
},
|
|
onProjectCategoryPickerChange(event) {
|
|
this.form.projectKinds = this.projectKindsOptions[event.detail.value].dictValue
|
|
this.showSelectInfo.projectCategory = this.projectKindsOptions[event.detail.value].dictLabel
|
|
},
|
|
onProjectLevelPickerChange(event) {
|
|
this.form.engineeringGrade = this.engineeringGradeOptions[event.detail.value].dictValue
|
|
this.showSelectInfo.projectLevel = this.engineeringGradeOptions[event.detail.value].dictLabel
|
|
},
|
|
onProjectPurposesPickerChange(event) {
|
|
this.form.engineeringPurposes = this.engineeringPurposesOptions[event.detail.value].dictValue
|
|
this.showSelectInfo.projectFunction = this.engineeringPurposesOptions[event.detail.value].dictLabel
|
|
},
|
|
onProjectModesPickerChange(event) {
|
|
this.form.constructionMode = this.constructionModeOptions[event.detail.value].dictValue
|
|
this.showSelectInfo.buildMode = this.constructionModeOptions[event.detail.value].dictLabel
|
|
},
|
|
onProjectBuildTypesPickerChange(event) {
|
|
this.form.constructionNature = this.constructionNatureOptions[event.detail.value].dictValue
|
|
this.showSelectInfo.buildNature = this.constructionNatureOptions[event.detail.value].dictLabel
|
|
},
|
|
onImportProjectPickerChange(event) {
|
|
this.form.isMajorProject = this.isMajorProjectOptions[event.detail.value].dictValue
|
|
this.showSelectInfo.isImportant = this.isMajorProjectOptions[event.detail.value].dictLabel
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style>
|