Browse Source

接口

dev_kxc
xzt 1 year ago
parent
commit
33638cde5b
  1. 10
      jwtech-admin-page/src/api/build/projectInfo.js
  2. 15
      jwtech-admin-page/src/views/building/contract/index.vue
  3. 527
      jwtech-admin-page/src/views/building/contract/options/acceptancePage.vue
  4. 603
      jwtech-admin-page/src/views/building/contract/options/alterPage.vue
  5. 26
      jwtech-admin-page/src/views/building/contract/options/basePage.vue
  6. 565
      jwtech-admin-page/src/views/building/contract/options/evaluatePage.vue
  7. 563
      jwtech-admin-page/src/views/building/contract/options/examinePage.vue
  8. 543
      jwtech-admin-page/src/views/building/contract/options/honourAnAgreementPage.vue
  9. 276
      jwtech-admin-page/src/views/building/contract/options/subcontractPage.vue
  10. 4
      jwtech-admin-page/src/views/building/firmInfo/index.vue
  11. 4
      jwtech-admin-page/src/views/building/projectInfo/index.vue
  12. 205
      jwtech-admin-page/src/views/system/menu/index.vue
  13. 4
      jwtech-admin/src/main/resources/application-test.yml
  14. 2
      jwtech-system/src/main/java/com/kms/build/domain/BsSgcJsjdBuiConteval.java

10
jwtech-admin-page/src/api/build/projectInfo.js

@ -1,5 +1,15 @@
import request from '@/utils/request' import request from '@/utils/request'
// 新增项目基本信息时,所能选择的项目
// export function getProposal() {
// return request({
// url: '/build/projectInfo/getProposal',
// method: 'get',
// // data: query
// })
// }
// 查询项目基本信息管理列表 // 查询项目基本信息管理列表
export function listInfo(query) { export function listInfo(query) {
return request({ return request({

15
jwtech-admin-page/src/views/building/contract/index.vue

@ -218,8 +218,12 @@
min-width="120" min-width="120"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <div <div
v-for="(item, index) in JSON.parse(scope.row.contractFile)" v-for="(item, index) in JSON.parse(
scope.row.contractFile
? scope.row.contractFile
: JSON.stringify({})
)"
:key="item + index" :key="item + index"
> >
<i class="el-icon-document"></i> <i class="el-icon-document"></i>
@ -229,7 +233,8 @@
@click="downloadFile(scope, index)" @click="downloadFile(scope, index)"
style="cursor: pointer" style="cursor: pointer"
></i> ></i>
</div> --> </div>
<!-- {{ scope.row.contractFile }} -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -579,6 +584,10 @@ export default {
this.loading = true; this.loading = true;
listInfo(this.queryParams).then((response) => { listInfo(this.queryParams).then((response) => {
this.infoList = response.records; this.infoList = response.records;
// console.log(
// " this.infoList",
// JSON.parse(this.infoList[0].contractFile)
// );
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });

527
jwtech-admin-page/src/views/building/contract/options/acceptancePage.vue

@ -1,3 +1,528 @@
<template> <template>
<div>验收</div> <!-- 合同验收-->
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="验收时间" prop="acceptanceTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.acceptanceTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择验收时间"
>
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="地点" prop="acceptanceAddress">
<el-input
v-model="queryParams.data.acceptanceAddress"
placeholder="请输入地点"
clearable
size="small"
@keyup.enter.native="handleQuery"
><el-button
type="primary"
slot="append"
icon="el-icon-search"
size="small"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item> -->
<el-form-item label="验收专家" prop="acceptanceExpert">
<el-input
v-model="queryParams.data.acceptanceExpert"
placeholder="请输入验收专家"
clearable
size="small"
@keyup.enter.native="handleQuery"
><el-button
type="primary"
slot="append"
icon="el-icon-search"
size="small"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item>
<el-form-item>
<!-- <el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
> -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['build:acc:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build:acc:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build:acc:remove']"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="accList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column
label="验收时间"
align="center"
prop="acceptanceTime"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.acceptanceTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="地点"
align="center"
prop="acceptanceAddress"
min-width="120"
/>
<el-table-column
label="验收专家"
align="center"
prop="acceptanceExpert"
min-width="120"
/>
<el-table-column
label="验收意见"
align="center"
prop="acceptanceOpinions"
min-width="120"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
min-width="180"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="viewInfo(scope.row)"
>查看</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:acc:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:acc:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改合同验收对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="验收时间" prop="acceptanceTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.acceptanceTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择验收时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="地点" prop="acceptanceAddress">
<el-input v-model="form.acceptanceAddress" placeholder="请输入地点" />
</el-form-item>
<el-form-item label="验收专家" prop="acceptanceExpert">
<el-input
v-model="form.acceptanceExpert"
placeholder="请输入验收专家"
/>
</el-form-item>
<el-form-item label="验收意见" prop="acceptanceOpinions">
<el-input
v-model="form.acceptanceOpinions"
placeholder="请输入验收意见"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看 -->
<el-dialog
:title="viewTitle"
:visible.sync="viewOpen"
width="1200px"
append-to-body
@close="closeView"
>
<!-- 分包合同信息 -->
<div class="infoTitle">分包合同信息</div>
<div class="draLine"></div>
<div class="content">
<el-descriptions
class="margin-top"
:column="2"
border
:labelStyle="{
'text-align': 'left',
width: '180px',
height: '50px',
}"
:contentStyle="{}"
>
<el-descriptions-item>
<template slot="label"> 验收时间 </template>
{{ this.acceptanceMsg.acceptanceTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 地点 </template>
{{ this.acceptanceMsg.acceptanceAddress }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 验收专家 </template>
{{ this.acceptanceMsg.acceptanceExpert }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 验收意见 </template>
{{ this.acceptanceMsg.acceptanceOpinions }}
</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
</div>
</template> </template>
<script>
import {
listAcc,
getAcc,
delAcc,
addAcc,
updateAcc,
exportAcc,
} from "@/api/build/acc";
export default {
name: "Acc",
props: ["contractNumber"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
accList: [],
//
title: "",
viewTitle: "",
//
open: false,
viewOpen: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
acceptanceTime: null,
acceptanceAddress: null,
acceptanceExpert: null,
acceptanceOpinions: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
},
//
form: {},
//
rules: {},
acceptanceMsg: {},
};
},
created() {
this.getList();
},
// axios
watch: {
contractNumber: function (n, o) {
this.contractNumber = n;
// console.log("contractNumber", this.contractNumber);
this.getList();
},
},
methods: {
/** 查询合同验收列表 */
getList() {
this.loading = true;
if (this.$route.query.baseDataId) {
this.queryParams.data.contractNumber = this.contractNumber;
}
listAcc(this.queryParams).then((response) => {
this.accList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
acceptanceTime: null,
acceptanceAddress: null,
acceptanceExpert: null,
acceptanceOpinions: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
acceptanceTime: null,
acceptanceAddress: null,
acceptanceExpert: null,
acceptanceOpinions: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加合同验收";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getAcc(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改合同验收";
});
},
//
viewInfo(row) {
this.viewTitle = "查看合同变更信息";
this.acceptanceMsg = row;
console.log("acceptanceMsg", row);
this.viewOpen = true;
},
//
closeView() {
this.acceptanceMsg = {};
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateAcc(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.contractNumber = this.contractNumber;
addAcc(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delAcc(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>
<style scoped lang="scss">
::v-deep {
.el-dialog {
// margin-top: 2vh !important;
height: 450px;
overflow-y: auto;
.content {
display: flex;
flex-direction: column;
align-items: center;
.margin-top {
width: 95%;
border-left: 1px solid #f0f0f0;
border-right: 1px solid #f0f0f0;
}
}
}
.el-dialog__title {
font-weight: 700;
font-size: 28px;
// font-size: 24px;
// line-height: 32px;
}
.draLine {
width: 100%;
border: 2px solid #000;
margin: 10px 0 20px 0;
}
.infoTitle {
color: #000;
font-size: 20px;
font-weight: 700;
}
}
</style>

603
jwtech-admin-page/src/views/building/contract/options/alterPage.vue

@ -1,3 +1,604 @@
<template> <template>
<div>变更</div> <!-- 合同变更-->
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="变更原因" prop="changeReason">
<el-input
v-model="queryParams.data.changeReason"
placeholder="请输入变更原因"
clearable
size="small"
@keyup.enter.native="handleQuery"
><el-button
type="primary"
slot="append"
icon="el-icon-search"
size="small"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item>
<el-form-item>
<!-- <el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
> -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['build:change:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build:change:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build:change:remove']"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="changeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" fixed />
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column
label="变更原因"
align="center"
prop="changeReason"
min-width="120"
/>
<el-table-column
label="变更内容"
align="center"
prop="changeContent"
min-width="120"
/>
<el-table-column
label="变更时间"
align="center"
prop="changeTime"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.changeTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="变更申请信息"
align="center"
prop="changeApplicationInfo"
min-width="120"
/>
<el-table-column
label="变更批复信息"
align="center"
prop="changeApprovalInfo"
min-width="120"
/>
<el-table-column
label="合同变更信息"
align="center"
prop="contractChangeInfo"
min-width="120"
/>
<el-table-column
label="变更人"
align="center"
prop="changePerson"
min-width="120"
/>
<el-table-column
label="变更人联系方式"
align="center"
prop="changePersonPhone"
min-width="120"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
min-width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="viewInfo(scope.row)"
>查看</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:change:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:change:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改合同变更信息对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="变更原因" prop="changeReason">
<el-input v-model="form.changeReason" placeholder="请输入变更原因" />
</el-form-item>
<el-form-item label="变更内容" prop="changeContent">
<el-input v-model="form.changeContent" placeholder="请输入变更内容" />
</el-form-item>
<el-form-item label="变更时间" prop="changeTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.changeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择变更时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="变更申请信息" prop="changeApplicationInfo">
<el-input
v-model="form.changeApplicationInfo"
placeholder="请输入变更申请信息"
/>
</el-form-item>
<el-form-item label="变更批复信息" prop="changeApprovalInfo">
<el-input
v-model="form.changeApprovalInfo"
placeholder="请输入变更批复信息"
/>
</el-form-item>
<el-form-item label="合同变更信息" prop="contractChangeInfo">
<el-input
v-model="form.contractChangeInfo"
placeholder="请输入合同变更信息"
/>
</el-form-item>
<el-form-item label="变更人" prop="changePerson">
<el-input v-model="form.changePerson" placeholder="请输入变更人" />
</el-form-item>
<el-form-item label="变更人联系方式" prop="changePersonPhone">
<el-input
v-model="form.changePersonPhone"
placeholder="请输入变更人联系方式"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看 -->
<el-dialog
:title="viewTitle"
:visible.sync="viewOpen"
width="1200px"
append-to-body
@close="closeView"
>
<!-- 分包合同信息 -->
<div class="infoTitle">分包合同信息</div>
<div class="draLine"></div>
<div class="content">
<el-descriptions
class="margin-top"
:column="2"
border
:labelStyle="{
'text-align': 'left',
width: '180px',
height: '50px',
}"
:contentStyle="{}"
>
<el-descriptions-item>
<template slot="label"> 变更原因 </template>
{{ this.alterMsg.changeReason }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 变更内容 </template>
{{ this.alterMsg.changeContent }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 变更时间 </template>
{{ this.alterMsg.changeTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 变更申请信息 </template>
{{ this.alterMsg.changeApplicationInfo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 变更批复信息 </template>
{{ this.alterMsg.changeApprovalInfo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 合同变更信息 </template>
{{ this.alterMsg.contractChangeInfo }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 变更人 </template>
{{ this.alterMsg.changePerson }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 变更人联系方式 </template>
{{ this.alterMsg.changePersonPhone }}
</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
</div>
</template> </template>
<script>
import {
listChange,
getChange,
delChange,
addChange,
updateChange,
exportChange,
} from "@/api/build/contractChange";
export default {
name: "Change",
props: ["contractNumber"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
changeList: [],
//
title: "",
viewTitle: "",
//
open: false,
viewOpen: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
changeReason: null,
changeContent: null,
changeTime: null,
changeApplicationInfo: null,
changeApprovalInfo: null,
contractChangeInfo: null,
changePerson: null,
changePersonPhone: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
},
//
form: {},
//
rules: {},
alterMsg: {},
};
},
created() {
this.getList();
},
// axios
watch: {
contractNumber: function (n, o) {
this.contractNumber = n;
// console.log("contractNumber", this.contractNumber);
this.getList();
},
},
methods: {
/** 查询合同变更信息列表 */
getList() {
this.loading = true;
if (this.$route.query.baseDataId) {
this.queryParams.data.contractNumber = this.contractNumber;
}
listChange(this.queryParams).then((response) => {
this.changeList = response.records;
// console.log("response.records", response.records);
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
changeReason: null,
changeContent: null,
changeTime: null,
changeApplicationInfo: null,
changeApprovalInfo: null,
contractChangeInfo: null,
changePerson: null,
changePersonPhone: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
changeReason: null,
changeContent: null,
changeTime: null,
changeApplicationInfo: null,
changeApprovalInfo: null,
contractChangeInfo: null,
changePerson: null,
changePersonPhone: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加合同变更信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getChange(id).then((response) => {
this.form = response.data;
console.log("this.form", this.form);
this.open = true;
this.title = "修改合同变更信息";
});
},
//
viewInfo(row) {
this.viewTitle = "查看合同变更信息";
this.alterMsg = row;
console.log("alterMsg", row);
this.viewOpen = true;
},
//
closeView() {
this.proMsg = {};
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateChange(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.contractNumber = this.contractNumber;
addChange(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delChange(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportChange(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>
<style scoped lang="scss">
::v-deep {
.el-dialog {
// margin-top: 2vh !important;
height: 680px;
overflow-y: auto;
.content {
display: flex;
flex-direction: column;
align-items: center;
.margin-top {
width: 95%;
border-left: 1px solid #f0f0f0;
border-right: 1px solid #f0f0f0;
}
}
}
.el-dialog__title {
font-weight: 700;
font-size: 28px;
// font-size: 24px;
// line-height: 32px;
}
.draLine {
width: 100%;
border: 2px solid #000;
margin: 10px 0 20px 0;
}
.infoTitle {
color: #000;
font-size: 20px;
font-weight: 700;
}
}
</style>

26
jwtech-admin-page/src/views/building/contract/options/basePage.vue

@ -1,7 +1,13 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-row> <el-row v-loading="loading">
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-form
ref="form"
:model="form"
:rules="rules"
label-width="150px"
v-show="!loading"
>
<!-- <el-col :span="12"> <!-- <el-col :span="12">
<el-form-item label="合同编号" prop="contractNumber"> <el-form-item label="合同编号" prop="contractNumber">
<el-input <el-input
@ -198,7 +204,7 @@
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div> <div v-show="!loading">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
@ -213,12 +219,21 @@ import {
updateInfo, updateInfo,
exportInfo, exportInfo,
} from "@/api/build/contractInfo"; } from "@/api/build/contractInfo";
import { listProposal, getProposal } from "@/api/earlyStage/proposal"; import {
listProposal,
getProposal,
delProposal,
addProposal,
updateProposal,
exportProposal,
getProjectCode,
} from "@/api/earlyStage/proposal";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload"; import { getFileStream } from "@/api/system/upload";
export default { export default {
data() { data() {
return { return {
loading: false,
form: {}, form: {},
rules: {}, rules: {},
// //
@ -256,6 +271,7 @@ export default {
}); });
}, },
getList() { getList() {
this.loading = true;
getInfo(this.$route.query.baseDataId).then((response) => { getInfo(this.$route.query.baseDataId).then((response) => {
this.form = response.data; this.form = response.data;
if (response.data.contractFile) { if (response.data.contractFile) {
@ -268,6 +284,8 @@ export default {
// } // }
// console.log("this.contractNumber", this.contractNumber); // console.log("this.contractNumber", this.contractNumber);
console.log("formData in basePage", this.form); console.log("formData in basePage", this.form);
this.loading = false;
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */

565
jwtech-admin-page/src/views/building/contract/options/evaluatePage.vue

@ -1,3 +1,566 @@
<template> <template>
<div>评价问题</div> <!-- 1.1.1.1.3.7. 合同评价问题-->
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="合同编号" prop="contractNumber">
<el-input
v-model="queryParams.data.contractNumber"
placeholder="请输入合同编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="问题序号" prop="questionNumber">
<el-input
v-model="queryParams.data.questionNumber"
placeholder="请输入问题序号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="问题概述" prop="problemSummary">
<el-input
v-model="queryParams.data.problemSummary"
placeholder="请输入问题概述"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="问题内容" prop="questionContent">
<el-input
v-model="queryParams.data.questionContent"
placeholder="请输入问题内容"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分值" prop="score">
<el-input
v-model="queryParams.data.score"
placeholder="请输入分值"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="问题分类" prop="questionClassification">
<el-input
v-model="queryParams.data.questionClassification"
placeholder="请输入问题分类"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="扣分值" prop="deductionValue">
<el-input
v-model="queryParams.data.deductionValue"
placeholder="请输入扣分值"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="总分" prop="totalScore">
<el-input
v-model="queryParams.data.totalScore"
placeholder="请输入总分"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编码" prop="proCode">
<el-input
v-model="queryParams.data.proCode"
placeholder="请输入项目编码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="PRO_NO" prop="proNo">
<el-input
v-model="queryParams.data.proNo"
placeholder="请输入PRO_NO"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input
v-model="queryParams.data.createUid"
placeholder="请输入创建人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="更新人" prop="updateUid">
<el-input
v-model="queryParams.data.updateUid"
placeholder="请输入更新人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新人" prop="updateTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.updateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择更新人"
>
</el-date-picker>
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input
v-model="queryParams.data.owerDept"
placeholder="请输入数源部门"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['build:issues:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build:issues:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build:issues:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['build:issues:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="issuesList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="合同编号" align="center" prop="contractNumber" />
<el-table-column label="问题序号" align="center" prop="questionNumber" />
<el-table-column label="问题概述" align="center" prop="problemSummary" />
<el-table-column label="问题内容" align="center" prop="questionContent" />
<el-table-column label="分值" align="center" prop="score" />
<el-table-column
label="问题分类"
align="center"
prop="questionClassification"
/>
<el-table-column label="扣分值" align="center" prop="deductionValue" />
<el-table-column label="总分" align="center" prop="totalScore" />
<el-table-column label="项目编码" align="center" prop="proCode" />
<el-table-column label="PRO_NO" align="center" prop="proNo" />
<el-table-column label="创建人" align="center" prop="createUid" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateUid" />
<el-table-column
label="更新人"
align="center"
prop="updateTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="数源部门" align="center" prop="owerDept" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:issues:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:issues:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改合同评价问题对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="合同编号" prop="contractNumber">
<el-input
v-model="form.contractNumber"
placeholder="请输入合同编号"
/>
</el-form-item>
<el-form-item label="问题序号" prop="questionNumber">
<el-input
v-model="form.questionNumber"
placeholder="请输入问题序号"
/>
</el-form-item>
<el-form-item label="问题概述" prop="problemSummary">
<el-input
v-model="form.problemSummary"
placeholder="请输入问题概述"
/>
</el-form-item>
<el-form-item label="问题内容" prop="questionContent">
<el-input
v-model="form.questionContent"
placeholder="请输入问题内容"
/>
</el-form-item>
<el-form-item label="分值" prop="score">
<el-input v-model="form.score" placeholder="请输入分值" />
</el-form-item>
<el-form-item label="问题分类" prop="questionClassification">
<el-input
v-model="form.questionClassification"
placeholder="请输入问题分类"
/>
</el-form-item>
<el-form-item label="扣分值" prop="deductionValue">
<el-input v-model="form.deductionValue" placeholder="请输入扣分值" />
</el-form-item>
<el-form-item label="总分" prop="totalScore">
<el-input v-model="form.totalScore" placeholder="请输入总分" />
</el-form-item>
<el-form-item label="项目编码" prop="proCode">
<el-input v-model="form.proCode" placeholder="请输入项目编码" />
</el-form-item>
<el-form-item label="PRO_NO" prop="proNo">
<el-input v-model="form.proNo" placeholder="请输入PRO_NO" />
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="更新人" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入更新人" />
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入数源部门" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template> </template>
<script>
import {
listIssues,
getIssues,
delIssues,
addIssues,
updateIssues,
exportIssues,
} from "@/api/build/issues";
export default {
name: "Issues",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
issuesList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
contractNumber: null,
questionNumber: null,
problemSummary: null,
questionContent: null,
score: null,
questionClassification: null,
deductionValue: null,
totalScore: null,
proCode: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
},
//
form: {},
//
rules: {},
};
},
created() {
this.getList();
},
methods: {
/** 查询合同评价问题列表 */
getList() {
this.loading = true;
listIssues(this.queryParams).then((response) => {
this.issuesList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
contractNumber: null,
questionNumber: null,
problemSummary: null,
questionContent: null,
score: null,
questionClassification: null,
deductionValue: null,
totalScore: null,
proCode: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
contractNumber: null,
questionNumber: null,
problemSummary: null,
questionContent: null,
score: null,
questionClassification: null,
deductionValue: null,
totalScore: null,
proCode: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加合同评价问题";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getIssues(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改合同评价问题";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateIssues(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addIssues(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delIssues(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>

563
jwtech-admin-page/src/views/building/contract/options/examinePage.vue

@ -1,3 +1,564 @@
<template> <template>
<div>审批</div> <!-- 合同审批信息-->
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="82px"
>
<el-form-item label="合同申请人" prop="applicant">
<el-input
v-model="queryParams.data.applicant"
placeholder="请输入合同申请人"
clearable
size="small"
@keyup.enter.native="handleQuery"
><el-button
type="primary"
slot="append"
icon="el-icon-search"
size="small"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item>
<el-form-item>
<!-- <el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
> -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['build:appr:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build:appr:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build:appr:remove']"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="apprList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" fixed />
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column
label="合同申请人"
align="center"
prop="applicant"
min-width="120"
/>
<el-table-column
label="申请时间"
align="center"
prop="applyTime"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="审批类型"
align="center"
prop="approvalType"
min-width="120"
/>
<el-table-column
label="批复人"
align="center"
prop="approver"
min-width="120"
/>
<el-table-column
label="批复意见"
align="center"
prop="approvalOpinion"
min-width="120"
/>
<el-table-column
label="批复时间"
align="center"
prop="approvalTime"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.approvalTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
min-width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="viewInfo(scope.row)"
>查看</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:appr:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:appr:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改合同审批信息对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
<el-form-item label="合同申请人" prop="applicant">
<el-input v-model="form.applicant" placeholder="请输入合同申请人" />
</el-form-item>
<el-form-item label="申请时间" prop="applyTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.applyTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择申请时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="审批类型" prop="approvalType">
<el-select
v-model="form.approvalType"
placeholder="请选择审批类型"
style="width: 100%"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="批复人" prop="approver">
<el-input v-model="form.approver" placeholder="请输入批复人" />
</el-form-item>
<el-form-item label="批复意见" prop="approvalOpinion">
<el-input
v-model="form.approvalOpinion"
placeholder="请输入批复意见"
/>
</el-form-item>
<el-form-item label="批复时间" prop="approvalTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.approvalTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择批复时间"
>
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看 -->
<el-dialog
:title="viewTitle"
:visible.sync="viewOpen"
width="1200px"
append-to-body
@close="closeView"
>
<!-- 分包合同信息 -->
<div class="infoTitle">分包合同信息</div>
<div class="draLine"></div>
<div class="content">
<el-descriptions
class="margin-top"
:column="2"
border
:labelStyle="{
'text-align': 'left',
width: '180px',
height: '50px',
}"
:contentStyle="{}"
>
<el-descriptions-item>
<template slot="label"> 合同申请人 </template>
{{ this.examineMsg.applicant }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 申请时间 </template>
{{ this.examineMsg.applyTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 审批类型 </template>
{{ this.examineMsg.approvalType }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复人 </template>
{{ this.examineMsg.approver }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复意见 </template>
{{ this.examineMsg.approvalOpinion }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 批复时间 </template>
{{ this.examineMsg.approvalTime }}
</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
</div>
</template> </template>
<script>
import {
listAppr,
getAppr,
delAppr,
addAppr,
updateAppr,
exportAppr,
} from "@/api/build/appr";
export default {
name: "Appr",
props: ["contractNumber"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
apprList: [],
//
title: "",
viewTitle: "",
//
open: false,
viewOpen: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
applicant: null,
applyTime: null,
approvalType: null,
approver: null,
approvalOpinion: null,
approvalTime: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
//
rules: {},
examineMsg: {},
};
},
created() {
this.getList();
},
// axios
watch: {
contractNumber: function (n, o) {
this.contractNumber = n;
// console.log("contractNumber", this.contractNumber);
this.getList();
},
},
methods: {
/** 查询合同审批信息列表 */
getList() {
this.loading = true;
if (this.$route.query.baseDataId) {
this.queryParams.data.contractNumber = this.contractNumber;
}
listAppr(this.queryParams).then((response) => {
this.apprList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
applicant: null,
applyTime: null,
approvalType: null,
approver: null,
approvalOpinion: null,
approvalTime: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
applicant: null,
applyTime: null,
approvalType: null,
approver: null,
approvalOpinion: null,
approvalTime: null,
contractNumber: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加合同审批信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getAppr(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改合同审批信息";
});
},
//
viewInfo(row) {
this.viewTitle = "查看合同审批信息";
this.examineMsg = row;
console.log("subMsg", row);
this.viewOpen = true;
},
//
closeView() {
this.proMsg = {};
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateAppr(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
this.form.contractNumber = this.contractNumber;
addAppr(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delAppr(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>
<style scoped lang="scss">
::v-deep {
.el-dialog {
// margin-top: 2vh !important;
height: 550px;
overflow-y: auto;
.content {
display: flex;
flex-direction: column;
align-items: center;
.margin-top {
width: 95%;
border-left: 1px solid #f0f0f0;
border-right: 1px solid #f0f0f0;
}
}
}
.el-dialog__title {
font-weight: 700;
font-size: 28px;
// font-size: 24px;
// line-height: 32px;
}
.draLine {
width: 100%;
border: 2px solid #000;
margin: 10px 0 20px 0;
}
.infoTitle {
color: #000;
font-size: 20px;
font-weight: 700;
}
}
</style>

543
jwtech-admin-page/src/views/building/contract/options/honourAnAgreementPage.vue

@ -1,3 +1,544 @@
<template> <template>
<div>履约评价表</div> <!-- 合同履约评价-->
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="阶段性交付成果" prop="phasedPaymentResults">
<el-input
v-model="queryParams.data.phasedPaymentResults"
placeholder="请输入阶段性交付成果"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="合同编号" prop="contractNumber">
<el-input
v-model="queryParams.data.contractNumber"
placeholder="请输入合同编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="评价描述" prop="evaluationDescription">
<el-input
v-model="queryParams.data.evaluationDescription"
placeholder="请输入评价描述"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="当前季度评价状态" prop="evaluationStatus">
<el-select
v-model="queryParams.data.evaluationStatus"
placeholder="请选择当前季度评价状态"
clearable
size="small"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="项目编码" prop="proCode">
<el-input
v-model="queryParams.data.proCode"
placeholder="请输入项目编码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编号" prop="proNo">
<el-input
v-model="queryParams.data.proNo"
placeholder="请输入项目编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input
v-model="queryParams.data.createUid"
placeholder="请输入创建人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="UPDATE_UID" prop="updateUid">
<el-input
v-model="queryParams.data.updateUid"
placeholder="请输入UPDATE_UID"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="UPDATE_UID" prop="updateTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.updateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择UPDATE_UID"
>
</el-date-picker>
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input
v-model="queryParams.data.owerDept"
placeholder="请输入数源部门"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['build: eval:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build: eval:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build: eval:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['build: eval:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="evalList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column
label="阶段性交付成果"
align="center"
prop="phasedPaymentResults"
/>
<el-table-column
label="交付成果附件"
align="center"
prop="deliverablesAttachment"
/>
<el-table-column label="合同编号" align="center" prop="contractNumber" />
<el-table-column
label="评价描述"
align="center"
prop="evaluationDescription"
/>
<el-table-column
label="当前季度评价状态"
align="center"
prop="evaluationStatus"
/>
<el-table-column label="项目编码" align="center" prop="proCode" />
<el-table-column label="项目编号" align="center" prop="proNo" />
<el-table-column label="创建人" align="center" prop="createUid" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="UPDATE_UID" align="center" prop="updateUid" />
<el-table-column
label="UPDATE_UID"
align="center"
prop="updateTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="数源部门" align="center" prop="owerDept" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build: eval:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build: eval:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改合同履约评价对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="阶段性交付成果" prop="phasedPaymentResults">
<el-input
v-model="form.phasedPaymentResults"
placeholder="请输入阶段性交付成果"
/>
</el-form-item>
<el-form-item label="交付成果附件" prop="deliverablesAttachment">
<el-input
v-model="form.deliverablesAttachment"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="合同编号" prop="contractNumber">
<el-input
v-model="form.contractNumber"
placeholder="请输入合同编号"
/>
</el-form-item>
<el-form-item label="评价描述" prop="evaluationDescription">
<el-input
v-model="form.evaluationDescription"
placeholder="请输入评价描述"
/>
</el-form-item>
<el-form-item label="当前季度评价状态">
<el-radio-group v-model="form.evaluationStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="项目编码" prop="proCode">
<el-input v-model="form.proCode" placeholder="请输入项目编码" />
</el-form-item>
<el-form-item label="项目编号" prop="proNo">
<el-input v-model="form.proNo" placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="UPDATE_UID" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入UPDATE_UID" />
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入数源部门" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template> </template>
<script>
import {
listeval,
geteval,
deleval,
addeval,
updateeval,
exporteval,
} from "@/api/build/eval";
export default {
name: " eval",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
evalList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
phasedPaymentResults: null,
deliverablesAttachment: null,
contractNumber: null,
evaluationDescription: null,
evaluationStatus: null,
proCode: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
},
//
form: {},
//
rules: {},
};
},
created() {
this.getList();
},
methods: {
/** 查询合同履约评价列表 */
getList() {
this.loading = true;
listeval(this.queryParams).then((response) => {
this.evalList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
phasedPaymentResults: null,
deliverablesAttachment: null,
contractNumber: null,
evaluationDescription: null,
evaluationStatus: "0",
proCode: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
phasedPaymentResults: null,
deliverablesAttachment: null,
contractNumber: null,
evaluationDescription: null,
evaluationStatus: "0",
proCode: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加合同履约评价";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
geteval(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改合同履约评价";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateeval(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addeval(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return deleval(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exporteval(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>

276
jwtech-admin-page/src/views/building/contract/options/subcontractPage.vue

@ -118,7 +118,7 @@
min-width="120" min-width="120"
/> />
<el-table-column <el-table-column
label="分包金额" label="分包金额(万元)"
align="center" align="center"
prop="subcontractingAmount" prop="subcontractingAmount"
min-width="120" min-width="120"
@ -162,6 +162,13 @@
fixed="right" fixed="right"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="viewInfo(scope.row)"
>查看</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -191,87 +198,156 @@
/> />
<!-- 添加或修改分包合同对话框 --> <!-- 添加或修改分包合同对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> :title="title"
<el-form-item label="分包约定" prop="subcontractingAgreement"> :visible.sync="open"
<el-input width="1200px"
v-model="form.subcontractingAgreement" append-to-body
placeholder="请输入分包约定" >
/> <el-row>
</el-form-item> <el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="分包合同名称" prop="subcontractName"> <el-col :span="12">
<el-input <el-form-item label="分包约定" prop="subcontractingAgreement">
v-model="form.subcontractName" <el-input
placeholder="请输入分包合同名称" v-model="form.subcontractingAgreement"
/> placeholder="请输入分包约定"
</el-form-item> />
<el-form-item label="分包类型" prop="subcontractingType"> </el-form-item>
<el-select </el-col>
v-model="form.subcontractingType" <el-col :span="12">
placeholder="请选择分包类型" <el-form-item label="分包合同名称" prop="subcontractName">
style="width: 100%" <el-input
> v-model="form.subcontractName"
<el-option label="请选择字典生成" value="" /> placeholder="请输入分包合同名称"
</el-select> />
</el-form-item> </el-form-item>
<el-form-item label="分包金额" prop="subcontractingAmount"> </el-col>
<el-input <el-col :span="12">
v-model="form.subcontractingAmount" <el-form-item label="分包类型" prop="subcontractingType">
placeholder="请输入分包金额" <el-select
/> v-model="form.subcontractingType"
</el-form-item> placeholder="请选择分包类型"
<el-form-item label="承包公司" prop="contractingCompany"> style="width: 100%"
<el-input >
v-model="form.contractingCompany" <el-option label="请选择字典生成" value="" />
placeholder="请输入承包公司" </el-select>
/> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="分包时间" prop="subcontractingTime"> <el-col :span="12">
<!-- <el-input <el-form-item label="分包金额" prop="subcontractingAmount">
<el-input
v-model="form.subcontractingAmount"
placeholder="请输入分包金额"
>
<template slot="append">万元</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="承包公司" prop="contractingCompany">
<el-input
v-model="form.contractingCompany"
placeholder="请输入承包公司"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分包时间" prop="subcontractingTime">
<!-- <el-input
v-model="form.subcontractingTime" v-model="form.subcontractingTime"
placeholder="请输入分包时间" placeholder="请输入分包时间"
/> --> /> -->
<el-date-picker <el-date-picker
clearable clearable
size="small" size="small"
style="width: 100%" style="width: 100%"
v-model="form.subcontractingTime" v-model="form.subcontractingTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请输入分包时间" placeholder="请输入分包时间"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="工作内容" prop="work"> </el-col>
<el-input v-model="form.work" placeholder="请输入工作内容" /> <el-col :span="12">
</el-form-item> <el-form-item label="工作内容" prop="work">
<el-form-item label="工作内容详情" prop="jobDetails"> <el-input v-model="form.work" placeholder="请输入工作内容" />
<el-input </el-form-item>
v-model="form.jobDetails" </el-col>
placeholder="请输入工作内容详情" <el-col :span="12">
/> <el-form-item label="工作内容详情" prop="jobDetails">
</el-form-item> <el-input
<el-form-item label="合同编号" prop="contractNumber"> v-model="form.jobDetails"
<el-input placeholder="请输入工作内容详情"
v-model="form.contractNumber" />
placeholder="请输入合同编号" </el-form-item>
/> </el-col>
</el-form-item> </el-form>
<el-form-item label="创建人" prop="createUid"> </el-row>
<el-input v-model="form.createUid" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="更新人" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入更新人" />
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入数源部门" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!--查看 -->
<el-dialog
:title="viewTitle"
:visible.sync="viewOpen"
width="1200px"
append-to-body
@close="closeView"
>
<!-- 分包合同信息 -->
<div class="infoTitle">分包合同信息</div>
<div class="draLine"></div>
<div class="content">
<el-descriptions
class="margin-top"
:column="2"
border
:labelStyle="{
'text-align': 'left',
width: '180px',
height: '50px',
}"
:contentStyle="{}"
>
<el-descriptions-item>
<template slot="label"> 分包约定 </template>
{{ this.subMsg.subcontractingAgreement }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 分包合同名称 </template>
{{ this.subMsg.subcontractName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 分包类型 </template>
{{ this.subMsg.subcontractingType }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 分包金额 </template>
{{ this.subMsg.subcontractingAmount + " 万元" }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 承包公司 </template>
{{ this.subMsg.contractingCompany }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 分包时间 </template>
{{ this.subMsg.subcontractingTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 工作内容详情 </template>
{{ this.subMsg.work }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 工作内容 </template>
{{ this.subMsg.jobDetails }}
</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -306,8 +382,10 @@ export default {
subcontractsList: [], subcontractsList: [],
// //
title: "", title: "",
viewTitle: "",
// //
open: false, open: false,
viewOpen: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -341,6 +419,7 @@ export default {
form: {}, form: {},
// //
rules: {}, rules: {},
subMsg: {},
}; };
}, },
created() { created() {
@ -458,6 +537,20 @@ export default {
this.title = "修改分包合同"; this.title = "修改分包合同";
}); });
}, },
//
viewInfo(row) {
this.viewTitle = row.subcontractName;
this.subMsg = row;
console.log("subMsg", row);
this.viewOpen = true;
},
//
closeView() {
this.proMsg = {};
},
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
@ -507,3 +600,38 @@ export default {
}, },
}; };
</script> </script>
<style scoped lang="scss">
::v-deep {
.el-dialog {
// margin-top: 2vh !important;
height: 420px;
overflow-y: auto;
.content {
display: flex;
flex-direction: column;
align-items: center;
.margin-top {
width: 95%;
border-left: 1px solid #f0f0f0;
border-right: 1px solid #f0f0f0;
}
}
}
.el-dialog__title {
font-weight: 700;
font-size: 28px;
// font-size: 24px;
// line-height: 32px;
}
.draLine {
width: 100%;
border: 2px solid #000;
margin: 10px 0 20px 0;
}
.infoTitle {
color: #000;
font-size: 20px;
font-weight: 700;
}
}
</style>

4
jwtech-admin-page/src/views/building/firmInfo/index.vue

@ -486,8 +486,8 @@
append-to-body append-to-body
@close="closeView" @close="closeView"
> >
<!-- 资格预审公告信息 --> <!-- 查看企业信息 -->
<div class="infoTitle">资格预审公告信息</div> <div class="infoTitle">企业信息</div>
<div class="draLine"></div> <div class="draLine"></div>
<div class="content"> <div class="content">
<el-descriptions <el-descriptions

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

@ -649,8 +649,8 @@
append-to-body append-to-body
@close="closeView" @close="closeView"
> >
<!-- 资格预审公告信息 --> <!-- 查看在建项目基本信息 -->
<div class="infoTitle">资格预审公告信息</div> <div class="infoTitle">在建项目基本信息</div>
<div class="draLine"></div> <div class="draLine"></div>
<div class="content"> <div class="content">
<el-descriptions <el-descriptions

205
jwtech-admin-page/src/views/system/menu/index.vue

@ -1,6 +1,11 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> <el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<el-form-item label="菜单名称" prop="menuName"> <el-form-item label="菜单名称" prop="menuName">
<el-input <el-input
v-model="queryParams.menuName" v-model="queryParams.menuName"
@ -11,7 +16,12 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="菜单状态" clearable size="small"> <el-select
v-model="queryParams.status"
placeholder="菜单状态"
clearable
size="small"
>
<el-option <el-option
v-for="dict in statusOptions" v-for="dict in statusOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -21,8 +31,16 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -34,54 +52,88 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:menu:add']" v-hasPermi="['system:menu:add']"
>新增</el-button> >新增</el-button
>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<el-table <el-table
v-loading="loading" v-loading="loading"
:data="menuList" :data="menuList"
row-key="id" row-key="id"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
> >
<el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column> <el-table-column
prop="menuName"
label="菜单名称"
:show-overflow-tooltip="true"
width="160"
></el-table-column>
<el-table-column prop="icon" label="图标" align="center" width="100"> <el-table-column prop="icon" label="图标" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<svg-icon :icon-class="scope.row.icon" /> <svg-icon :icon-class="scope.row.icon" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="orderNum" label="排序" width="60"></el-table-column> <el-table-column
<el-table-column prop="perms" label="权限标识" :show-overflow-tooltip="true"></el-table-column> prop="orderNum"
<el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column> label="排序"
<el-table-column prop="status" label="状态" :formatter="statusFormat" width="80"></el-table-column> width="60"
></el-table-column>
<el-table-column
prop="perms"
label="权限标识"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
prop="component"
label="组件路径"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
prop="status"
label="状态"
:formatter="statusFormat"
width="80"
></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime"> <el-table-column label="创建时间" align="center" prop="createTime">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" <el-button
size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['system:menu:edit']" v-hasPermi="['system:menu:edit']"
>修改</el-button> >修改</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-plus" icon="el-icon-plus"
@click="handleAdd(scope.row)" @click="handleAdd(scope.row)"
v-hasPermi="['system:menu:add']" v-hasPermi="['system:menu:add']"
>新增</el-button> >新增</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:menu:remove']" v-hasPermi="['system:menu:remove']"
>删除</el-button> >删除</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -119,15 +171,23 @@
@show="$refs['iconSelect'].reset()" @show="$refs['iconSelect'].reset()"
> >
<IconSelect ref="iconSelect" @selected="selected" /> <IconSelect ref="iconSelect" @selected="selected" />
<el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly> <el-input
slot="reference"
v-model="form.icon"
placeholder="点击选择图标"
>
<svg-icon <svg-icon
v-if="form.icon" v-if="form.icon"
slot="prefix" slot="prefix"
:icon-class="form.icon" :icon-class="form.icon"
class="el-input__icon" class="el-input__icon"
style="height: 32px;width: 16px;" style="height: 32px; width: 16px"
/>
<i
v-else
slot="prefix"
class="el-icon-search el-input__icon"
/> />
<i v-else slot="prefix" class="el-icon-search el-input__icon" />
</el-input> </el-input>
</el-popover> </el-popover>
</el-form-item> </el-form-item>
@ -139,7 +199,11 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="显示排序" prop="orderNum"> <el-form-item label="显示排序" prop="orderNum">
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" /> <el-input-number
v-model="form.orderNum"
controls-position="right"
:min="0"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -151,7 +215,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.menuType != 'F'" label="路由地址" prop="path"> <el-form-item
v-if="form.menuType != 'F'"
label="路由地址"
prop="path"
>
<el-input v-model="form.path" placeholder="请输入路由地址" /> <el-input v-model="form.path" placeholder="请输入路由地址" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -162,7 +230,11 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.menuType != 'M'" label="权限标识"> <el-form-item v-if="form.menuType != 'M'" label="权限标识">
<el-input v-model="form.perms" placeholder="请权限标识" maxlength="50" /> <el-input
v-model="form.perms"
placeholder="请权限标识"
maxlength="50"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -172,7 +244,8 @@
v-for="dict in visibleOptions" v-for="dict in visibleOptions"
:key="dict.dictValue" :key="dict.dictValue"
:label="dict.dictValue" :label="dict.dictValue"
>{{dict.dictLabel}}</el-radio> >{{ dict.dictLabel }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -183,7 +256,8 @@
v-for="dict in statusOptions" v-for="dict in statusOptions"
:key="dict.dictValue" :key="dict.dictValue"
:label="dict.dictValue" :label="dict.dictValue"
>{{dict.dictLabel}}</el-radio> >{{ dict.dictLabel }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -198,7 +272,13 @@
</template> </template>
<script> <script>
import { listMenu, getMenu, delMenu, addMenu, updateMenu } from "@/api/system/menu"; import {
listMenu,
getMenu,
delMenu,
addMenu,
updateMenu,
} from "@/api/system/menu";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import IconSelect from "@/components/IconSelect"; import IconSelect from "@/components/IconSelect";
@ -227,30 +307,30 @@ export default {
// //
queryParams: { queryParams: {
menuName: undefined, menuName: undefined,
visible: undefined visible: undefined,
}, },
// //
form: {}, form: {},
// //
rules: { rules: {
menuName: [ menuName: [
{ required: true, message: "菜单名称不能为空", trigger: "blur" } { required: true, message: "菜单名称不能为空", trigger: "blur" },
], ],
orderNum: [ orderNum: [
{ required: true, message: "菜单顺序不能为空", trigger: "blur" } { required: true, message: "菜单顺序不能为空", trigger: "blur" },
], ],
path: [ path: [
{ required: true, message: "路由地址不能为空", trigger: "blur" } { required: true, message: "路由地址不能为空", trigger: "blur" },
] ],
} },
}; };
}, },
created() { created() {
this.getList(); this.getList();
this.getDicts("sys_show_hide").then(response => { this.getDicts("sys_show_hide").then((response) => {
this.visibleOptions = response.data; this.visibleOptions = response.data;
}); });
this.getDicts("sys_normal_disable").then(response => { this.getDicts("sys_normal_disable").then((response) => {
this.statusOptions = response.data; this.statusOptions = response.data;
}); });
}, },
@ -262,8 +342,14 @@ export default {
/** 查询菜单列表 */ /** 查询菜单列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listMenu(this.queryParams).then(response => { listMenu(this.queryParams).then((response) => {
this.menuList = this.handleTree(response.data, "id","parentId", "children", "0"); this.menuList = this.handleTree(
response.data,
"id",
"parentId",
"children",
"0"
);
this.loading = false; this.loading = false;
}); });
}, },
@ -275,15 +361,21 @@ export default {
return { return {
id: node.id, id: node.id,
label: node.menuName, label: node.menuName,
children: node.children children: node.children,
}; };
}, },
/** 查询菜单下拉树结构 */ /** 查询菜单下拉树结构 */
getTreeselect() { getTreeselect() {
listMenu().then(response => { listMenu().then((response) => {
this.menuOptions = []; this.menuOptions = [];
const menu = { id: 0, menuName: '主类目', children: [] }; const menu = { id: 0, menuName: "主类目", children: [] };
menu.children = this.handleTree(response.data, "id","parentId", "children", "0"); menu.children = this.handleTree(
response.data,
"id",
"parentId",
"children",
"0"
);
this.menuOptions.push(menu); this.menuOptions.push(menu);
}); });
}, },
@ -317,7 +409,7 @@ export default {
orderNum: undefined, orderNum: undefined,
isFrame: "1", isFrame: "1",
visible: "0", visible: "0",
status: "0" status: "0",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -346,18 +438,18 @@ export default {
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.getTreeselect(); this.getTreeselect();
getMenu(row.id).then(response => { getMenu(row.id).then((response) => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改菜单"; this.title = "修改菜单";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.id != undefined) { if (this.form.id != undefined) {
updateMenu(this.form).then(response => { updateMenu(this.form).then((response) => {
if (response.code === 200) { if (response.code === 200) {
this.msgSuccess("修改成功"); this.msgSuccess("修改成功");
this.open = false; this.open = false;
@ -365,7 +457,7 @@ export default {
} }
}); });
} else { } else {
addMenu(this.form).then(response => { addMenu(this.form).then((response) => {
if (response.code === 200) { if (response.code === 200) {
this.msgSuccess("新增成功"); this.msgSuccess("新增成功");
this.open = false; this.open = false;
@ -378,17 +470,24 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$confirm('是否确认删除名称为"' + row.menuName + '"的数据项?', "警告", { this.$confirm(
'是否确认删除名称为"' + row.menuName + '"的数据项?',
"警告",
{
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning",
}).then(function() { }
)
.then(function () {
return delMenu(row.id); return delMenu(row.id);
}).then(() => { })
.then(() => {
this.getList(); this.getList();
this.msgSuccess("删除成功"); this.msgSuccess("删除成功");
}).catch(function() {}); })
} .catch(function () {});
} },
},
}; };
</script> </script>

4
jwtech-admin/src/main/resources/application-test.yml

@ -130,8 +130,8 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: 127.0.0.1 #host: 127.0.0.1
# host: 192.168.2.189 host: 192.168.2.189
# cluster: # cluster:
# nodes: 192.168.1.20:7001,192.168.1.20:7002,192.168.1.20:7003,192.168.1.20:7004,192.168.1.20:7005,192.168.1.20:7006 # nodes: 192.168.1.20:7001,192.168.1.20:7002,192.168.1.20:7003,192.168.1.20:7004,192.168.1.20:7005,192.168.1.20:7006
# max-redirects: 3 # max-redirects: 3

2
jwtech-system/src/main/java/com/kms/build/domain/BsSgcJsjdBuiConteval.java

@ -16,7 +16,7 @@ import com.jianwei.common.core.domain.BaseEntity;
* @author kms * @author kms
* @date 2023-10-20 * @date 2023-10-20
*/ */
@TableName("bs_sgc_jsjd_bui_cont_ eval") @TableName("bs_sgc_jsjd_bui_cont_eval")
@Data @Data
@ApiModel("合同履约评价") @ApiModel("合同履约评价")
public class BsSgcJsjdBuiConteval extends BaseEntity public class BsSgcJsjdBuiConteval extends BaseEntity

Loading…
Cancel
Save