Browse Source

修改

dev_kxc
xzt 12 months ago
parent
commit
b7f34e697c
  1. 8
      jwtech-admin-page/src/api/build/attendance.js
  2. 36
      jwtech-admin-page/src/components/map/index.vue
  3. 33
      jwtech-admin-page/src/views/building/partyConstructionDevelopment/index.vue
  4. 204
      jwtech-admin-page/src/views/building/projectInfo/index.vue
  5. 86
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/baseMsg.vue
  6. 32
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/index.vue
  7. 6
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/acceptancePage.vue
  8. 24
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/alterPage.vue
  9. 29
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/basePage.vue
  10. 18
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/examinePage.vue
  11. 55
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/subcontractPage.vue
  12. 24
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/designChangeInformation.vue
  13. 31
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/firmInfo.vue
  14. 3
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/index.vue
  15. 7
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/investment/options/sourceFunds.vue
  16. 248
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/peasantWorkerSystem/options/clockingIn.vue
  17. 72
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/preparationForConstruction.vue
  18. 115
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/projectAcceptance.vue
  19. 24
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/EngineeringQualitySupervisionAndInspection.vue
  20. 38
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/divAssess.vue
  21. 19
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/engineeringQualityInspection.vue
  22. 29
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/safetyRecord.vue
  23. 70
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/index.vue
  24. 3
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/options/annualPlanManagement.vue
  25. 3
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/options/completionOfInvestment.vue
  26. 3
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/options/progressFilling.vue
  27. 39
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/supervisionAndManagement/options/record.vue
  28. 6
      jwtech-admin-page/src/views/project/plan/index.vue
  29. 10
      jwtech-admin-page/src/views/project/plan/options/EvaluationPage.vue
  30. 18
      jwtech-admin-page/src/views/project/plan/options/planBasePage.vue
  31. 3
      jwtech-admin-page/src/views/project/preDesign/index.vue
  32. 46
      jwtech-admin-page/src/views/project/proposal/index.vue
  33. 9
      jwtech-admin-page/src/views/project/special/index.vue
  34. 13
      jwtech-admin-page/src/views/project/special/options/ImplementationPage.vue
  35. 59
      jwtech-admin-page/src/views/project/special/options/basePage.vue
  36. 7
      jwtech-admin-page/src/views/project/special/options/index.vue
  37. 18
      jwtech-admin-page/src/views/project/special/options/resultsPage.vue
  38. 62
      jwtech-admin-page/src/views/project/special/options/taskPage.vue
  39. 6
      jwtech-admin-page/src/views/projectStatistics/projectStatisticsMsg/index.vue

8
jwtech-admin-page/src/api/build/attendance.js

@ -1,5 +1,13 @@
import request from '@/utils/request'
// 批量导入模版
export function tagTemplate(id) {
return request({
url: '/build/attendance/tagTemplate',
method: 'get'
})
}
// 查询农民工人员考勤信息列表
export function listAttendance(query) {
return request({

36
jwtech-admin-page/src/components/map/index.vue

@ -110,8 +110,8 @@ export default {
this.map = new Map({
target: "map",
view: new View({
center: [115.36502, 22.7787],
zoom: 7,
center: [113.36502, 22.9787],
zoom: 10,
// maxZoom: 12,
minZoom: 5,
projection: projection,
@ -183,20 +183,20 @@ export default {
url: "http://19.25.37.25:8090/iserver/services/map-XingZhengQuHua/rest/maps/行政区划",
type: "rest-map",
},
{
index: 4,
code: "0",
text: "",
url: "http://19.25.35.204:31190/iserver/services/map-GuangDongShengDaoLu/rest/maps/广东省道路",
type: "rest-map",
},
// {
// index: 5,
// index: 4,
// code: "0",
// text: "",
// url: "http://19.25.35.204:31190/iserver/services/map-ShengJiXingZhengQuHuaMian/rest/maps/",
// url: "http://19.25.35.204:31190/iserver/services/map-GuangDongShengDaoLu/rest/maps/广",
// type: "rest-map",
// },
{
index: 5,
code: "0",
text: "",
url: "http://19.25.35.204:31190/iserver/services/map-ShengJiXingZhengQuHuaMian/rest/maps/省级行政区划面",
type: "rest-map",
},
// {
// index: 6,
// code: '0',
@ -232,6 +232,20 @@ export default {
// url: 'http://19.25.35.204:31190/iserver/services/map-CunJiXingZhengQuHuaMian/rest/maps/',
// type: 'rest-map'
// }
{
index: 11,
code: "0",
text: "",
url: "http://19.25.35.204:31190/iserver/services/map-YiZhangTuShuiZha/rest/maps/水闸",
type: "rest-map",
},
{
index: 12,
code: "0",
text: "",
url: "http://19.25.35.204:31190/iserver/services/map-YiZhangTuDiFang/rest/maps/堤防",
type: "rest-map",
},
];
//
for (let i = 0; i < layerList.length; i++) {

33
jwtech-admin-page/src/views/building/partyConstructionDevelopment/index.vue

@ -121,7 +121,24 @@
align="center"
prop="attachment"
min-width="120"
/>
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(
scope.row.attachment ? scope.row.attachment : JSON.stringify({})
)"
:key="item + index"
>
<i class="el-icon-document"></i>
{{ item.name }}
<i
class="el-icon-download"
@click="$myDownLoadFile(item)"
style="cursor: pointer"
></i>
</div>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
@ -182,7 +199,7 @@
</el-select>
</el-form-item>
<el-form-item label="附件" prop="attachment">
<el-input v-model="form.attachment" placeholder="请输入附件" />
<myUpload :fileList="fileList" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -260,7 +277,10 @@ export default {
//
form: {},
//
rules: {},
rules: {
isCarry: [{ required: true, message: "请选择是否开展", tigger: blur }],
},
fileList: [],
};
},
created() {
@ -290,6 +310,7 @@ export default {
},
//
reset() {
this.fileList = [];
this.form = {
id: null,
proCode: null,
@ -357,6 +378,9 @@ export default {
const id = row.id || this.ids;
getDjjgd(id).then((response) => {
this.form = response.data;
if (this.form.attachment) {
this.fileList = JSON.parse(this.form.attachment);
}
this.open = true;
this.title = "修改党建工地开展情况";
});
@ -365,6 +389,9 @@ export default {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.fileList.length) {
this.form.attachment = JSON.stringify(this.fileList);
}
if (this.form.id != null) {
updateDjjgd(this.form).then((response) => {
if (response.code === 200) {

204
jwtech-admin-page/src/views/building/projectInfo/index.vue

@ -133,9 +133,9 @@
:formatter="projectTypeFormat"
min-width="120"
/>
<!-- <el-table-column label="项目法人" align="center" prop="unitLeader" min-width="120" /> -->
<!-- <el-table-column label="项目法人负责人" align="center" prop="unitLeader" min-width="120" /> -->
<!-- <el-table-column
label="项目法人"
label="项目法人负责人"
align="center"
prop="projectLegalPerson"
min-width="120"
@ -326,7 +326,7 @@
</el-col>
<!-- 标绘 -->
<el-col :span="12">
<el-form-item label="项目标绘" prop="aaa">
<el-form-item label="项目标绘" prop="allLatitudeLongitudeList">
<el-button type="primary" style="width: 150px" @click="openDraw"
>标绘</el-button
>
@ -342,7 +342,7 @@
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="项目法人" prop="unitLeader">
<el-form-item label="项目法人负责人" prop="unitLeader">
<el-input
v-model="form.unitLeader"
placeholder="请输入项目法人"
@ -350,7 +350,7 @@
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="项目法人" prop="projectLegalPerson">
<el-form-item label="项目法人负责人" prop="projectLegalPerson">
<el-input
v-model="form.projectLegalPerson"
placeholder="请输入项目法人"
@ -450,7 +450,7 @@
/> -->
<el-select
v-model="form.engineeringPurposes"
placeholder="请输入工程用途"
placeholder="请选择工程用途"
filterable
clearable
size="small"
@ -465,12 +465,8 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="工程类别" prop="workCategory">
<!-- <el-input
v-model="form.workCategory"
placeholder="请输入工程类别"
/> -->
<el-select
v-model="form.workCategory"
placeholder="请输入工程用途"
@ -487,7 +483,7 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="12">
<el-form-item label="项目建设地址" prop="constructionAddress">
<el-input
@ -504,7 +500,7 @@
/> -->
<el-select
v-model="form.constructionMode"
placeholder="请输入建设模式"
placeholder="请选择建设模式"
filterable
clearable
size="small"
@ -527,7 +523,7 @@
/> -->
<el-select
v-model="form.constructionNature"
placeholder="请输入建设模式"
placeholder="请选择建设性质"
filterable
clearable
size="small"
@ -542,9 +538,11 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item label="建设内容" prop="constructionContent">
<el-input
type="textarea"
rows="4"
v-model="form.constructionContent"
placeholder="请输入建设内容"
/>
@ -739,22 +737,23 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="建设阶段" prop="constructionPhase">
<el-input
v-model="form.constructionPhase"
placeholder="请输入建设阶段"
/>
</el-form-item>
</el-col>
<el-col :span="24">
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="项目投资主体" prop="investmentSubject">
<el-input
v-model="form.investmentSubject"
placeholder="请输入项目投资主体"
/>
</el-form-item>
</el-col>
</el-col> -->
</el-form>
</el-row>
<!-- <div slot="footer" class="dialog-footer"> -->
@ -797,7 +796,7 @@
{{ this.proMsg.projectName + "[" + this.proMsg.proCode + "]" }}
</el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 项目法人 </template>
<template slot="label"> 项目法人负责人 </template>
{{ this.proMsg.projectLegalPerson }}
</el-descriptions-item> -->
<el-descriptions-item>
@ -820,10 +819,10 @@
<template slot="label"> 工程用途 </template>
{{ engineeringPurposesFormat(this.proMsg) }}
</el-descriptions-item>
<el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 工程类别 </template>
{{ workCategoryFormat(this.proMsg) }}
</el-descriptions-item>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 建设模式 </template>
@ -911,14 +910,14 @@
<template slot="label"> 是否172项重大水利工程 </template>
{{ this.proMsg.isMajorProject }}
</el-descriptions-item>
<el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 项目投资主体 </template>
{{ this.proMsg.investmentSubject }}
</el-descriptions-item>
<el-descriptions-item>
</el-descriptions-item> -->
<!-- <el-descriptions-item>
<template slot="label"> 建设阶段 </template>
{{ this.proMsg.constructionPhase }}
</el-descriptions-item>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 资金下达文号 </template>
{{ this.proMsg.fundingNumber }}
@ -1086,6 +1085,34 @@ export default {
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
allLatitudeLongitudeList: [
{
required: true,
message: "请进行项目标绘",
trigger: "blur",
},
],
projectType: [
{
required: true,
message: "请选择项目类型",
trigger: "blur",
},
],
engineeringGrade: [
{
required: true,
message: "请选择工程等别",
trigger: "blur",
},
],
engineeringPurposes: [
{
required: true,
message: "请选择工程用途",
trigger: "blur",
},
],
projectLegalUnit: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
@ -1098,9 +1125,33 @@ export default {
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
constructionAddress: [
{
required: true,
message: "请输入项目建设地址",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
constructionMode: [
{
required: true,
message: "请选择建设模式",
trigger: "blur",
},
],
constructionNature: [
{
required: true,
message: "请选择建设性质",
trigger: "blur",
},
],
constructionContent: [
{
required: true,
message: "请输入建设内容",
trigger: "blur",
},
{ max: 6550, message: "字符长度最大为6550", trigger: "blur" },
],
basin: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
@ -1512,6 +1563,9 @@ export default {
updateUid: null,
updateTime: null,
owerDept: null,
pointLatitudeLongitudeList: null,
lineLatitudeLongitudeList: null,
allLatitudeLongitudeList: null,
};
this.resetForm("form");
},
@ -1562,6 +1616,9 @@ export default {
updateUid: null,
updateTime: null,
owerDept: null,
pointLatitudeLongitudeList: null,
lineLatitudeLongitudeList: null,
allLatitudeLongitudeList: null,
},
//
params: {
@ -1651,51 +1708,58 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.isMajor = this.radio;
if (this.proNo) {
this.form.proNo = this.proNo;
}
if (this.proCode) {
this.form.proCode = this.proCode;
}
if (this.adcd) {
this.form.adcd = this.adcd;
}
if (
this.form.projectName &&
this.form.projectName.indexOf("[") != -1
) {
this.form.projectName = this.form.projectName.slice(
0,
this.form.projectName.indexOf("[")
);
}
this.form.pointLatitudeLongitudeList = JSON.stringify(this.potMsg);
this.form.lineLatitudeLongitudeList = JSON.stringify(this.lineMsg);
this.form.allLatitudeLongitudeList = JSON.stringify(this.allDrawMsg);
console.log(this.form);
// console.log("this.form.isMajor", this.form.isMajor);
if (this.form.id != null) {
updateInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
this.form.pointLatitudeLongitudeList = JSON.stringify(this.potMsg);
this.form.lineLatitudeLongitudeList = JSON.stringify(this.lineMsg);
this.form.allLatitudeLongitudeList = JSON.stringify(this.allDrawMsg);
console.log(
"allLatitudeLongitudeList",
this.form.allLatitudeLongitudeList
);
setTimeout(() => {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.isMajor = this.radio;
if (this.proNo) {
this.form.proNo = this.proNo;
}
if (this.proCode) {
this.form.proCode = this.proCode;
}
if (this.adcd) {
this.form.adcd = this.adcd;
}
if (
this.form.projectName &&
this.form.projectName.indexOf("[") != -1
) {
this.form.projectName = this.form.projectName.slice(
0,
this.form.projectName.indexOf("[")
);
}
console.log(this.form);
// console.log("this.form.isMajor", this.form.isMajor);
if (this.form.id != null) {
updateInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
}
});
});
}, 10);
},
/** 删除按钮操作 */
handleDelete(row) {

86
jwtech-admin-page/src/views/building/projectInfo/projectProcess/baseMsg.vue

@ -24,7 +24,7 @@
{{ this.proMsg.projectName + "[" + this.proMsg.proCode + "]" }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label"> 项目法人 </template>
<template slot="label"> 项目法人负责人 </template>
{{ this.proMsg.projectLegalPerson }}
</el-descriptions-item>
<el-descriptions-item span="2">
@ -54,10 +54,10 @@
<template slot="label"> 工程用途 </template>
{{ engineeringPurposesFormat(this.proMsg) }}
</el-descriptions-item>
<el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 工程类别 </template>
{{ workCategoryFormat(this.proMsg) }}
</el-descriptions-item>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 建设模式 </template>
@ -145,14 +145,14 @@
<template slot="label"> 是否172项重大水利工程 </template>
{{ isBelongPlanningFormat(this.proMsg) }}
</el-descriptions-item>
<el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 项目投资主体 </template>
{{ this.proMsg.investmentSubject }}
</el-descriptions-item>
<el-descriptions-item>
</el-descriptions-item> -->
<!-- <el-descriptions-item>
<template slot="label"> 建设阶段 </template>
{{ this.proMsg.constructionPhase }}
</el-descriptions-item>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 资金下达文号 </template>
{{ this.proMsg.fundingNumber }}
@ -219,12 +219,12 @@
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="项目法人" prop="unitLeader">
<el-form-item label="项目法人负责人" prop="unitLeader">
<el-input v-model="form.unitLeader" placeholder="请输入项目法人" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="项目法人" prop="projectLegalPerson">
<el-form-item label="项目法人负责人" prop="projectLegalPerson">
<el-input
v-model="form.projectLegalPerson"
placeholder="请输入项目法人"
@ -339,12 +339,8 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="工程类别" prop="workCategory">
<!-- <el-input
v-model="form.workCategory"
placeholder="请输入工程类别"
/> -->
<el-select
v-model="form.workCategory"
placeholder="请输入工程用途"
@ -361,7 +357,7 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="12">
<el-form-item label="项目建设地址" prop="constructionAddress">
<el-input
@ -617,22 +613,22 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="建设阶段" prop="constructionPhase">
<el-input
v-model="form.constructionPhase"
placeholder="请输入建设阶段"
/>
</el-form-item>
</el-col>
<el-col :span="24">
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="项目投资主体" prop="investmentSubject">
<el-input
v-model="form.investmentSubject"
placeholder="请输入项目投资主体"
/>
</el-form-item>
</el-col>
</el-col> -->
</el-form>
</el-row>
<div class="dialog-footer" slot="footer">
@ -818,6 +814,34 @@ export default {
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
allLatitudeLongitudeList: [
{
required: true,
message: "请进行项目标绘",
trigger: "blur",
},
],
projectType: [
{
required: true,
message: "请选择项目类型",
trigger: "blur",
},
],
engineeringGrade: [
{
required: true,
message: "请选择工程等别",
trigger: "blur",
},
],
engineeringPurposes: [
{
required: true,
message: "请选择工程用途",
trigger: "blur",
},
],
projectLegalUnit: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
@ -830,9 +854,33 @@ export default {
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
constructionAddress: [
{
required: true,
message: "请输入项目建设地址",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
constructionMode: [
{
required: true,
message: "请选择建设模式",
trigger: "blur",
},
],
constructionNature: [
{
required: true,
message: "请选择建设性质",
trigger: "blur",
},
],
constructionContent: [
{
required: true,
message: "请输入建设内容",
trigger: "blur",
},
{ max: 6550, message: "字符长度最大为6550", trigger: "blur" },
],
basin: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],

32
jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/index.vue

@ -133,7 +133,7 @@
min-width="120"
/>
<el-table-column
label="承建单位"
label="发包单位名称"
align="center"
prop="constructionUnit"
min-width="120"
@ -360,7 +360,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="承建单位" prop="constructionUnit">
<el-form-item label="发包单位名称" prop="constructionUnit">
<el-input
v-model="form.constructionUnit"
placeholder="请输入承建单位"
@ -409,7 +409,9 @@
<el-input
v-model="form.contractDuration"
placeholder="请输入合同工期"
/>
>
<template slot="append"> </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -445,7 +447,9 @@
<el-input
v-model="form.paymentCycle"
placeholder="请输入支付周期"
/>
>
<template slot="append"> </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -610,7 +614,7 @@
{{ this.contractMsg.contractNumber }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 承建单位 </template>
<template slot="label"> 发包单位名称 </template>
{{ this.contractMsg.constructionUnit }}
</el-descriptions-item>
<el-descriptions-item>
@ -796,12 +800,14 @@ export default {
//
rules: {
contractName: [
{ required: true, message: "请输入合同名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
constructionUnit: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
sectionName: [
{ required: true, message: "请输入标段名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
contractAmount: [
@ -814,17 +820,25 @@ export default {
},
],
contractDuration: [
{ required: true, message: "请输入合同工期", trigger: "blur" },
{
pattern: /^(\-|\+)?\d+?$/,
message: "请输入正的数字",
pattern: /^(\+)?\d+?$/,
message: "请输入正整数的数字",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
signingTime: [
{ required: true, message: "请选择签订时间", trigger: "blur" },
],
commencementTime: [
{ required: true, message: "请选择开工时间", trigger: "blur" },
],
paymentCycle: [
{
pattern: /^(\-|\+)?\d+?$/,
message: "请输入正确的数字",
pattern: /^(\+)?\d+?$/,
message: "请输入正整数的数字",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },

6
jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/acceptancePage.vue

@ -348,13 +348,19 @@ export default {
form: {},
//
rules: {
acceptanceTime: [
{ required: true, message: "请选择验收时间", trigger: "blur" },
],
acceptanceAddress: [
{ required: true, message: "请输入地点", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
acceptanceExpert: [
{ required: true, message: "请输入验收专家", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
acceptanceOpinions: [
{ required: true, message: "请输入验收意见", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
},

24
jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/alterPage.vue

@ -131,10 +131,10 @@
min-width="120"
/>
<el-table-column
label="合同变更信息"
label="变更金额(万元)"
align="center"
prop="contractChangeInfo"
min-width="120"
min-width="150"
/>
<el-table-column
label="变更人"
@ -231,11 +231,13 @@
placeholder="请输入变更批复信息"
/>
</el-form-item>
<el-form-item label="合同变更信息" prop="contractChangeInfo">
<el-form-item label="变更金额" prop="contractChangeInfo">
<el-input
v-model="form.contractChangeInfo"
placeholder="请输入合同变更信息"
/>
placeholder="请输入变更金额"
>
<template slot="append">万元</template>
</el-input>
</el-form-item>
<el-form-item label="变更人" prop="changePerson">
<el-input v-model="form.changePerson" placeholder="请输入变更人" />
@ -298,7 +300,7 @@
{{ this.alterMsg.changeApprovalInfo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 合同变更信息 </template>
<template slot="label"> 变更金额 </template>
{{ this.alterMsg.contractChangeInfo }}
</el-descriptions-item>
<el-descriptions-item>
@ -384,6 +386,7 @@ export default {
//
rules: {
changeReason: [
{ required: true, message: "请输入变更原因", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
changeContent: [
@ -396,7 +399,14 @@ export default {
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
contractChangeInfo: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
// { max: 250, message: "250", trigger: "blur" },
{ required: true, message: "请输入变更金额", trigger: "blur" },
{
pattern:
/(^[1-9]([0-9]{0,6})?(\.[0-9]{1,2})?$|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$))/,
message: "请输入数字,整数7位,可保留两位小数",
trigger: "blur",
},
],
changePerson: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },

29
jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/basePage.vue

@ -80,7 +80,9 @@
<el-input
v-model="form.contractDuration"
placeholder="请输入合同工期"
/>
>
<template slot="append"> </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -113,10 +115,9 @@
</el-col>
<el-col :span="12">
<el-form-item label="支付周期" prop="paymentCycle">
<el-input
v-model="form.paymentCycle"
placeholder="请输入支付周期"
/>
<el-input v-model="form.paymentCycle" placeholder="请输入支付周期">
<template slot="append"> </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -243,12 +244,14 @@ export default {
form: {},
rules: {
contractName: [
{ required: true, message: "请输入合同名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
constructionUnit: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
sectionName: [
{ required: true, message: "请输入标段名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
contractAmount: [
@ -261,17 +264,25 @@ export default {
},
],
contractDuration: [
{ required: true, message: "请输入合同工期", trigger: "blur" },
{
pattern: /^(\-|\+)?\d+?$/,
message: "请输入正的数字",
pattern: /^(\+)?\d+?$/,
message: "请输入正整数的数字",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
signingTime: [
{ required: true, message: "请选择签订时间", trigger: "blur" },
],
commencementTime: [
{ required: true, message: "请选择开工时间", trigger: "blur" },
],
paymentCycle: [
{
pattern: /^(\-|\+)?\d+?$/,
message: "请输入正确的数字",
pattern: /^(\+)?\d+?$/,
message: "请输入正整数的数字",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },

18
jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/examinePage.vue

@ -113,12 +113,12 @@
<span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
<!-- <el-table-column
label="审批类型"
align="center"
prop="approvalType"
min-width="120"
/>
/> -->
<el-table-column
label="批复人"
align="center"
@ -208,7 +208,7 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="审批类型" prop="approvalType">
<!-- <el-form-item label="审批类型" prop="approvalType">
<el-select
v-model="form.approvalType"
placeholder="请选择审批类型"
@ -216,7 +216,7 @@
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="批复人" prop="approver">
<el-input v-model="form.approver" placeholder="请输入批复人" />
</el-form-item>
@ -277,10 +277,10 @@
<template slot="label"> 申请时间 </template>
{{ this.examineMsg.applyTime }}
</el-descriptions-item>
<el-descriptions-item>
<!-- <el-descriptions-item>
<template slot="label"> 审批类型 </template>
{{ this.examineMsg.approvalType }}
</el-descriptions-item>
</el-descriptions-item> -->
<el-descriptions-item>
<template slot="label"> 批复人 </template>
{{ this.examineMsg.approver }}
@ -368,8 +368,12 @@ export default {
applicant: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
approver: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
approver: [
{ required: true, message: "请输入批复人", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
approvalOpinion: [
{ required: true, message: "请选批复意见", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
},

55
jwtech-admin-page/src/views/building/projectInfo/projectProcess/contract/options/subcontractPage.vue

@ -30,10 +30,18 @@
<el-select
v-model="queryParams.data.subcontractingType"
placeholder="请选择分包类型"
filterable
clearable
size="small"
style="width: 100%"
@change="handleQuery"
>
<el-option label="请选择字典生成" value="" />
<el-option
v-for="dict in subcontractingTypeOptions"
:key="dict.dictLabel + dict.id"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
@ -120,6 +128,7 @@
label="分包类型"
align="center"
prop="subcontractingType"
:formatter="subcontractingTypeFormat"
min-width="120"
/>
<el-table-column
@ -129,7 +138,7 @@
min-width="150"
/>
<el-table-column
label="承包公司"
label="承包单位"
align="center"
prop="contractingCompany"
show-overflow-tooltip
@ -233,10 +242,25 @@
</el-col>
<el-col :span="24">
<el-form-item label="分包类型" prop="subcontractingType">
<el-input
<!-- <el-input
v-model="form.subcontractingType"
placeholder="请输入分包类型"
/>
/> -->
<el-select
v-model="form.subcontractingType"
placeholder="请选择分包类型"
filterable
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in subcontractingTypeOptions"
:key="dict.dictLabel + dict.id"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
@ -250,10 +274,10 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="承包公司" prop="contractingCompany">
<el-form-item label="承包单位" prop="contractingCompany">
<el-input
v-model="form.contractingCompany"
placeholder="请输入承包公司"
placeholder="请输入承包单位"
/>
</el-form-item>
</el-col>
@ -337,7 +361,7 @@
{{ this.subMsg.subcontractingAmount + " 万元" }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 承包公司 </template>
<template slot="label"> 承包单位 </template>
{{ this.subMsg.contractingCompany }}
</el-descriptions-item>
<el-descriptions-item>
@ -430,9 +454,11 @@ export default {
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
subcontractName: [
{ required: true, message: "请输入分包合同名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
subcontractingType: [
{ required: true, message: "请选择分包类型", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
subcontractingAmount: [
@ -445,19 +471,27 @@ export default {
},
],
contractingCompany: [
{ required: true, message: "请输入承包单位", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
subcontractingTime: [
{ required: true, message: "请选择分包时间", trigger: "blur" },
],
work: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
jobDetails: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
},
subMsg: {},
subcontractingTypeOptions: [],
};
},
created() {
this.getList();
// console.log("contractNumber", this.contractNumber);
this.getDicts("subcontracting_type").then((response) => {
this.subcontractingTypeOptions = response.data;
});
},
// axios
watch: {
@ -468,6 +502,13 @@ export default {
},
},
methods: {
//
subcontractingTypeFormat(row, column) {
return this.selectDictLabel(
this.subcontractingTypeOptions,
row.subcontractingType
);
},
/** 查询分包合同列表 */
getList() {
if (this.$route.query.baseDataId) {

24
jwtech-admin-page/src/views/building/projectInfo/projectProcess/designChangeInformation.vue

@ -457,13 +457,37 @@ export default {
form: {},
//
rules: {
changeType: [
{
required: true,
message: "请选择变更类型",
trigger: "blur",
},
],
changeTime: [
{
required: true,
message: "选择变更时间",
trigger: "blur",
},
],
changeReason: [
{
required: true,
message: "请输入变更原因",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
changeApplicant: [
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
changeContent: [
{
required: true,
message: "请输入变更内容",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
approvalOpinions: [

31
jwtech-admin-page/src/views/building/projectInfo/projectProcess/firmInfo.vue

@ -25,7 +25,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目法人">
<el-form-item label="项目法人负责人">
<el-input
v-model="firmInfo.projectLegalPerson"
:readonly="true"
@ -587,16 +587,43 @@ export default {
//
rules: {
enterpriseName: [
{
required: true,
message: "请输入单位名称",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
enterprisePerson: [
{
required: true,
message: "请输入单位联系人",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
duties: [
{
required: true,
message: "请输入单位联系人职务",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
duties: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
socialCreditCode: [
{
required: true,
message: "请输入单位统一社会信用代码",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
enterprisePhone: [
{
required: true,
message: "请输入单位联系电话",
trigger: "blur",
},
{
pattern:
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,

3
jwtech-admin-page/src/views/building/projectInfo/projectProcess/index.vue

@ -192,7 +192,8 @@ import preparationForConstruction from "./preparationForConstruction.vue";
import qualityControl from "./qualityControl/index.vue";
import safetyRecord from "./safetyRecord.vue";
import designChangeInformation from "./designChangeInformation.vue";
import scheduleManagement from "./scheduleManagement.vue";
// import scheduleManagement from "./scheduleManagement.vue";
import scheduleManagement from "./scheduleManagement/index.vue";
import supervisionAndManagement from "./supervisionAndManagement/index.vue";
import projectLegalPersonEvaluation from "./projectLegalPersonEvaluation.vue";
import investment from "./investment/index.vue";

7
jwtech-admin-page/src/views/building/projectInfo/projectProcess/investment/options/sourceFunds.vue

@ -464,6 +464,13 @@ export default {
form: {},
//
rules: {
releaseTime: [
{
required: true,
message: "请选择下达日期",
trigger: "blur",
},
],
centralArrangedFunds: [
{
required: true,

248
jwtech-admin-page/src/views/building/projectInfo/projectProcess/peasantWorkerSystem/options/clockingIn.vue

@ -50,6 +50,16 @@
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-folder-add"
size="mini"
@click="openAddAll"
v-hasPermi="['build:attendance:addAll']"
>批量导入</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@ -227,7 +237,7 @@
style="width: 100%"
v-model="form.attendanceYear"
type="month"
value-format="yyyy-MM-dd"
value-format="yyyy-MM"
placeholder="选择考勤所属年月"
>
</el-date-picker>
@ -246,11 +256,92 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改农民工人员考勤信息对话框 -->
<el-dialog
title="批量导入"
:visible.sync="uploadParams.addAllOpen"
width="1200px"
append-to-body
:close-on-click-modal="false"
@closed="closeTemplate"
>
<el-upload
ref="uploadTemplate"
class="upload-template"
:action="uploadParams.url"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
:headers="uploadParams.headers"
:on-change="handleChange"
:on-remove="handleRemove"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:data="{ proNo: proNo, proCode: proCode }"
:disabled="uploadParams.isUploading"
:auto-upload="false"
:file-list="uploadParams.templateList"
drag
multiple
>
<!-- :show-file-list="false" -->
<!-- <el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button> -->
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">
<el-button
type="text"
icon="el-icon-download"
size="mini"
@click="importTemplate"
v-hasPermi="['build:attendance:importTemplate']"
>模版下载</el-button
>
<span style="color: red; margin-left: 20px"
>提示仅允许导入xlsxlsx格式文件</span
>
</div>
</el-upload>
<el-table
:data="uploadParams.tableData"
style="width: 100%"
max-height="250"
>
<el-table-column prop="name" label="姓名" />
<el-table-column prop="idNo" label="身份证号码" />
<!-- <el-table-column prop="attendanceYear" label="考勤所属年月" /> -->
<el-table-column
label="考勤所属年月"
align="center"
prop="attendanceYear"
>
<template slot-scope="scope">
<!-- <span>{{ parseTime(scope.row.attendanceYear, "{y}-{m}-{d}") }}</span> -->
<span>{{ parseTime(scope.row.attendanceYear, "{y}-{m}") }}</span>
<!-- <span>{{ scope.row.attendanceYear }}</span> -->
</template>
</el-table-column>
<el-table-column prop="attendanceDay" label="考勤天数" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitTemplate"> </el-button>
<el-button @click="cancelTemplate"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
tagTemplate,
listAttendance,
getAttendance,
delAttendance,
@ -259,12 +350,32 @@ import {
exportAttendance,
} from "@/api/build/attendance";
import { listRealName } from "@/api/build/realName";
import { getToken } from "@/utils/auth";
export default {
name: "Attendance",
props: ["proNo", "proCode"],
data() {
return {
//
uploadParams: {
// templateList: [],
//
addAllOpen: false,
//
isUploading: false,
//
updateSupport: 0,
//
headers: {
jianwei: "jwtech " + getToken(),
},
//
url: "thinking/build/attendance/importData",
tableData: [],
fileTemp: null,
},
//
loading: true,
//
@ -283,6 +394,7 @@ export default {
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
@ -357,6 +469,140 @@ export default {
});
},
methods: {
// excel
handleRemove(file, fileList) {
// console.log(11111111);
this.uploadParams.fileTemp = null;
},
// excel
handleChange(file, fileList) {
// console.log(22222222);
this.uploadParams.fileTemp = file.raw;
// console.log(this.uploadParams.fileTemp);
//
if (this.uploadParams.fileTemp) {
if (
this.uploadParams.fileTemp.type ==
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
this.uploadParams.fileTemp.type == "application/vnd.ms-excel"
) {
this.importfxx(this.uploadParams.fileTemp);
} else {
this.$message({
type: "warning",
message: "附件格式错误,请删除后重新上传!",
});
}
} else {
this.$message({
type: "warning",
message: "请上传附件!",
});
}
},
importfxx(obj) {
let _this = this;
// DOM
this.file = obj;
var rABS = false; //
var f = this.file;
var reader = new FileReader();
FileReader.prototype.readAsBinaryString = function (f) {
var binary = "";
var rABS = false; //
var pt = this;
var wb; //
var outdata;
var reader = new FileReader();
reader.onload = function (e) {
var bytes = new Uint8Array(reader.result);
// console.log(reader.result);
var length = bytes.byteLength;
for (var i = 0; i < length; i++) {
binary += String.fromCharCode(bytes[i]);
}
var XLSX = require("xlsx");
if (rABS) {
wb = XLSX.read(btoa(fixdata(binary)), {
//
type: "base64",
});
} else {
wb = XLSX.read(binary, {
type: "binary",
//
cellDates: true,
});
}
outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]); //outdataexcel西
this.da = [...outdata];
let arr = [];
this.da.map((v) => {
let obj = {};
obj.attendanceDay = v["考勤天数"]; //ip
obj.attendanceYear = v["考勤所属年月"]; //ip
obj.idNo = v["身份证"]; //ip
obj.name = v["姓名"]; //ip
if (obj.idNo && obj.name) {
arr.push(obj);
}
});
//return arr
// exceltableData()
_this.uploadParams.tableData =
_this.uploadParams.tableData.concat(arr);
console.log(
"_this.uploadParams.tableData",
_this.uploadParams.tableData
);
};
reader.readAsArrayBuffer(f);
};
if (rABS) {
reader.readAsArrayBuffer(f);
} else {
reader.readAsBinaryString(f);
}
},
//
handleFileUploadProgress(event, file, fileList) {
this.uploadParams.isUploading = true;
},
//
handleFileSuccess(response, file, fileList) {
this.uploadParams.isUploading = false;
if (this.uploadParams.tableData.length) {
this.uploadParams.addAllOpen = false;
// this.$alert(response.msg, "", { dangerouslyUseHTMLString: true });
this.getList();
} else {
this.$message({
type: "warning",
message: "暂无有效数据",
});
}
},
submitTemplate() {
this.$refs.uploadTemplate.submit();
},
cancelTemplate() {
this.uploadParams.addAllOpen = false;
},
closeTemplate() {
this.uploadParams.tableData = [];
this.$refs.uploadTemplate.clearFiles();
},
openAddAll() {
this.uploadParams.addAllOpen = true;
},
importTemplate() {
tagTemplate().then((res) => {
console.log("下载模版", res);
this.downloadFile(res, true, res.msg);
});
},
//
setOptionWidth(event) {
this.$nextTick(() => {

72
jwtech-admin-page/src/views/building/projectInfo/projectProcess/preparationForConstruction.vue

@ -313,8 +313,9 @@
></el-input>
</el-form-item>
</el-col>
<!-- ===============施工组织设计==================== -->
<div class="listTitle">
<!-- <div class="listTitle">
<span>施工组织设计</span>
</div>
<el-col :span="24">
@ -322,10 +323,6 @@
label="施工组织设计附件"
prop="workCommencementOrder2"
>
<!-- <el-input
v-model="form.workCommencementOrder2"
placeholder="请输入意见附件"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
@ -383,10 +380,10 @@
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-col> -->
<!-- ===============施工准备措施==================== -->
<div class="listTitle">
<!-- <div class="listTitle">
<span>施工准备措施</span>
</div>
@ -395,10 +392,6 @@
label="施工准备措施附件"
prop="workCommencementOrder3"
>
<!-- <el-input
v-model="form.workCommencementOrder3"
placeholder="请输入意见附件"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
@ -430,9 +423,9 @@
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-col> -->
<!-- ===============施工准备措施检查==================== -->
<div class="listTitle">
<!-- <div class="listTitle">
<span>施工准备措施检查</span>
</div>
@ -441,10 +434,6 @@
label="施工准备措施检查附件"
prop="workCommencementOrder4"
>
<!-- <el-input
v-model="form.workCommencementOrder4"
placeholder="请输入意见附件"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
@ -476,19 +465,15 @@
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-col> -->
<!-- ===============项目开工文件==================== -->
<div class="listTitle">
<!-- <div class="listTitle">
<span>项目开工文件</span>
</div>
<el-col :span="24">
<el-form-item label="项目开工文件" prop="workCommencementOrder5">
<!-- <el-input
v-model="form.workCommencementOrder5"
placeholder="请输入意见附件"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
@ -546,8 +531,9 @@
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-col> -->
</el-form>
<!-- <div class="btnList">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
@ -616,7 +602,17 @@ export default {
preMsg: {},
//
rules: {
workCommencementOrder1: [
{ required: true, message: "请上传开工令文件", trigger: "blur" },
],
reportTime1: [
{ required: true, message: "请选择上报时间", trigger: "blur" },
],
approvalTime1: [
{ required: true, message: "请选择审批时间", trigger: "blur" },
],
approvalOpinion1: [
{ required: true, message: "请输入批复意见", trigger: "blur" },
{ max: 500, message: "字符长度最大为500", trigger: "blur" },
],
approvalOpinion2: [
@ -687,15 +683,33 @@ export default {
this.title = "修改施工准备信息";
},
submitForm() {
if (this.fileList1.length) {
}
this.form.workCommencementOrder1 = this.fileList1.length
? JSON.stringify(this.fileList1)
: null;
this.form.workCommencementOrder2 = this.fileList2.length
? JSON.stringify(this.fileList2)
: null;
this.form.workCommencementOrder3 = this.fileList3.length
? JSON.stringify(this.fileList3)
: null;
this.form.workCommencementOrder4 = this.fileList4.length
? JSON.stringify(this.fileList4)
: null;
this.form.workCommencementOrder5 = this.fileList5.length
? JSON.stringify(this.fileList5)
: null;
// this.form.workCommencementOrder1 = JSON.stringify(this.fileList1);
// this.form.workCommencementOrder2 = JSON.stringify(this.fileList2);
// this.form.workCommencementOrder3 = JSON.stringify(this.fileList3);
// this.form.workCommencementOrder4 = JSON.stringify(this.fileList4);
// this.form.workCommencementOrder5 = JSON.stringify(this.fileList5);
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.proNo = this.proNo;
this.form.proCode = this.proCode;
this.form.workCommencementOrder1 = JSON.stringify(this.fileList1);
this.form.workCommencementOrder2 = JSON.stringify(this.fileList2);
this.form.workCommencementOrder3 = JSON.stringify(this.fileList3);
this.form.workCommencementOrder4 = JSON.stringify(this.fileList4);
this.form.workCommencementOrder5 = JSON.stringify(this.fileList5);
if (this.form.id != null) {
updateMeas(this.form).then((response) => {
if (response.code === 200) {

115
jwtech-admin-page/src/views/building/projectInfo/projectProcess/projectAcceptance.vue

@ -1024,12 +1024,72 @@ export default {
contractName: [
{ max: 100, message: "字符长度最大为100", trigger: "blur" },
],
contractAcceptTime: [
{
required: true,
message: "请选择完工验收时间",
trigger: "blur",
},
],
contractResult: [
{
required: true,
message: "请输入验收结论",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
acceptancePerson: [
{
required: true,
message: "请添加验收人员",
trigger: "blur",
},
],
acceptanceDecisionLetter: [
{
required: true,
message: "请上传验收鉴定书",
trigger: "blur",
},
],
completionTechnicalTime: [
{
required: true,
message: "请选择竣工技术鉴定时间",
trigger: "blur",
},
],
technicalPreAcceptanceTime: [
{
required: true,
message: "请选择竣工技术预验收时间",
trigger: "blur",
},
],
completionAcceptanceTime: [
{
required: true,
message: "请选择竣工验收时间",
trigger: "blur",
},
],
acceptanceResults: [
{
required: true,
message: "请输入验收结果",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
acceptancePersonnel: [
{
required: true,
message: "请添加验收人员",
trigger: "blur",
},
],
},
//
fileList1: [],
@ -1282,6 +1342,44 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.form.acceptancePerson = this.dynamicTags1.length
? JSON.stringify(this.dynamicTags1)
: null;
this.form.acceptancePersonnel = this.dynamicTags2.length
? JSON.stringify(this.dynamicTags2)
: null;
this.form.acceptanceDecisionLetter = this.fileList1.length
? JSON.stringify(this.fileList1)
: null;
this.form.contractVideo = this.fileList2.length
? JSON.stringify(this.fileList2)
: null;
this.form.contractDocument = this.fileList3.length
? JSON.stringify(this.fileList3)
: null;
this.form.environmentalAcceptanceDocuments = this.fileList4.length
? JSON.stringify(this.fileList4)
: null;
this.form.acceptanceAppraisalCertificate = this.fileList5.length
? JSON.stringify(this.fileList5)
: null;
this.form.waterConservationFile = this.fileList6.length
? JSON.stringify(this.fileList6)
: null;
this.form.resettlementAcceptanceFile = this.fileList7.length
? JSON.stringify(this.fileList7)
: null;
this.form.acceptanceImageData = this.fileList8.length
? JSON.stringify(this.fileList8)
: null;
this.form.engineeringArchivesFile = this.fileList9.length
? JSON.stringify(this.fileList9)
: null;
this.form.completionFinalFile = this.fileList10.length
? JSON.stringify(this.fileList10)
: null;
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.projectName = this.form.projectName.slice(
@ -1290,22 +1388,7 @@ export default {
);
this.form.proNo = this.proNo;
this.form.proCode = this.proCode;
this.form.acceptancePerson = JSON.stringify(this.dynamicTags1);
this.form.acceptancePersonnel = JSON.stringify(this.dynamicTags2);
this.form.acceptanceDecisionLetter = JSON.stringify(this.fileList1);
this.form.contractVideo = JSON.stringify(this.fileList2);
this.form.contractDocument = JSON.stringify(this.fileList3);
this.form.environmentalAcceptanceDocuments = JSON.stringify(
this.fileList4
);
this.form.acceptanceAppraisalCertificate = JSON.stringify(
this.fileList5
);
this.form.waterConservationFile = JSON.stringify(this.fileList6);
this.form.resettlementAcceptanceFile = JSON.stringify(this.fileList7);
this.form.acceptanceImageData = JSON.stringify(this.fileList8);
this.form.engineeringArchivesFile = JSON.stringify(this.fileList9);
this.form.completionFinalFile = JSON.stringify(this.fileList10);
console.log("this.formthis.form", this.form);
if (this.form.id != null) {
updateAcc(this.form).then((response) => {

24
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/EngineeringQualitySupervisionAndInspection.vue

@ -194,7 +194,7 @@
<el-input
v-model="form.inspectContent"
type="textarea"
placeholder="请输入内容"
placeholder="请输入检查内容"
/>
</el-form-item>
<el-form-item label="检查单位" prop="inspectUnit">
@ -223,7 +223,7 @@
<el-input
v-model="form.rectificationContent"
type="textarea"
placeholder="请输入内容"
placeholder="请输入整改落实情况"
/>
</el-form-item>
<el-form-item label="检查意见报告" prop="inspectOpinion">
@ -322,15 +322,35 @@ export default {
//
rules: {
inspectContent: [
{
required: true,
message: "请输入检查内容",
trigger: "blur",
},
{ max: 2950, message: "字符长度最大为2950", trigger: "blur" },
],
inspectUnit: [
{
required: true,
message: "请输入检查单位",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
inspectPerson: [
{
required: true,
message: "请输入现场检查人员",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
rectificationContent: [
{
required: true,
message: "请输入整改落实情况",
trigger: "blur",
},
{ max: 2950, message: "字符长度最大为2950", trigger: "blur" },
],
},

38
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/divAssess.vue

@ -187,10 +187,11 @@
</el-input>
</el-form-item>
<el-form-item label="分部工程质量评定表" prop="divisionalAttachment">
<el-input
<!-- <el-input
v-model="form.divisionalAttachment"
placeholder="请输入分部工程质量评定表"
/>
/> -->
<myUpload :fileList="fileList" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -274,7 +275,19 @@ export default {
trigger: "blur",
},
],
qualityLevel: [
{
required: true,
message: "请选择质量等级",
trigger: "blur",
},
],
cellProjectRate: [
{
required: true,
message: "请输入单位工程优良率",
trigger: "blur",
},
{
pattern: /^(([1-9]?\d(\.\d{1,2})?)|100|100.00)$/,
message: "请输入0-100数字,可保留两位小数",
@ -282,17 +295,30 @@ export default {
},
],
majorCellRate: [
{
required: true,
message: "请输入关键部位和重要隐藏单元优良率",
trigger: "blur",
},
{
pattern: /^(([1-9]?\d(\.\d{1,2})?)|100|100.00)$/,
message: "请输入0-100数字,可保留两位小数",
trigger: "blur",
},
],
divisionalAttachment: [
{
required: true,
message: "请上传分部工程质量评定表",
trigger: "blur",
},
],
},
unitProjectOptions: [],
divProjectOptions: [],
divProjectOptionsStatus: true,
qualityLevelOptions: [],
fileList: [],
};
},
created() {
@ -345,6 +371,7 @@ export default {
},
//
reset() {
this.fileList = [];
this.form = {
id: null,
unitId: null,
@ -420,6 +447,9 @@ export default {
getDivisionRate(id).then((response) => {
this.form = response.data;
// console.log(response.data);
if (this.form.divisionalAttachment) {
this.fileList = JSON.parse(this.form.divisionalAttachment);
}
if (response.data.unitId) this.divProjectOptionsStatus = false;
formUnitGetSubProject(response.data.unitId).then((res) => {
// console.log(res.data.id, res.data);
@ -431,9 +461,13 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.form.divisionalAttachment = this.fileList.length
? JSON.stringify(this.fileList)
: null;
this.$refs["form"].validate((valid) => {
this.form.proNo = this.proNo;
this.form.proCode = this.proCode;
if (valid) {
if (this.form.id != null) {
updateDivisionRate(this.form).then((response) => {

19
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/engineeringQualityInspection.vue

@ -670,11 +670,28 @@ export default {
reportForm: {},
//
rules: {
section: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
section: [
{
required: true,
message: "请输入标段",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
qualitySupervisionAgency: [
{
required: true,
message: "请输入质监受理机构",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
supervisionResult: [
{
required: true,
message: "请输入质监内容",
trigger: "blur",
},
{ max: 65500, message: "字符长度最大为65500", trigger: "blur" },
],
},

29
jwtech-admin-page/src/views/building/projectInfo/projectProcess/safetyRecord.vue

@ -227,7 +227,7 @@
<el-input
v-model="form.content"
type="textarea"
placeholder="请输入内容"
placeholder="请输入内容描述"
/>
</el-form-item>
<el-form-item label="备注" prop="remark" v-if="form.type == 1">
@ -413,17 +413,44 @@ export default {
form: {},
//
rules: {
year: [
{
required: true,
message: "请选择年度",
trigger: "blur",
},
],
content: [
{
required: true,
message: "请输入内容描述",
trigger: "blur",
},
{ max: 2950, message: "字符长度最大为2950", trigger: "blur" },
],
remark: [{ max: 2950, message: "字符长度最大为2950", trigger: "blur" }],
approvalUnit: [
{
required: true,
message: "请输入批复单位",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
approvalOpinionNumber: [
{
required: true,
message: "请输入批复意见文号",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
filingsUnit: [
{
required: true,
message: "请输入备案单位",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
},

70
jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/index.vue

@ -0,0 +1,70 @@
<template>
<div class="app-container">
<el-tabs
v-model="activeName"
@tab-click="handleClick"
style="margin-bottom: 20px"
>
<el-tab-pane
label="年度计划管理"
name="annualPlanManagement"
:lazy="true"
>
<annualPlanManagement :proNo="proNo" :proCode="proCode" />
</el-tab-pane>
<el-tab-pane label="进度填报" name="progressFilling" :lazy="true">
<progressFilling :proNo="proNo" :proCode="proCode" />
</el-tab-pane>
<el-tab-pane label="投资完成" name="completionOfInvestment" :lazy="true">
<completionOfInvestment :proNo="proNo" :proCode="proCode" />
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import annualPlanManagement from "./options/annualPlanManagement.vue";
import progressFilling from "./options/progressFilling.vue";
import completionOfInvestment from "./options/completionOfInvestment.vue";
export default {
components: {
annualPlanManagement,
progressFilling,
completionOfInvestment,
},
props: ["proNo", "proCode"],
data() {
return {
activeName: "annualPlanManagement",
routeList: [],
formData: [],
form: {},
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
proCode: null,
proNo: null,
},
},
};
},
created() {
this.routeList = JSON.parse(this.$store.state.basePageData.routeList);
},
methods: {
goBack() {
this.$router.back();
},
//
handleClick(tab, event) {
// console.log("", tab, event);
// console.log("", this.routeList[1].routeName);
this.routeList[1].routeName = tab.label;
},
},
};
</script>

3
jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/options/annualPlanManagement.vue

@ -0,0 +1,3 @@
<template>
<div>计划管理</div>
</template>

3
jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/options/completionOfInvestment.vue

@ -0,0 +1,3 @@
<template>
<div>投资完成</div>
</template>

3
jwtech-admin-page/src/views/building/projectInfo/projectProcess/scheduleManagement/options/progressFilling.vue

@ -0,0 +1,3 @@
<template>
<div>进度填报</div>
</template>

39
jwtech-admin-page/src/views/building/projectInfo/projectProcess/supervisionAndManagement/options/record.vue

@ -146,12 +146,13 @@
/>
</el-form-item>
<el-form-item label="相关附件" prop="files">
<myUpload :fileList="fileList" />
<!-- <el-input
v-model="form.files"
type="textarea"
placeholder="请输入内容"
/> -->
<el-upload
<!-- <el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
@ -170,7 +171,7 @@
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过200M
</div>
</el-upload>
</el-upload> -->
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -303,15 +304,44 @@ export default {
form: {},
//
rules: {
meetingTime: [
{
required: true,
message: "请选择会议时间",
trigger: "blur",
},
],
meetingLocation: [
{
required: true,
message: "请输入会议地点",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
participants: [
{
required: true,
message: "请输入参会人员",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
meetingContents: [
{
required: true,
message: "请输入会议内容",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
files: [
{
required: true,
message: "请上传相关附件",
trigger: "blur",
},
],
},
fileList: [],
//
@ -432,12 +462,15 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.form.files = this.fileList.length
? JSON.stringify(this.fileList)
: null;
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.proNo = this.proNo;
this.form.proCode = this.proCode;
// if (this.fileList.length > 0) {
this.form.files = JSON.stringify(this.fileList);
// }
if (this.form.id != null) {
updateRecord(this.form).then((response) => {

6
jwtech-admin-page/src/views/project/plan/index.vue

@ -293,7 +293,7 @@
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 是否省重点水利建设项目 </template>
{{ this.planMsg.isMajor }}
{{ isMajorFormat(this.planMsg) }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 归属业务部门 </template>
@ -500,6 +500,10 @@ export default {
planTypeFormat(row, column) {
return this.selectDictLabel(this.planTypeOptions, row.planType);
},
isMajorFormat(row, column) {
return this.selectDictLabel(this.isMajorOptions, row.isMajor);
},
//
cancel() {
this.open = false;

10
jwtech-admin-page/src/views/project/plan/options/EvaluationPage.vue

@ -139,10 +139,20 @@ export default {
//
rules: {
evaluator: [
{
required: true,
message: "请输入评价人",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
planName: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
evaluationContent: [
{
required: true,
message: "请输入评价内容",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
},

18
jwtech-admin-page/src/views/project/plan/options/planBasePage.vue

@ -5,7 +5,7 @@
ref="form"
:model="baseMsg"
:rules="rules"
label-width="168px"
label-width="180px"
label-position="left"
>
<el-col :span="24">
@ -149,6 +149,11 @@ export default {
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
department: [
{
required: true,
message: "请输入归属业务部门",
trigger: "blur",
},
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
],
content: [{ max: 250, message: "字符长度最大为250", trigger: "blur" }],
@ -159,11 +164,18 @@ export default {
trigger: "blur",
},
],
isMajor: [
{
required: true,
message: "请选择是否省重点水利建设项目",
trigger: "blur",
},
],
planType: [
{ required: true, message: "请选择计划类型", trigger: "blur" },
],
investment: [
// { required: true, message: "", trigger: "blur" },
{ required: true, message: "请输入投资计划", trigger: "blur" },
{
pattern:
/(^[1-9]([0-9]{0,6})?(\.[0-9]{1,2})?$|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$))/,
@ -202,7 +214,7 @@ export default {
// this.list = this.states.map(item => {
// return { value: `value:${item}`, label: `label:${item}` };
// });
listProjectinfo({}).then((response) => {
listProjectinfo({ data: {} }).then((response) => {
// console.log(response);
this.projectNameOptions = response.records.map((item) => {
return {

3
jwtech-admin-page/src/views/project/preDesign/index.vue

@ -601,6 +601,9 @@ export default {
projectName: [
{ required: true, message: "请输入项目名称", trigger: "blur" },
],
constructionNature: [
{ required: true, message: "请选择建设性质", trigger: "blur" },
],
projectUnitName: [
{ required: true, message: "请输入项目单位名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },

46
jwtech-admin-page/src/views/project/proposal/index.vue

@ -193,7 +193,7 @@
prop="compilingUnit"
min-width="150"
/>
<el-table-column
<!-- <el-table-column
label="项目内容"
align="center"
prop="projectContent"
@ -203,7 +203,19 @@
<template slot-scope="scope">
<span>{{ scope.row.projectContent || "-" }}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
label="批复部门"
align="center"
prop="approvalDepartment"
min-width="120"
/>
<el-table-column
label="批复文号"
align="center"
prop="approvalNo"
min-width="120"
/>
<el-table-column
label="批复意见"
align="center"
@ -468,6 +480,23 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="批复部门" prop="approvalDepartment">
<el-input
v-model="form.approvalDepartment"
placeholder="请输入批复部门"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="批复文号" prop="approvalNo">
<el-input
v-model="form.approvalNo"
placeholder="请输入批复文号"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="批复意见" prop="approvalOpinion">
<el-input
@ -583,7 +612,7 @@
}"
:contentStyle="{ minWidth: '350px' }"
>
<el-descriptions-item span="2">
<el-descriptions-item>
<template slot="label"> 是否属于规划内 </template>
{{ isBelongPlanningFormat(this.proposalMsg) }}
</el-descriptions-item>
@ -612,10 +641,19 @@
<template slot="label"> 上报时间 </template>
{{ this.proposalMsg.reportTime }}
</el-descriptions-item>
<el-descriptions-item span="2">
<el-descriptions-item>
<template slot="label"> 审批时间 </template>
{{ this.proposalMsg.approvalTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复部门 </template>
{{ this.proposalMsg.approvalDepartment }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复文号 </template>
{{ this.proposalMsg.approvalNo }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label"> 项目内容 </template>
{{ this.proposalMsg.projectContent }}

9
jwtech-admin-page/src/views/project/special/index.vue

@ -170,17 +170,18 @@
min-width="120"
/>
<el-table-column
label="规划水平年"
label="规划基准年"
align="center"
prop="startYear"
min-width="120"
/>
<el-table-column
label="规划基准年"
label="规划水平年"
align="center"
prop="endYear"
min-width="120"
/>
<el-table-column
label="规划金额(万元)"
align="center"
@ -288,11 +289,11 @@
{{ this.specialMsg.compilingUnit }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 规划水平 </template>
<template slot="label"> 规划基准 </template>
{{ this.specialMsg.startYear }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 规划基准 </template>
<template slot="label"> 规划水平 </template>
{{ this.specialMsg.endYear }}
</el-descriptions-item>
<el-descriptions-item>

13
jwtech-admin-page/src/views/project/special/options/ImplementationPage.vue

@ -6,7 +6,7 @@
:inline="true"
v-show="showSearch"
>
<el-form-item label="规划名称" prop="planningName">
<el-form-item label="规划名称" prop="projectName">
<el-input
v-model="queryParams.cv.value"
placeholder="请输入规划名称"
@ -157,7 +157,8 @@
prop="planningName"
min-width="180"
/> -->
<el-table-column
<!-- <el-table-column
label="计划时间"
align="center"
prop="planningTime"
@ -166,7 +167,8 @@
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planningTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column
label="计划资金进度安排"
align="center"
@ -482,7 +484,7 @@ export default {
{ required: true, message: "选择项目开始时间", trigger: "blur" },
],
projectEndTime: [
{ required: true, message: "选择项目开始时间", trigger: "blur" },
// { required: true, message: "", trigger: "blur" },
],
projectLeader: [
{ required: true, message: "请输入项目负责人", trigger: "blur" },
@ -641,7 +643,7 @@ export default {
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.cv.type = "like";
this.queryParams.cv.name = "planningName";
this.queryParams.cv.name = "projectName";
this.getList();
},
/** 重置按钮操作 */
@ -668,6 +670,7 @@ export default {
const id = row.id || this.ids;
getPlanImpleInfo(id).then((response) => {
this.form = response.data;
// this.form.projectName = this.projectName;
this.open = true;
this.title = "修改专题实施信息";
});

59
jwtech-admin-page/src/views/project/special/options/basePage.vue

@ -50,7 +50,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规划编制单位">
<el-form-item label="规划编制单位" prop="compilingUnit">
<el-input
v-model="baseMsg.compilingUnit"
placeholder="请输入规划编制单位"
@ -73,12 +73,11 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规划水平年">
<el-form-item label="规划基准年" prop="startYear">
<el-date-picker
v-model="baseMsg.startYear"
placeholder="请输入规划水平年"
placeholder="请输入规划基准年"
type="year"
data="year"
format="yyyy"
@ -91,10 +90,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规划基准年" label-width="120px">
<el-form-item label="规划水平年" prop="endYear">
<el-date-picker
v-model="baseMsg.endYear"
placeholder="请输入规划基准年"
placeholder="请输入规划水平年"
type="year"
data="year"
format="yyyy"
@ -106,8 +105,9 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="规划编制单位性质">
<el-form-item label="规划编制单位性质" prop="compilingUnitNature">
<el-input
v-model="baseMsg.compilingUnitNature"
placeholder="请输入规划编制单位性质"
@ -120,7 +120,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="规划编制单位地址">
<el-form-item label="规划编制单位地址" prop="compilingUnitAddress">
<el-input
v-model="baseMsg.compilingUnitAddress"
placeholder="请输入规划编制单位地址"
@ -134,7 +134,10 @@
</el-col>
<el-col :span="24">
<el-form-item label="规划编制法人代表">
<el-form-item
label="规划编制法人代表"
prop="compilingUnitLegalPerson"
>
<el-input
v-model="baseMsg.compilingUnitLegalPerson"
placeholder="请输入规划编制法人代表"
@ -148,7 +151,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="规划报告">
<el-form-item label="规划报告" prop="projectReport">
<!-- <el-input
v-model="baseMsg.projectReport"
placeholder="请输入规划报告"
@ -189,6 +192,7 @@
<script>
import {
listProjectinfo,
getProjectinfo,
addProjectinfo,
updateProjectinfo,
} from "@/api/earlyStage/projectinfo";
@ -229,6 +233,18 @@ export default {
areasOptions: [],
selectedOptions: [],
rules: {
startYear: [
{
trigger: "blur",
validator: this.compareTime,
},
],
endYear: [
{
trigger: "blur",
validator: this.compareTime,
},
],
projectName: [
{ required: true, message: "请输入规划名称", trigger: "blur" },
{ max: 250, message: "字符长度最大为250", trigger: "blur" },
@ -294,6 +310,23 @@ export default {
},
},
methods: {
compareTime(rule, value, callback) {
if (this.baseMsg.startYear && this.baseMsg.endYear) {
// dateStr = dateStr.substring(0,19);
// let dateStr1 = this.form.reportTime.replace(/-/g, "/");
// let dateStr2 = this.form.approvalTime.replace(/-/g, "/");
let dateStr1 = this.baseMsg.startYear;
let dateStr2 = this.baseMsg.endYear;
let timeTamp1 = new Date(dateStr1).getTime();
let timeTamp2 = new Date(dateStr2).getTime();
// console.log(1111, timeTamp1, timeTamp2);
if (timeTamp1 <= timeTamp2) {
callback();
} else {
callback(new Error("规划基准年时间要小于规划水平年"));
}
}
},
// label list id
getParentsByValue(list, value) {
for (let i in list) {
@ -357,6 +390,12 @@ export default {
/** 查询专题项目前期背景信息列表 */
getList() {
this.queryParams.data.id = this.$route.query.baseDataId;
// getProjectinfo(this.$route.query.baseDataId).then((response) => {
// this.baseMsg = response.data;
// if (this.baseMsg.projectReport) {
// this.fileList1 = JSON.parse(this.baseMsg.projectReport);
// }
// });
listProjectinfo(this.queryParams).then((response) => {
this.baseMsg = response.records[0];
if (this.baseMsg.projectReport) {

7
jwtech-admin-page/src/views/project/special/options/index.vue

@ -36,7 +36,7 @@
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<taskPage :proNo="formData.proNo" />
<taskPage :proNo="formData.proNo" :projectName="formData.projectName" />
</el-tab-pane>
<el-tab-pane
v-if="checkPermi(['projectSpecial:ztssxx:index'])"
@ -75,7 +75,10 @@
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<resultsPage :proNo="formData.proNo" />
<resultsPage
:proNo="formData.proNo"
:projectName="formData.projectName"
/>
</el-tab-pane>
</el-tabs>
</div>

18
jwtech-admin-page/src/views/project/special/options/resultsPage.vue

@ -277,6 +277,13 @@
:close-on-click-modal="false"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="规划名称" prop="evaluationName">
<el-input
v-model="form.evaluationName"
placeholder="请输入规划名称"
readonly
/>
</el-form-item>
<el-form-item label="评价人" prop="evaluator">
<el-input v-model="form.evaluator" placeholder="请输入评价人" />
</el-form-item>
@ -292,12 +299,7 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="规划名称" prop="evaluationName">
<el-input
v-model="form.evaluationName"
placeholder="请输入规划名称"
/>
</el-form-item>
<el-form-item label="评价内容" prop="evaluationContent">
<el-input
v-model="form.evaluationContent"
@ -428,7 +430,7 @@ import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "Gain",
props: ["proNo"],
props: ["proNo", "projectName"],
data() {
return {
//
@ -631,6 +633,7 @@ export default {
handleAdd() {
// console.log(" this.resultsFileList", this.resultsFileList);
this.open = true;
this.form.evaluationName = this.projectName;
this.title = "添加专题成果";
},
/** 修改按钮操作 */
@ -638,6 +641,7 @@ export default {
const id = row.id || this.ids;
getGain(id).then((response) => {
this.form = response.data;
// this.form.evaluationName = this.projectName;
//
if (response.data.fileAttachmentRelation) {
this.resultsFileList = JSON.parse(

62
jwtech-admin-page/src/views/project/special/options/taskPage.vue

@ -169,7 +169,7 @@
prop="expectedGoal"
min-width="180"
/>
<el-table-column
<!-- <el-table-column
label="规划附件"
align="center"
prop="projectAttachment"
@ -189,7 +189,7 @@
></i>
</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
label="批复日期"
align="center"
@ -201,11 +201,18 @@
</template>
</el-table-column>
<el-table-column
label="批复人信息"
label="批复单位"
align="center"
prop="replyPerson"
min-width="180"
/>
<el-table-column
label="批复文号"
align="center"
prop="replyNo"
min-width="180"
/>
<el-table-column
label="批复意见"
align="center"
@ -213,7 +220,7 @@
min-width="300"
:show-overflow-tooltip="true"
/>
<el-table-column
<!-- <el-table-column
label="意见附件"
align="center"
prop="opinionAttachment"
@ -233,7 +240,7 @@
></i>
</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
label="操作"
align="center"
@ -290,6 +297,15 @@
>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-col :span="12">
<el-form-item label="规划名称" prop="projectName">
<el-input
v-model="form.projectName"
placeholder="请输入规划名称"
readonly
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规划上报日期" prop="projectReportTime">
<el-date-picker
@ -304,14 +320,7 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规划名称" prop="projectName">
<el-input
v-model="form.projectName"
placeholder="请输入规划名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属类别" prop="category">
<el-select
@ -353,10 +362,19 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="批复人" prop="replyPerson">
<el-input v-model="form.replyPerson" placeholder="请输入批复人" />
<el-form-item label="批复单位" prop="replyPerson">
<el-input
v-model="form.replyPerson"
placeholder="请输入批复单位"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="批复文号" prop="replyNo">
<el-input v-model="form.replyNo" placeholder="请输入批复文号" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="批复意见" prop="replyOpinion">
<el-input
@ -477,9 +495,14 @@
{{ this.taskMsg.replyTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复人信息 </template>
<template slot="label"> 批复单位 </template>
{{ this.taskMsg.replyPerson }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复文号 </template>
{{ this.taskMsg.replyNo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复意见 </template>
{{ this.taskMsg.replyOpinion }}
@ -546,7 +569,7 @@ import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
props: ["proNo"],
props: ["proNo", "projectName"],
name: "Approval",
data() {
return {
@ -584,6 +607,7 @@ export default {
projectAttachment: null,
replyTime: null,
replyPerson: null,
replyNo: null,
replyOpinion: null,
opinionAttachment: null,
proNo: null,
@ -699,6 +723,7 @@ export default {
projectAttachment: null,
replyTime: null,
replyPerson: null,
replyNo: null,
replyOpinion: null,
opinionAttachment: null,
proNo: null,
@ -730,6 +755,7 @@ export default {
projectAttachment: null,
replyTime: null,
replyPerson: null,
replyNo: null,
replyOpinion: null,
opinionAttachment: null,
proNo: null,
@ -778,6 +804,7 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.open = true;
this.form.projectName = this.projectName;
this.title = "添加专题项目报批任务书信息";
},
/** 修改按钮操作 */
@ -785,6 +812,7 @@ export default {
const id = row.id || this.ids;
getApproval(id).then((response) => {
this.form = response.data;
// this.form.projectName = this.projectName;
//
if (response.data.projectAttachment) {
this.projectFileList = JSON.parse(response.data.projectAttachment);

6
jwtech-admin-page/src/views/projectStatistics/projectStatisticsMsg/index.vue

@ -175,7 +175,8 @@ export default {
pageSize: 10,
ids: null,
data: {
projectType: "ms,1",
// projectType: "ms,1",
projectType: null,
},
//
params: {
@ -295,7 +296,8 @@ export default {
pageNum: 1,
pageSize: 10,
data: {
projectType: "ms,1",
// projectType: "ms,1",
projectType: null,
},
//
params: {

Loading…
Cancel
Save