Merge pull request '新增hh项目进度汇报' (#9) from zhoumingxiu into main

Reviewed-on: http://117.73.11.115:3000/Tony/god-ytr/pulls/9
This commit is contained in:
ming 2023-12-14 15:48:30 +08:00
commit 690f8255f0
5 changed files with 1237 additions and 1 deletions

View File

@ -87,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectWmsSaleOrderInfoById" parameterType="String" resultMap="WmsSaleOrderInfoWmsSaleOrderDetailResult">
select a.id, a.order_code, a.order_date, a.product_type, a.handled_org, a.handled_by, a.order_status, a.customer_num, a.customer_name, a.credit_code, a.regist_addr, a.contact_person, a.contact_phone, a.account_name, a.account_bank, a.account_number, a.tax_price_val, a.total_price_val, a.tax_val, a.remark, a.create_time, a.source_sys, a.interface_type,
b.id as sub_id, b.sale_order_id as sub_sale_order_id, b.product_num as suhydraulic/bidPlanb_product_num, b.product_name as sub_product_name, b.product_format as sub_product_format, b.product_unit as sub_product_unit, b.goods_num as sub_goods_num, b.unit_price as sub_unit_price, b.total_price_val as sub_total_price_val, b.tax_rate as sub_tax_rate, b.tax_unit_price as sub_tax_unit_price, b.tax_price_val as sub_tax_price_val, b.tax_paid as sub_tax_paid, b.remark as sub_remark, b.isdeleted as sub_isdeleted, b.source_sys as sub_source_sys, b.interface_type as sub_interface_type
b.id as sub_id, b.sale_order_id as sub_sale_order_id, b.product_num as sub_product_num, b.product_name as sub_product_name, b.product_format as sub_product_format, b.product_unit as sub_product_unit, b.goods_num as sub_goods_num, b.unit_price as sub_unit_price, b.total_price_val as sub_total_price_val, b.tax_rate as sub_tax_rate, b.tax_unit_price as sub_tax_unit_price, b.tax_price_val as sub_tax_price_val, b.tax_paid as sub_tax_paid, b.remark as sub_remark, b.isdeleted as sub_isdeleted, b.source_sys as sub_source_sys, b.interface_type as sub_interface_type
from wms_sale_order_info a
left join wms_sale_order_detail b on b.sale_order_id = a.id
where a.id = #{id}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询项目进度汇报列表
export function listImplement(query) {
return request({
url: '/hydraulicImplement/implement/list',
method: 'get',
params: query
})
}
// 查询项目进度汇报详细
export function getImplement(id) {
return request({
url: '/hydraulicImplement/implement/' + id,
method: 'get'
})
}
// 新增项目进度汇报
export function addImplement(data) {
return request({
url: '/hydraulicImplement/implement',
method: 'post',
data: data
})
}
// 修改项目进度汇报
export function updateImplement(data) {
return request({
url: '/hydraulicImplement/implement',
method: 'put',
data: data
})
}
// 删除项目进度汇报
export function delImplement(id) {
return request({
url: '/hydraulicImplement/implement/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,397 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编码" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
placeholder="请输入项目编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="实际竣工日期" prop="reportDate">
<el-date-picker clearable
style="width: 100%"
v-model="queryParams.reportDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际竣工日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" 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"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['hydraulicImplement:implement:add']"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['hydraulicImplement:implement:edit']"
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['hydraulicImplement:implement:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['hydraulicImplement:implement:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="implementList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<!--<el-table-column label="主键id" align="center" prop="id" />-->
<el-table-column label="项目编码" align="center" prop="projectCode" width="150"/>
<el-table-column label="项目名称" align="center" prop="projectName" width="250"/>
<!--<el-table-column label="验收事项名称" align="center" prop="taskName" width="200"/>-->
<el-table-column label="实际竣工日期" align="center" prop="reportDate" width="150"/>
<!--<el-table-column label="验收类型" align="center" prop="reportType">
<template slot-scope="scope">
<dict-tag :options="dict.type.hydraulic_project_acceptance_type" :value="scope.row.reportType"/>
</template>
</el-table-column>-->
<el-table-column label="维保开始日期" align="center" prop="startDate" width="150"/>
<el-table-column label="维保结束日期" align="center" prop="endDate" width="150"/>
<el-table-column label="验收结论" align="center" prop="duration" width="200">
</el-table-column>
<!--<el-table-column label="工程进度" align="center" prop="projectProgress">
<template slot-scope="scope">{{ scope.row.projectProgress + '%'}}</template>
</el-table-column>
<el-table-column label="已完成工程进度" align="center" prop="finishProgress" width="150">
<template slot-scope="scope">{{ scope.row.finishProgress + '%'}}</template>
</el-table-column>-->
<el-table-column label="检查结果" align="center" prop="reportPersonnel">
<template slot-scope="scope">
<dict-tag :options="dict.type.hh_hydraulic_acceptance_result" :value="scope.row.reportPersonnel"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="engineerQuantity" width="150"/>
<!--<el-table-column label="所属系统" align="center" prop="sourceSys" />
<el-table-column label="接口类型" align="center" prop="interfaceType" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['hydraulicImplement:implement:edit']"
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['hydraulicImplement:implement: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="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="项目编码" prop="projectCode">
<el-input v-model="form.projectCode" placeholder="请输入项目编码"/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="form.projectName" placeholder="请输入项目名称"/>
</el-form-item>
<el-form-item label="实际竣工日期" prop="reportDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.reportDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际竣工日期">
</el-date-picker>
</el-form-item>
<!--<el-form-item label="验收类型" prop="reportType">
<el-select v-model="form.reportType" placeholder="请选择验收类型" style="width: 100%">
<el-option
v-for="dict in dict.type.hydraulic_project_acceptance_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>-->
<!-- <el-form-item label="验收事项名称" prop="taskName">
<el-input v-model="form.taskName" placeholder="请输入验收事项名称"/>
</el-form-item>-->
<el-form-item label="维保开始日期" prop="startDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.startDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择维保开始日期">
</el-date-picker>
</el-form-item>
<el-form-item label="维保结束日期" prop="endDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.endDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择维保结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="验收结论" prop="duration">
<el-input v-model="form.duration" placeholder="请输入验收结论"/>
</el-form-item>
<!--<el-form-item label="工程进度" prop="projectProgress">
<el-input v-model="form.projectProgress" placeholder="请输入工程进度">
<template slot="append">%</template>
</el-input>
</el-form-item>-->
<el-form-item label="检查结果" prop="reportPersonnel">
<el-select v-model="form.reportPersonnel" placeholder="请选择检查结果" style="width: 100%">
<el-option
v-for="dict in dict.type.hh_hydraulic_acceptance_result"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="engineerQuantity">
<el-input v-model="form.engineerQuantity" placeholder="请输入备注"/>
</el-form-item>
<!--<el-form-item label="已完成工程进度" prop="finishProgress">
<el-input v-model="form.finishProgress" placeholder="请输入已完成工程进度">
<template slot="append">%</template>
</el-input>
</el-form-item>-->
<!--<el-form-item label="所属系统" prop="sourceSys">
<el-input v-model="form.sourceSys" 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>
<script>
import {listImplement, getImplement, delImplement, addImplement, updateImplement} from "@/api/hydraulic/implement";
const sourceSys = "HydraulicImplement"
const interfaceType = "AcceptanceForm"
export default {
name: "Implement",
dicts: ['hydraulic_project_acceptance_type', 'hh_hydraulic_acceptance_result'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
implementList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
projectName: null,
projectCode: null,
reportDate: null,
taskName: null,
reportType: null,
startDate: null,
endDate: null,
duration: null,
projectProgress: null,
engineerQuantity: null,
finishProgress: null,
sourceSys: sourceSys,
interfaceType: interfaceType,
reportPersonnel: null
},
//
form: {},
//
rules: {}
};
},
created() {
this.getList();
},
methods: {
/** 查询项目验收单列表 */
getList() {
this.loading = true;
listImplement(this.queryParams).then(response => {
this.implementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
projectName: "HH-202312230834",
projectCode: "淮河入海水道工程一期",
reportDate: null,
taskName: null,
reportType: null,
startDate: null,
endDate: null,
duration: null,
projectProgress: null,
engineerQuantity: null,
finishProgress: null,
sourceSys: sourceSys,
interfaceType: interfaceType,
createTime: null,
reportPersonnel: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
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
getImplement(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) {
updateImplement(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addImplement(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除项目验收单编号为"' + ids + '"的数据项?').then(function () {
return delImplement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('hydraulicImplement/implement/export', {
...this.queryParams
}, `implement_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,396 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编码" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
placeholder="请输入项目编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划验收日期" prop="reportDate">
<el-date-picker clearable
style="width: 100%"
v-model="queryParams.reportDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择计划验收日期">
</el-date-picker>
</el-form-item>
<el-form-item label="验收类型" prop="reportType">
<el-select v-model="queryParams.reportType" placeholder="请选择验收类型" clearable>
<el-option
v-for="dict in dict.type.hydraulic_project_acceptance_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" 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"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['hydraulicImplement:implement:add']"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['hydraulicImplement:implement:edit']"
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['hydraulicImplement:implement:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['hydraulicImplement:implement:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="implementList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<!--<el-table-column label="主键id" align="center" prop="id" />-->
<el-table-column label="项目编码" align="center" prop="projectCode" width="150"/>
<el-table-column label="项目名称" align="center" prop="projectName" width="250"/>
<el-table-column label="验收事项名称" align="center" prop="taskName" width="200"/>
<el-table-column label="计划验收日期" align="center" prop="reportDate" width="150"/>
<el-table-column label="验收类型" align="center" prop="reportType">
<template slot-scope="scope">
<dict-tag :options="dict.type.hydraulic_project_acceptance_type" :value="scope.row.reportType"/>
</template>
</el-table-column>
<!--<el-table-column label="实际开始日期" align="center" prop="startDate" width="150"/>
<el-table-column label="实际结束日期" align="center" prop="endDate" width="150"/>-->
<el-table-column label="验收组织者" align="center" prop="duration" width="200">
</el-table-column>
<!--<el-table-column label="工程进度" align="center" prop="projectProgress">
<template slot-scope="scope">{{ scope.row.projectProgress + '%'}}</template>
</el-table-column>
<el-table-column label="已完成工程进度" align="center" prop="finishProgress" width="150">
<template slot-scope="scope">{{ scope.row.finishProgress + '%'}}</template>
</el-table-column>-->
<el-table-column label="外部参与人员" align="center" prop="reportPersonnel" width="200"/>
<el-table-column label="备注" align="center" prop="engineerQuantity" width="150"/>
<!--<el-table-column label="所属系统" align="center" prop="sourceSys" />
<el-table-column label="接口类型" align="center" prop="interfaceType" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['hydraulicImplement:implement:edit']"
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['hydraulicImplement:implement: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="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="项目编码" prop="projectCode">
<el-input v-model="form.projectCode" placeholder="请输入项目编码"/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="form.projectName" placeholder="请输入项目名称"/>
</el-form-item>
<el-form-item label="计划验收日期" prop="reportDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.reportDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择计划验收日期">
</el-date-picker>
</el-form-item>
<el-form-item label="验收类型" prop="reportType">
<el-select v-model="form.reportType" placeholder="请选择验收类型" style="width: 100%">
<el-option
v-for="dict in dict.type.hydraulic_project_acceptance_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="验收事项名称" prop="taskName">
<el-input v-model="form.taskName" placeholder="请输入验收事项名称"/>
</el-form-item>
<!--<el-form-item label="实际开始日期" prop="startDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.startDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际开始日期">
</el-date-picker>
</el-form-item>
<el-form-item label="实际结束日期" prop="endDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.endDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际结束日期">
</el-date-picker>
</el-form-item>-->
<el-form-item label="验收组织者" prop="duration">
<el-input v-model="form.duration" placeholder="请输入验收组织者"/>
</el-form-item>
<!--<el-form-item label="工程进度" prop="projectProgress">
<el-input v-model="form.projectProgress" placeholder="请输入工程进度">
<template slot="append">%</template>
</el-input>
</el-form-item>-->
<el-form-item label="外部参与人员" prop="reportPersonnel">
<el-input v-model="form.reportPersonnel" placeholder="请输入外部参与人员" />
</el-form-item>
<el-form-item label="备注" prop="engineerQuantity">
<el-input v-model="form.engineerQuantity" placeholder="请输入备注"/>
</el-form-item>
<!--<el-form-item label="已完成工程进度" prop="finishProgress">
<el-input v-model="form.finishProgress" placeholder="请输入已完成工程进度">
<template slot="append">%</template>
</el-input>
</el-form-item>-->
<!--<el-form-item label="所属系统" prop="sourceSys">
<el-input v-model="form.sourceSys" 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>
<script>
import {listImplement, getImplement, delImplement, addImplement, updateImplement} from "@/api/hydraulic/implement";
const sourceSys = "HydraulicImplement"
const interfaceType = "AcceptancePlan"
export default {
name: "Implement",
dicts: ['hydraulic_project_acceptance_type'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
implementList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
projectName: null,
projectCode: null,
reportDate: null,
taskName: null,
reportType: null,
startDate: null,
endDate: null,
duration: null,
projectProgress: null,
engineerQuantity: null,
finishProgress: null,
sourceSys: sourceSys,
interfaceType: interfaceType,
reportPersonnel: null
},
//
form: {},
//
rules: {}
};
},
created() {
this.getList();
},
methods: {
/** 查询项目验收计划列表 */
getList() {
this.loading = true;
listImplement(this.queryParams).then(response => {
this.implementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
projectName: null,
projectCode: null,
reportDate: null,
taskName: null,
reportType: null,
startDate: null,
endDate: null,
duration: null,
projectProgress: null,
engineerQuantity: null,
finishProgress: null,
sourceSys: sourceSys,
interfaceType: interfaceType,
createTime: null,
reportPersonnel: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
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
getImplement(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) {
updateImplement(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addImplement(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除项目验收计划编号为"' + ids + '"的数据项?').then(function () {
return delImplement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('hydraulicImplement/implement/export', {
...this.queryParams
}, `implement_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,399 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编码" prop="projectCode">
<el-input
v-model="queryParams.projectCode"
placeholder="请输入项目编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="汇报日期" prop="reportDate">
<el-date-picker clearable
style="width: 100%"
v-model="queryParams.reportDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择汇报日期">
</el-date-picker>
</el-form-item>
<el-form-item label="汇报类型" prop="reportType">
<el-select v-model="queryParams.reportType" placeholder="请选择汇报类型" clearable>
<el-option
v-for="dict in dict.type.hydraulic_report_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" 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"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['hydraulicImplement:implement:add']"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['hydraulicImplement:implement:edit']"
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['hydraulicImplement:implement:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['hydraulicImplement:implement:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="implementList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<!--<el-table-column label="主键id" align="center" prop="id" />-->
<el-table-column label="项目编码" align="center" prop="projectCode" width="150"/>
<el-table-column label="项目名称" align="center" prop="projectName" width="200"/>
<el-table-column label="任务名称" align="center" prop="taskName" width="200"/>
<el-table-column label="汇报日期" align="center" prop="reportDate" width="150"/>
<el-table-column label="汇报类型" align="center" prop="reportType">
<template slot-scope="scope">
<dict-tag :options="dict.type.hydraulic_report_type" :value="scope.row.reportType"/>
</template>
</el-table-column>
<el-table-column label="实际开始日期" align="center" prop="startDate" width="150"/>
<el-table-column label="实际结束日期" align="center" prop="endDate" width="150"/>
<el-table-column label="实际工期" align="center" prop="duration">
<template slot-scope="scope">{{ scope.row.duration + '天'}}</template>
</el-table-column>
<el-table-column label="工程进度" align="center" prop="projectProgress">
<template slot-scope="scope">{{ scope.row.projectProgress + '%'}}</template>
</el-table-column>
<el-table-column label="本次完成工程量" align="center" prop="engineerQuantity" width="150"/>
<el-table-column label="已完成工程进度" align="center" prop="finishProgress" width="150">
<template slot-scope="scope">{{ scope.row.finishProgress + '%'}}</template>
</el-table-column>
<el-table-column label="汇报人" align="center" prop="reportPersonnel" />
<!--<el-table-column label="所属系统" align="center" prop="sourceSys" />
<el-table-column label="接口类型" align="center" prop="interfaceType" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['hydraulicImplement:implement:edit']"
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['hydraulicImplement:implement: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="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="项目编码" prop="projectCode">
<el-input v-model="form.projectCode" placeholder="请输入项目编码"/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="form.projectName" placeholder="请输入项目名称"/>
</el-form-item>
<el-form-item label="汇报日期" prop="reportDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.reportDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择汇报日期">
</el-date-picker>
</el-form-item>
<el-form-item label="汇报类型" prop="reportType">
<el-select v-model="form.reportType" placeholder="请选择汇报类型" style="width: 100%">
<el-option
v-for="dict in dict.type.hydraulic_report_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="任务名称" prop="taskName">
<el-input v-model="form.taskName" placeholder="请输入任务名称"/>
</el-form-item>
<el-form-item label="实际开始日期" prop="startDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.startDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际开始日期">
</el-date-picker>
</el-form-item>
<el-form-item label="实际结束日期" prop="endDate">
<el-date-picker clearable
style="width: 100%"
v-model="form.endDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择实际结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="实际工期" prop="duration">
<el-input v-model="form.duration" placeholder="请输入实际工期">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="工程进度" prop="projectProgress">
<el-input v-model="form.projectProgress" placeholder="请输入工程进度">
<template slot="append">%</template>
</el-input>
</el-form-item>
<el-form-item label="本次完成工程量" prop="engineerQuantity">
<el-input v-model="form.engineerQuantity" placeholder="请输入本次完成工程量"/>
</el-form-item>
<el-form-item label="已完成工程进度" prop="finishProgress">
<el-input v-model="form.finishProgress" placeholder="请输入已完成工程进度">
<template slot="append">%</template>
</el-input>
</el-form-item>
<el-form-item label="汇报人" prop="reportPersonnel">
<el-input v-model="form.reportPersonnel" placeholder="请输入汇报人" />
</el-form-item>
<!--<el-form-item label="所属系统" prop="sourceSys">
<el-input v-model="form.sourceSys" 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>
<script>
import {listImplement, getImplement, delImplement, addImplement, updateImplement} from "@/api/hydraulic/implement";
const sourceSys = "HydraulicImplement"
const interfaceType = "Report"
export default {
name: "Implement",
dicts: ['hydraulic_report_type'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
implementList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
projectName: null,
projectCode: null,
reportDate: null,
taskName: null,
reportType: null,
startDate: null,
endDate: null,
duration: null,
projectProgress: null,
engineerQuantity: null,
finishProgress: null,
sourceSys: sourceSys,
interfaceType: interfaceType,
reportPersonnel: null
},
//
form: {},
//
rules: {}
};
},
created() {
this.getList();
},
methods: {
/** 查询项目进度汇报列表 */
getList() {
this.loading = true;
listImplement(this.queryParams).then(response => {
this.implementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
projectName: "淮海堤防改造工程一期",
projectCode: "HH-202311050201",
reportDate: null,
taskName: null,
reportType: null,
startDate: null,
endDate: null,
duration: null,
projectProgress: null,
engineerQuantity: null,
finishProgress: null,
sourceSys: sourceSys,
interfaceType: interfaceType,
createTime: null,
reportPersonnel: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
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
getImplement(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) {
updateImplement(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addImplement(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除项目进度汇报编号为"' + ids + '"的数据项?').then(function () {
return delImplement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('hydraulicImplement/implement/export', {
...this.queryParams
}, `implement_${new Date().getTime()}.xlsx`)
}
}
};
</script>