下班
This commit is contained in:
parent
43da113a89
commit
c4e82a42fa
@ -1,4 +1,4 @@
|
||||
NODE_ENV = 'development'
|
||||
|
||||
VITE_APP_BASE_URL = 'https://ceshi-engineering.lihaink.cn/'
|
||||
# VITE_APP_BASE_URL = 'http://192.168.1.12:9090/'
|
||||
# VITE_APP_BASE_URL = 'https://ceshi-engineering.lihaink.cn/'
|
||||
VITE_APP_BASE_URL = 'http://192.168.1.5:9090/'
|
21
src/api/data_report.ts
Normal file
21
src/api/data_report.ts
Normal file
@ -0,0 +1,21 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
|
||||
export function cost_approved_project_list(params: any) {
|
||||
return request.post({ url: '/cost_consultation_report/cost_approved_project_list', params })
|
||||
}
|
||||
|
||||
// 获取首页文章数据
|
||||
export function cost_project_report(params?: any) {
|
||||
return request.get({ url: '/cost_consultation_report/cost_project_report', params })
|
||||
}
|
||||
|
||||
// 底部导航详情
|
||||
export function project_trace(params?: any) {
|
||||
return request.get({ url: '/cost_consultation_report/project_trace', params })
|
||||
}
|
||||
|
||||
// 底部导航保存
|
||||
export function setDecorateTabbar(params: any) {
|
||||
return request.post({ url: '/decorate.tabbar/save', params })
|
||||
}
|
26
src/api/supervision_accept.ts
Normal file
26
src/api/supervision_accept.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 工程监理--验收登记列表
|
||||
export function apiSupervisionAcceptLists(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_accept/lists', params })
|
||||
}
|
||||
|
||||
// 添加工程监理--验收登记
|
||||
export function apiSupervisionAcceptAdd(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_accept/add', params })
|
||||
}
|
||||
|
||||
// 编辑工程监理--验收登记
|
||||
export function apiSupervisionAcceptEdit(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_accept/edit', params })
|
||||
}
|
||||
|
||||
// 删除工程监理--验收登记
|
||||
export function apiSupervisionAcceptDelete(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_accept/delete', params })
|
||||
}
|
||||
|
||||
// 工程监理--验收登记详情
|
||||
export function apiSupervisionAcceptDetail(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_accept/detail', params })
|
||||
}
|
26
src/api/supervision_check_item.ts
Normal file
26
src/api/supervision_check_item.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 工程监理--新增检查项列表
|
||||
export function apiSupervisionCheckItemLists(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_check_item/lists', params })
|
||||
}
|
||||
|
||||
// 添加工程监理--新增检查项
|
||||
export function apiSupervisionCheckItemAdd(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_check_item/add', params })
|
||||
}
|
||||
|
||||
// 编辑工程监理--新增检查项
|
||||
export function apiSupervisionCheckItemEdit(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_check_item/edit', params })
|
||||
}
|
||||
|
||||
// 删除工程监理--新增检查项
|
||||
export function apiSupervisionCheckItemDelete(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_check_item/delete', params })
|
||||
}
|
||||
|
||||
// 工程监理--新增检查项详情
|
||||
export function apiSupervisionCheckItemDetail(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_check_item/detail', params })
|
||||
}
|
26
src/api/supervision_device_entry.ts
Normal file
26
src/api/supervision_device_entry.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 工程监理--设备进场列表
|
||||
export function apiSupervisionDeviceEntryLists(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_device_entry/lists', params })
|
||||
}
|
||||
|
||||
// 添加工程监理--设备进场
|
||||
export function apiSupervisionDeviceEntryAdd(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_device_entry/add', params })
|
||||
}
|
||||
|
||||
// 编辑工程监理--设备进场
|
||||
export function apiSupervisionDeviceEntryEdit(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_device_entry/edit', params })
|
||||
}
|
||||
|
||||
// 删除工程监理--设备进场
|
||||
export function apiSupervisionDeviceEntryDelete(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_device_entry/delete', params })
|
||||
}
|
||||
|
||||
// 工程监理--设备进场详情
|
||||
export function apiSupervisionDeviceEntryDetail(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_device_entry/detail', params })
|
||||
}
|
26
src/api/supervision_inspection.ts
Normal file
26
src/api/supervision_inspection.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 工程监理--巡视登记列表
|
||||
export function apiSupervisionInspectionLists(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_inspection/lists', params })
|
||||
}
|
||||
|
||||
// 添加工程监理--巡视登记
|
||||
export function apiSupervisionInspectionAdd(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_inspection/add', params })
|
||||
}
|
||||
|
||||
// 编辑工程监理--巡视登记
|
||||
export function apiSupervisionInspectionEdit(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_inspection/edit', params })
|
||||
}
|
||||
|
||||
// 删除工程监理--巡视登记
|
||||
export function apiSupervisionInspectionDelete(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_inspection/delete', params })
|
||||
}
|
||||
|
||||
// 工程监理--巡视登记详情
|
||||
export function apiSupervisionInspectionDetail(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_inspection/detail', params })
|
||||
}
|
26
src/api/supervision_material_entry.ts
Normal file
26
src/api/supervision_material_entry.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 工程监理--材料进场列表
|
||||
export function apiSupervisionMaterialEntryLists(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_material_entry/lists', params })
|
||||
}
|
||||
|
||||
// 添加工程监理--材料进场
|
||||
export function apiSupervisionMaterialEntryAdd(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_material_entry/add', params })
|
||||
}
|
||||
|
||||
// 编辑工程监理--材料进场
|
||||
export function apiSupervisionMaterialEntryEdit(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_material_entry/edit', params })
|
||||
}
|
||||
|
||||
// 删除工程监理--材料进场
|
||||
export function apiSupervisionMaterialEntryDelete(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_material_entry/delete', params })
|
||||
}
|
||||
|
||||
// 工程监理--材料进场详情
|
||||
export function apiSupervisionMaterialEntryDetail(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_material_entry/detail', params })
|
||||
}
|
26
src/api/supervision_side_station.ts
Normal file
26
src/api/supervision_side_station.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 工程监理--旁站登记列表
|
||||
export function apiSupervisionSideStationLists(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_side_station/lists', params })
|
||||
}
|
||||
|
||||
// 添加工程监理--旁站登记
|
||||
export function apiSupervisionSideStationAdd(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_side_station/add', params })
|
||||
}
|
||||
|
||||
// 编辑工程监理--旁站登记
|
||||
export function apiSupervisionSideStationEdit(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_side_station/edit', params })
|
||||
}
|
||||
|
||||
// 删除工程监理--旁站登记
|
||||
export function apiSupervisionSideStationDelete(params: any) {
|
||||
return request.post({ url: '/supervision_work.supervision_side_station/delete', params })
|
||||
}
|
||||
|
||||
// 工程监理--旁站登记详情
|
||||
export function apiSupervisionSideStationDetail(params: any) {
|
||||
return request.get({ url: '/supervision_work.supervision_side_station/detail', params })
|
||||
}
|
@ -80,7 +80,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目负责人" prop="principal">
|
||||
<el-input v-model="formData.principal" clearable placeholder="请输入项目负责人" />
|
||||
<el-input v-model="formData.principal" clearable placeholder="请输入项目负责人" readonly />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
@ -94,10 +94,10 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="印章是否外借" prop="loan">
|
||||
<el-radio-group v-model="formData.loan" placeholder="请选择骑缝盖章">
|
||||
<el-radio :label="1">
|
||||
<el-radio label="1">
|
||||
是
|
||||
</el-radio>
|
||||
<el-radio :label="0">
|
||||
<el-radio label="0">
|
||||
否
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
@ -227,7 +227,7 @@ const formData = reactive({
|
||||
org_id: "",
|
||||
depar: '',
|
||||
stampman: '',
|
||||
project: '',
|
||||
project_id: '',
|
||||
project_name: '',
|
||||
principal: '',
|
||||
content: '',
|
||||
@ -241,11 +241,12 @@ const formData = reactive({
|
||||
sjreturn: '',
|
||||
returnee: '',
|
||||
annex: [],
|
||||
projectInfo: {}
|
||||
|
||||
})
|
||||
|
||||
const customEvent = (e: any) => {
|
||||
formData.project = e.id
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.principal = e.principal
|
||||
showDialog.value = false
|
||||
@ -288,6 +289,10 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
formData.project_id = formData.projectInfo.id
|
||||
formData.project_name = formData.projectInfo.project_name
|
||||
formData.principal = formData.projectInfo.principal
|
||||
getlist1(formData.depar)
|
||||
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiApplyWithSealLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -47,14 +49,14 @@
|
||||
<el-table-column label="限制次数" prop="limit" show-overflow-tooltip />
|
||||
<el-table-column label="用印部门" prop="depar" show-overflow-tooltip />
|
||||
<el-table-column label="盖章人" prop="stampman" show-overflow-tooltip />
|
||||
<el-table-column label="关联项目" prop="project" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="principal" show-overflow-tooltip />
|
||||
<el-table-column label="关联项目" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="projectInfo.principal" show-overflow-tooltip />
|
||||
<el-table-column label="盖章内容" prop="content" show-overflow-tooltip />
|
||||
<el-table-column label="印章是否外借" prop="loan" show-overflow-tooltip />
|
||||
<el-table-column label="印章借用日期" prop="borrow" show-overflow-tooltip />
|
||||
<el-table-column label="结束借用日期" prop="returndate" show-overflow-tooltip />
|
||||
<el-table-column label="申请人" prop="applicant" show-overflow-tooltip />
|
||||
<el-table-column label="申请日期" prop="date" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="申请人" prop="applicant" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="申请日期" prop="date" show-overflow-tooltip /> -->
|
||||
<el-table-column label="实际借章日期" prop="sjborrow" show-overflow-tooltip />
|
||||
<el-table-column label="实际借章人" prop="sjborrower" show-overflow-tooltip />
|
||||
<el-table-column label="实际归还日期" prop="sjreturn" show-overflow-tooltip />
|
||||
|
@ -12,6 +12,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiApprovalIssuanceAchievementDocumentsLists"
|
||||
:params="queryParams" :page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -14,12 +14,20 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="甲方签约单位" prop="part_a" label-width="120px">
|
||||
<el-input v-model="formData.part_a" clearable placeholder="请输入甲方签约单位" />
|
||||
<el-form-item label="合同类型" prop="contract_type">
|
||||
<el-select class="flex-1" v-model="formData.contract_type" clearable placeholder="请选择合同类型">
|
||||
<el-option v-for="(item, index) in dictData.cost_contract_type" :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="甲方签约单位" prop="part_a" label-width="120px">
|
||||
<el-input v-model="formData.part_a" clearable placeholder="请输入甲方签约单位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="甲方联系人" prop="part_a_contract">
|
||||
<el-input v-model="formData.part_a_contract" clearable placeholder="请输入甲方联系人" />
|
||||
@ -30,13 +38,14 @@
|
||||
<el-input v-model="formData.part_a_address" clearable placeholder="请输入业主地址" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="乙方签约单位" prop="part_b" label-width="120px">
|
||||
<el-input v-model="formData.part_b" clearable placeholder="请输入乙方签约单位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="乙方签约人" prop="part_b_signatory">
|
||||
<el-input v-model="formData.part_b_signatory" clearable placeholder="请输入乙方签约人" />
|
||||
@ -50,6 +59,9 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="行业性质" prop="industry_nature">
|
||||
<el-select class="flex-1" v-model="formData.industry_nature" clearable placeholder="请选择行业性质">
|
||||
@ -58,8 +70,6 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="建设区域" prop="const_area">
|
||||
<el-select class="flex-1" v-model="formData.const_area" clearable placeholder="请选择建设区域">
|
||||
@ -76,14 +86,15 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工程总投资" prop="project_money">
|
||||
<el-input v-model="formData.project_money" clearable placeholder="请输入工程总投资" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工程规模及概况" prop="project_scale" label-width="140px">
|
||||
<el-input v-model="formData.project_scale" clearable placeholder="请输入工程规模及概况" />
|
||||
@ -94,13 +105,14 @@
|
||||
<el-input v-model="formData.money" clearable placeholder="请输入签订金额(元)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同服务工期" prop="contract_service" label-width="120px">
|
||||
<el-input v-model="formData.contract_service" clearable placeholder="请输入合同服务工期" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同签订费率(%)" prop="rate" label-width="140px">
|
||||
<el-input v-model="formData.rate" clearable placeholder="请输入合同签订费率(%)" type="number" />
|
||||
@ -114,6 +126,9 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同计划结束日期" prop="end_date" label-width="160px">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date"
|
||||
@ -121,8 +136,6 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同履约金(元)" prop="performance" label-width="140px">
|
||||
<el-input v-model="formData.performance" clearable placeholder="请输入合同履约金(元)" type="number" />
|
||||
@ -135,13 +148,14 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同付款方式" prop="payment" label-width="120px">
|
||||
<el-input v-model="formData.payment" clearable placeholder="请输入合同付款方式" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同主要内容" prop="content" label-width="120px">
|
||||
<el-input v-model="formData.content" clearable placeholder="请输入合同主要内容" />
|
||||
@ -152,6 +166,9 @@
|
||||
<el-input v-model="formData.founder" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="创建日期" prop="create_date">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.create_date" clearable type="date"
|
||||
@ -159,8 +176,6 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="签订部门" prop="dept">
|
||||
<el-input v-model="formData.dept" clearable placeholder="请输入签订部门" />
|
||||
@ -171,13 +186,14 @@
|
||||
<el-input v-model="formData.signing_person" clearable placeholder="请输入签订负责人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="监管部门" prop="regulators">
|
||||
<el-input v-model="formData.regulators" clearable placeholder="请输入监管部门" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目总监/经理" prop="project_director" label-width="140px">
|
||||
<el-input v-model="formData.project_director" clearable placeholder="请输入项目总监/经理" />
|
||||
@ -191,17 +207,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="盖章名称" prop="seal_name">
|
||||
<el-select class="flex-1" v-model="formData.seal_name" clearable placeholder="请选择盖章名称">
|
||||
<el-option v-for="(item, index) in dictData.cost_consultation_seal_name" :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否限制" prop="limit">
|
||||
<el-select class="flex-1" v-model="formData.limit" clearable placeholder="请选择">
|
||||
@ -215,6 +231,9 @@
|
||||
<el-input v-model="formData.limit_num" clearable type="number" placeholder="请输入限制次数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="文件类型" prop="file_type">
|
||||
<el-select class="flex-1" v-model="formData.file_type" clearable placeholder="请选择盖章名称">
|
||||
@ -224,8 +243,6 @@
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="盖章份数" prop="seal_num">
|
||||
<el-input v-model="formData.seal_num" clearable type="number" placeholder="请输入盖章份数" />
|
||||
@ -236,6 +253,9 @@
|
||||
<el-input v-model="formData.sealer" clearable placeholder="请输入盖章人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="骑缝盖章" prop="plance_seal">
|
||||
<el-select class="flex-1" v-model="formData.plance_seal" clearable placeholder="请选择">
|
||||
@ -244,8 +264,6 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="发出日期" prop="send_date">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.send_date" clearable type="date"
|
||||
@ -296,6 +314,7 @@ const formData = reactive({
|
||||
id: '',
|
||||
contract_name: '',
|
||||
contract_num: '',
|
||||
contract_type: '',
|
||||
part_a: '',
|
||||
part_a_contract: '',
|
||||
part_a_address: '',
|
||||
|
@ -41,6 +41,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiCostApprovedProjectLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -138,7 +140,7 @@ const handleSelectionChange = (val: any[]) => {
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('cost_consultation_business_nature,cost_consultation_industry_nature,cost_consultation_fund_sources,cost_consultation_const_area,cost_consultation_file_type,cost_consultation_way,cost_consultation_seal_name')
|
||||
const { dictData } = useDictData('cost_contract_type,cost_consultation_business_nature,cost_consultation_industry_nature,cost_consultation_fund_sources,cost_consultation_const_area,cost_consultation_file_type,cost_consultation_way,cost_consultation_seal_name')
|
||||
|
||||
|
||||
// 分页相关
|
||||
|
@ -169,6 +169,11 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="建设单位" prop="js_unit">
|
||||
<el-input v-model="formData.js_unit" clearable placeholder="请输入建设单位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="注意事项" prop="note">
|
||||
<el-input v-model="formData.note" clearable placeholder="请输入注意事项" />
|
||||
@ -179,13 +184,13 @@
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_approved_projects @customEvent="customEvent"></cost_approved_projects>
|
||||
</el-dialog>
|
||||
@ -247,6 +252,7 @@ const formData = reactive({
|
||||
province: '',
|
||||
city: '',
|
||||
org_id: "",
|
||||
js_unit: "",
|
||||
address: '',
|
||||
starting: '',
|
||||
endtime: '',
|
||||
|
@ -23,6 +23,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiCostProjectLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -1,63 +1,65 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['data_reception/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['data_reception/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="person" show-overflow-tooltip />
|
||||
<el-table-column label="资料份数" prop="number" show-overflow-tooltip />
|
||||
<el-table-column label="存放位置" prop="position" show-overflow-tooltip />
|
||||
<el-table-column label="说明" prop="tips" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['data_reception/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['data_reception/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiDataReceptionLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['data_reception/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['data_reception/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="person" show-overflow-tooltip />
|
||||
<el-table-column label="资料份数" prop="number" show-overflow-tooltip />
|
||||
<el-table-column label="存放位置" prop="position" show-overflow-tooltip />
|
||||
<el-table-column label="说明" prop="tips" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['data_reception/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['data_reception/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="dataReceptionLists">
|
||||
@ -75,9 +77,9 @@ const showEdit = ref(false)
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
@ -85,7 +87,7 @@ const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
@ -93,31 +95,31 @@ const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiDataReceptionLists,
|
||||
params: queryParams
|
||||
fetchFun: apiDataReceptionLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiDataReceptionDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
let res = await apiDataReceptionDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiDataReceptionDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiDataReceptionDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
|
84
src/views/data_report_collection/index.vue
Normal file
84
src/views/data_report_collection/index.vue
Normal file
@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiJianliProjectProgressReportLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人" prop="bm_master" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
||||
<el-table-column label="实际开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="实际结束日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="工期(天)" prop="duration" show-overflow-tooltip />
|
||||
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
|
||||
<el-table-column label="累计已完成进度(%)" prop="done_progress" show-overflow-tooltip />
|
||||
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
datas: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiJianliProjectProgressReportLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
84
src/views/data_report_commission/index.vue
Normal file
84
src/views/data_report_commission/index.vue
Normal file
@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiJianliProjectProgressReportLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人" prop="bm_master" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
||||
<el-table-column label="实际开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="实际结束日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="工期(天)" prop="duration" show-overflow-tooltip />
|
||||
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
|
||||
<el-table-column label="累计已完成进度(%)" prop="done_progress" show-overflow-tooltip />
|
||||
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
datas: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiJianliProjectProgressReportLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
89
src/views/data_report_course/index.vue
Normal file
89
src/views/data_report_course/index.vue
Normal file
@ -0,0 +1,89 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="合同名称" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||
<el-table-column label="部门" prop="dept.name" show-overflow-tooltip />
|
||||
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="principal" show-overflow-tooltip />
|
||||
<el-table-column label="任务分配状态" prop="task_allocation_status" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.task_allocation_status ? '已分配' : "未分配" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务办理状态" prop="data_reception_status" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.data_reception_status ? '已开始' : "未开始" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="资料归档状态" prop="task_handling_three_level_review_status" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
{{ row.task_handling_three_level_review_status ? '已上传' : "未上传" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="回款金额" prop="regulators" show-overflow-tooltip />
|
||||
<el-table-column label="开票金额" prop="working_hours" show-overflow-tooltip />
|
||||
<el-table-column label="提成金额" prop="part_a_contract" show-overflow-tooltip />
|
||||
<el-table-column label="进度款金额" prop="start_date" show-overflow-tooltip /> -->
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { project_trace } from '@/api/data_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
contract_name: "",
|
||||
project_num: "",
|
||||
project_name: "",
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: project_trace,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
217
src/views/data_report_department/index.vue
Normal file
217
src/views/data_report_department/index.vue
Normal file
@ -0,0 +1,217 @@
|
||||
<template>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" inline>
|
||||
<el-form-item label="图表类型">
|
||||
<el-select v-model="chartType" placeholder="请选择图表类型" class="flex-1" @change="changeChartType">
|
||||
<el-option v-for="item in chartTypeList" :key="item.value" :label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="图标宽度" prop="num">
|
||||
<el-input v-model="chartWitdth" clearable type="number" @blur="" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图标高度" prop="project">
|
||||
<el-input v-model="chartHeight" clearable type="number" @blur="" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card style="min-height: 75vh;">
|
||||
<div class="tit">项目部门分布</div>
|
||||
|
||||
<div id="main" style="margin: 0 auto;" :style="{ width: chartWitdth + 'px', height: chartHeight + 'px' }"></div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="">
|
||||
import * as echarts from 'echarts';
|
||||
import { apistatisticsprojectInitiation } from '@/api/statistics'
|
||||
import { ref, reactive, onMounted } from "vue"
|
||||
|
||||
var chartDom: any;
|
||||
var option: any;
|
||||
var myChart: any
|
||||
|
||||
const showChart = ref(true)
|
||||
const chartWitdth = ref(800)
|
||||
const chartHeight = ref(500)
|
||||
const chartType = ref(3)
|
||||
const chartTypeList = reactive([
|
||||
{
|
||||
name: '柱状图',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
name: '折线图',
|
||||
value: 2
|
||||
},
|
||||
{
|
||||
name: '饼状图',
|
||||
value: 3
|
||||
},
|
||||
{
|
||||
name: '漏斗图',
|
||||
value: 4
|
||||
},
|
||||
|
||||
])
|
||||
// 柱状图
|
||||
let option1 = {
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: [120, 200, 150, 80, 70, 110, 130],
|
||||
type: 'bar'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// 漏斗图
|
||||
let option4 = {
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
},
|
||||
legend: {
|
||||
data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order']
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'Funnel',
|
||||
type: 'funnel',
|
||||
|
||||
sort: 'descending',
|
||||
gap: 2,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside'
|
||||
},
|
||||
labelLine: {
|
||||
length: 10,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
borderColor: '#fff',
|
||||
borderWidth: 1
|
||||
},
|
||||
emphasis: {
|
||||
label: {
|
||||
fontSize: 20
|
||||
}
|
||||
},
|
||||
data: [
|
||||
{ value: 60, name: 'Visit' },
|
||||
{ value: 40, name: 'Inquiry' },
|
||||
{ value: 20, name: 'Order' },
|
||||
{ value: 80, name: 'Click' },
|
||||
{ value: 100, name: 'Show' }
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// 折线图
|
||||
let option2 = {
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: [150, 230, 224, 218, 135, 147, 260],
|
||||
type: 'line'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// 饼图
|
||||
let option3 = {
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'left'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'Access From',
|
||||
type: 'pie',
|
||||
radius: '50%',
|
||||
data: [
|
||||
{ value: 1048, name: 'Search Engine' },
|
||||
{ value: 735, name: 'Direct' },
|
||||
{ value: 580, name: 'Email' },
|
||||
{ value: 484, name: 'Union Ads' },
|
||||
{ value: 300, name: 'Video Ads' }
|
||||
],
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
option = option3
|
||||
|
||||
|
||||
const changeChartType = (e: any) => {
|
||||
switch (e) {
|
||||
case 1:
|
||||
option = option1
|
||||
break;
|
||||
case 2:
|
||||
option = option2
|
||||
break;
|
||||
case 3:
|
||||
option = option3
|
||||
break;
|
||||
case 4:
|
||||
option = option4
|
||||
break;
|
||||
}
|
||||
initChart()
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const getData = async () => {
|
||||
let res = await apistatisticsprojectInitiation()
|
||||
// // option = option1
|
||||
// // option = option2
|
||||
// option = option3
|
||||
initChart()
|
||||
}
|
||||
|
||||
const initChart = () => {
|
||||
myChart = echarts.init(chartDom);
|
||||
myChart.setOption(option);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
chartDom = document.getElementById('main');
|
||||
getData()
|
||||
})
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.tit {
|
||||
margin: 10px 0;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
}
|
||||
</style>
|
||||
|
94
src/views/data_report_information/index.vue
Normal file
94
src/views/data_report_information/index.vue
Normal file
@ -0,0 +1,94 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目名称" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同名称" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同名称" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="委托单位" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.aunit" clearable placeholder="请输入委托单位" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||
<el-table-column label="开始日期" prop="starting" show-overflow-tooltip />
|
||||
<el-table-column label="结束日期" prop="endtime" show-overflow-tooltip />
|
||||
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
||||
<el-table-column label="咨询类型" prop="types" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.consultation_type" :value="row.types" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="行业" prop="industry" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.supervision_project_industry" :value="row.industry" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="项目所属部门" prop="dept.name" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="principal" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="aunit" show-overflow-tooltip />
|
||||
<el-table-column label="建设单位" prop="js_unit" show-overflow-tooltip />
|
||||
<el-table-column label="项目总投资(万)" prop="invest" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="汇款" prop="djr" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip /> -->
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { cost_project_report } from '@/api/data_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_name: "",
|
||||
project_num: "",
|
||||
contract_name: "",
|
||||
aunit: ""
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('consultation_type,supervision_project_industry')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: cost_project_report,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
92
src/views/data_report_ledger/index.vue
Normal file
92
src/views/data_report_ledger/index.vue
Normal file
@ -0,0 +1,92 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="合同名称" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同编号" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.contract_num" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="甲方签约单位" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.part_a" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
||||
<el-table-column label="合同编号" prop="contract_num" show-overflow-tooltip />
|
||||
<el-table-column label="合同类型" prop="contract_type" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.cost_contract_type" :value="row.contract_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="业务性质" prop="business_nature" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.cost_consultation_business_nature"
|
||||
:value="row.business_nature" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="甲方签约单位" prop="part_a_contract" show-overflow-tooltip />
|
||||
<el-table-column label="合同签订日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="签订部门" prop="dept" show-overflow-tooltip />
|
||||
<el-table-column label="监管部门" prop="regulators" show-overflow-tooltip />
|
||||
<el-table-column label="合同结算日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="甲方联系人" prop="part_a_contract" show-overflow-tooltip />
|
||||
<el-table-column label="合同计划开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="工程总投资(万)" prop="project_money" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="合同签订金额" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="已开票金额" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="已结算金额" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="已到账金额" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="应收账款" prop="djr" show-overflow-tooltip /> -->
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { cost_approved_project_list } from '@/api/data_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
contract_name: "",
|
||||
contract_num: "",
|
||||
part_a: ""
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('cost_contract_type,cost_consultation_business_nature')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: cost_approved_project_list,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
217
src/views/data_report_personnel/index.vue
Normal file
217
src/views/data_report_personnel/index.vue
Normal file
@ -0,0 +1,217 @@
|
||||
<template>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" inline>
|
||||
<el-form-item label="图表类型">
|
||||
<el-select v-model="chartType" placeholder="请选择图表类型" class="flex-1" @change="changeChartType">
|
||||
<el-option v-for="item in chartTypeList" :key="item.value" :label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="图标宽度" prop="num">
|
||||
<el-input v-model="chartWitdth" clearable type="number" @blur="" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图标高度" prop="project">
|
||||
<el-input v-model="chartHeight" clearable type="number" @blur="" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card style="min-height: 75vh;">
|
||||
<div class="tit">项目部门分布</div>
|
||||
|
||||
<div id="main" style="margin: 0 auto;" :style="{ width: chartWitdth + 'px', height: chartHeight + 'px' }"></div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="">
|
||||
import * as echarts from 'echarts';
|
||||
import { apistatisticsprojectInitiation } from '@/api/statistics'
|
||||
import { ref, reactive, onMounted } from "vue"
|
||||
|
||||
var chartDom: any;
|
||||
var option: any;
|
||||
var myChart: any
|
||||
|
||||
const showChart = ref(true)
|
||||
const chartWitdth = ref(800)
|
||||
const chartHeight = ref(500)
|
||||
const chartType = ref(3)
|
||||
const chartTypeList = reactive([
|
||||
{
|
||||
name: '柱状图',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
name: '折线图',
|
||||
value: 2
|
||||
},
|
||||
{
|
||||
name: '饼状图',
|
||||
value: 3
|
||||
},
|
||||
{
|
||||
name: '漏斗图',
|
||||
value: 4
|
||||
},
|
||||
|
||||
])
|
||||
// 柱状图
|
||||
let option1 = {
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: [120, 200, 150, 80, 70, 110, 130],
|
||||
type: 'bar'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// 漏斗图
|
||||
let option4 = {
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
},
|
||||
legend: {
|
||||
data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order']
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'Funnel',
|
||||
type: 'funnel',
|
||||
|
||||
sort: 'descending',
|
||||
gap: 2,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside'
|
||||
},
|
||||
labelLine: {
|
||||
length: 10,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
borderColor: '#fff',
|
||||
borderWidth: 1
|
||||
},
|
||||
emphasis: {
|
||||
label: {
|
||||
fontSize: 20
|
||||
}
|
||||
},
|
||||
data: [
|
||||
{ value: 60, name: 'Visit' },
|
||||
{ value: 40, name: 'Inquiry' },
|
||||
{ value: 20, name: 'Order' },
|
||||
{ value: 80, name: 'Click' },
|
||||
{ value: 100, name: 'Show' }
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// 折线图
|
||||
let option2 = {
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: [150, 230, 224, 218, 135, 147, 260],
|
||||
type: 'line'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// 饼图
|
||||
let option3 = {
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
left: 'left'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'Access From',
|
||||
type: 'pie',
|
||||
radius: '50%',
|
||||
data: [
|
||||
{ value: 1048, name: 'Search Engine' },
|
||||
{ value: 735, name: 'Direct' },
|
||||
{ value: 580, name: 'Email' },
|
||||
{ value: 484, name: 'Union Ads' },
|
||||
{ value: 300, name: 'Video Ads' }
|
||||
],
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
option = option3
|
||||
|
||||
|
||||
const changeChartType = (e: any) => {
|
||||
switch (e) {
|
||||
case 1:
|
||||
option = option1
|
||||
break;
|
||||
case 2:
|
||||
option = option2
|
||||
break;
|
||||
case 3:
|
||||
option = option3
|
||||
break;
|
||||
case 4:
|
||||
option = option4
|
||||
break;
|
||||
}
|
||||
initChart()
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const getData = async () => {
|
||||
let res = await apistatisticsprojectInitiation()
|
||||
// // option = option1
|
||||
// // option = option2
|
||||
// option = option3
|
||||
initChart()
|
||||
}
|
||||
|
||||
const initChart = () => {
|
||||
myChart = echarts.init(chartDom);
|
||||
myChart.setOption(option);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
chartDom = document.getElementById('main');
|
||||
getData()
|
||||
})
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.tit {
|
||||
margin: 10px 0;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
}
|
||||
</style>
|
||||
|
84
src/views/data_report_process/index.vue
Normal file
84
src/views/data_report_process/index.vue
Normal file
@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiJianliProjectProgressReportLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人" prop="bm_master" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
||||
<el-table-column label="实际开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="实际结束日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="工期(天)" prop="duration" show-overflow-tooltip />
|
||||
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
|
||||
<el-table-column label="累计已完成进度(%)" prop="done_progress" show-overflow-tooltip />
|
||||
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
datas: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiJianliProjectProgressReportLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
84
src/views/data_report_profit/index.vue
Normal file
84
src/views/data_report_profit/index.vue
Normal file
@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiJianliProjectProgressReportLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人" prop="bm_master" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
||||
<el-table-column label="实际开始日期" prop="start_date" show-overflow-tooltip />
|
||||
<el-table-column label="实际结束日期" prop="end_date" show-overflow-tooltip />
|
||||
<el-table-column label="工期(天)" prop="duration" show-overflow-tooltip />
|
||||
<el-table-column label="工时" prop="working_hours" show-overflow-tooltip />
|
||||
<el-table-column label="累计已完成进度(%)" prop="done_progress" show-overflow-tooltip />
|
||||
<el-table-column label="本阶段完成进度(%)" prop="bjd_progress" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
|
||||
|
||||
// 是否显示编辑框
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
datas: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiJianliProjectProgressReportLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
@ -15,6 +15,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiJianliProjectProgressReportLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -15,6 +15,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectChangeVisaLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -34,8 +36,8 @@
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="expand">
|
||||
<template #default="props">
|
||||
<div m="4">
|
||||
<el-table :data="props.row.taskTypeInfo">
|
||||
<div style="width: 95%;margin: 0 auto;">
|
||||
<el-table :data="props.row.children" :stripe="true">
|
||||
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
||||
<el-table-column label="单位名称" prop="unit_name" show-overflow-tooltip />
|
||||
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
||||
|
@ -39,6 +39,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectChangeVisaContentLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -15,6 +15,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectCommissionLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -34,7 +36,7 @@
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="expand">
|
||||
<template #default="props">
|
||||
<div m="4">
|
||||
<div style="width: 95%;margin: 0 auto;">
|
||||
<el-table :data="props.row.children">
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
|
||||
|
@ -1,64 +1,68 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input class="w-[280px]" v-model="queryParams.engineer" clearable placeholder="请输入工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="task_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.task_name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input class="w-[280px]" v-model="queryParams.engineer" clearable placeholder="请输入工程师" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="task_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.task_name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['project_commission_detail/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="task_type">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.task_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.professional_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="造价金额" prop="zj_amount" show-overflow-tooltip />
|
||||
<el-table-column label="收款金额" prop="sk_amount" show-overflow-tooltip />
|
||||
<el-table-column label="提成比例(%)" prop="tc_rate" show-overflow-tooltip />
|
||||
<el-table-column label="应提成金额" prop="tc_amount" show-overflow-tooltip />
|
||||
<el-table-column label="本次支付金额" prop="pay_amount" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['project_commission_detail/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['project_commission_detail/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectCommissionDetailLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['project_commission_detail/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="task_type">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.task_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type">
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.professional_type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="造价金额" prop="zj_amount" show-overflow-tooltip />
|
||||
<el-table-column label="收款金额" prop="sk_amount" show-overflow-tooltip />
|
||||
<el-table-column label="提成比例(%)" prop="tc_rate" show-overflow-tooltip />
|
||||
<el-table-column label="应提成金额" prop="tc_amount" show-overflow-tooltip />
|
||||
<el-table-column label="本次支付金额" prop="pay_amount" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['project_commission_detail/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['project_commission_detail/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="projectCommissionDetailLists">
|
||||
@ -76,8 +80,8 @@ const showEdit = ref(false)
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
engineer: '',
|
||||
task_name: '',
|
||||
engineer: '',
|
||||
task_name: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
@ -85,7 +89,7 @@ const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
@ -93,31 +97,31 @@ const { dictData } = useDictData('task_type,major_type')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiProjectCommissionDetailLists,
|
||||
params: queryParams
|
||||
fetchFun: apiProjectCommissionDetailLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiProjectCommissionDetailDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
let res = await apiProjectCommissionDetailDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiProjectCommissionDetailDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiProjectCommissionDetailDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
|
@ -34,7 +34,23 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="进度申报造价合计" prop="sbhj" label-width="160px">
|
||||
<el-input v-model="formData.sbhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="进度审核造价合计" prop="shhj" label-width="160px">
|
||||
<el-input v-model="formData.shhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="累计应付工程款合计" prop="ljhj" label-width="160px">
|
||||
<el-input v-model="formData.ljhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
@ -157,23 +173,6 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="进度申报造价合计" prop="sbhj" label-width="160px">
|
||||
<el-input v-model="formData.sbhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="进度审核造价合计" prop="shhj" label-width="160px">
|
||||
<el-input v-model="formData.shhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="累计应付工程款合计" prop="ljhj" label-width="160px">
|
||||
<el-input v-model="formData.ljhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
@ -255,19 +254,12 @@ const formData = reactive({
|
||||
watch(
|
||||
() => formData.project_progress_payment_detail,
|
||||
(value) => {
|
||||
formData.sbhj = 0
|
||||
formData.shhj = 0
|
||||
formData.ljhj = 0
|
||||
value.forEach(item => {
|
||||
item.jdsbzj_xiaoji = Number(item.declared_cost_tj) + Number(item.declared_cost_az) + Number(item.declared_cost_other)
|
||||
item.jdshzj_xiaoji = Number(item.audit_cost_tj) + Number(item.audit_cost_az) + Number(item.audit_cost_other)
|
||||
item.payment_rate = item.dcntract_payment_rate
|
||||
item.deduction_amount = item.jdsbzj_xiaoji - item.jdshzj_xiaoji
|
||||
item.ljwc_funds = item.jdshzj_xiaoji
|
||||
item.current_payable_funds = (Number(item.ljwc_funds) * Number(item.payment_rate)) || 0
|
||||
formData.sbhj += Number(item.jdsbzj_xiaoji || 0)
|
||||
formData.shhj += Number(item.jdshzj_xiaoji || 0)
|
||||
formData.ljhj += Number(item.current_payable_funds || 0)
|
||||
item.deduction_amount = jdsbzj_xiaoji - jdshzj_xiaoji
|
||||
item.ljwc_funds
|
||||
})
|
||||
},
|
||||
{
|
||||
|
@ -15,6 +15,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectProgressPaymentLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -35,8 +37,8 @@
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="expand">
|
||||
<template #default="props">
|
||||
<div m="4">
|
||||
<el-table :data="props.row.taskTypeInfo">
|
||||
<div style="width: 95%;margin: 0 auto;">
|
||||
<el-table :data="props.row.children">
|
||||
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
||||
<el-table-column label="单位工程名称" prop="unit_project_name" show-overflow-tooltip />
|
||||
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
||||
|
@ -6,6 +6,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectProgressPaymentDetailLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -14,6 +14,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectRectificationLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -1,71 +1,74 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||
<el-table-column label="建设单位" prop="jsdw" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人" prop="bmfz" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="xmfz" show-overflow-tooltip />
|
||||
<el-table-column label="踏勘日期" prop="riqi" show-overflow-tooltip />
|
||||
<el-table-column label="踏勘人员" prop="people" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="踏勘内容" prop="content" show-overflow-tooltip />
|
||||
<el-table-column label="核实结果" prop="result" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiProjectSurveySignatureLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/add']" type="primary"
|
||||
@click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||
<el-table-column label="建设单位" prop="jsdw" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人" prop="bmfz" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="xmfz" show-overflow-tooltip />
|
||||
<el-table-column label="踏勘日期" prop="riqi" show-overflow-tooltip />
|
||||
<el-table-column label="踏勘人员" prop="people" show-overflow-tooltip />
|
||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="踏勘内容" prop="content" show-overflow-tooltip />
|
||||
<el-table-column label="核实结果" prop="result" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/edit']" type="primary"
|
||||
link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['project_process_management.project_survey_signature/delete']"
|
||||
type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="projectSurveySignatureLists">
|
||||
@ -83,9 +86,9 @@ const showEdit = ref(false)
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
num: '',
|
||||
project: '',
|
||||
project_num: '',
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
@ -93,7 +96,7 @@ const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
@ -101,31 +104,31 @@ const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiProjectSurveySignatureLists,
|
||||
params: queryParams
|
||||
fetchFun: apiProjectSurveySignatureLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiProjectSurveySignatureDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
let res = await apiProjectSurveySignatureDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiProjectSurveySignatureDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiProjectSurveySignatureDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
|
200
src/views/supervision_accept/edit.vue
Normal file
200
src/views/supervision_accept/edit.vue
Normal file
@ -0,0 +1,200 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收编号" prop="accept_code">
|
||||
<el-input v-model="formData.accept_code" clearable placeholder="请输入验收编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收类型" prop="accept_type">
|
||||
<el-input v-model="formData.accept_type" clearable placeholder="请输入验收类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位工程" prop="check_item_id">
|
||||
<el-input v-model="formData.check_item_id" clearable placeholder="请输入单位工程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收内容" prop="accept_content">
|
||||
<el-input v-model="formData.accept_content" clearable placeholder="请输入验收内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收位置" prop="accept_position">
|
||||
<el-input v-model="formData.accept_position" clearable placeholder="请输入验收位置" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收时间" prop="accept_time">
|
||||
<el-input v-model="formData.accept_time" clearable placeholder="请输入验收时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收结果 0-合格 1-不合格" prop="accept_result">
|
||||
<el-input v-model="formData.accept_result" clearable placeholder="请输入验收结果 0-合格 1-不合格" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检查项选择" prop="check_item_detail_ids">
|
||||
<el-input v-model="formData.check_item_detail_ids" clearable placeholder="请输入检查项选择" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionAcceptEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionAcceptAdd, apiSupervisionAcceptEdit, apiSupervisionAcceptDetail } from '@/api/supervision_accept'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--验收登记' : '新增工程监理--验收登记'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
accept_code: '',
|
||||
accept_type: '',
|
||||
check_item_id: '',
|
||||
accept_content: '',
|
||||
accept_position: '',
|
||||
accept_time: '',
|
||||
company_id: '',
|
||||
accept_result: '',
|
||||
check_item_detail_ids: '',
|
||||
remark: '',
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
accept_code: [{
|
||||
required: true,
|
||||
message: '请输入验收编号',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
accept_type: [{
|
||||
required: true,
|
||||
message: '请输入验收类型',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
check_item_id: [{
|
||||
required: true,
|
||||
message: '请输入单位工程',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
accept_content: [{
|
||||
required: true,
|
||||
message: '请输入验收内容',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
accept_position: [{
|
||||
required: true,
|
||||
message: '请输入验收位置',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
accept_time: [{
|
||||
required: true,
|
||||
message: '请输入验收时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
required: true,
|
||||
message: '请输入施工单位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
accept_result: [{
|
||||
required: true,
|
||||
message: '请输入验收结果 0-合格 1-不合格',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
remark: [{
|
||||
required: true,
|
||||
message: '请输入备注',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
create_user: [{
|
||||
required: true,
|
||||
message: '请输入创建人',
|
||||
trigger: ['blur']
|
||||
}]
|
||||
})
|
||||
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionAcceptDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionAcceptEdit(data)
|
||||
: await apiSupervisionAcceptAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
130
src/views/supervision_accept/index.vue
Normal file
130
src/views/supervision_accept/index.vue
Normal file
@ -0,0 +1,130 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收编号" prop="accept_code">
|
||||
<el-input class="w-[280px]" v-model="queryParams.accept_code" clearable placeholder="请输入验收编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收类型" prop="accept_type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.accept_type" clearable placeholder="请输入验收类型" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_work.supervision_accept/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_accept/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="验收编号" prop="accept_code" show-overflow-tooltip />
|
||||
<el-table-column label="验收类型" prop="accept_type" show-overflow-tooltip />
|
||||
<el-table-column label="单位工程" prop="check_item_id" show-overflow-tooltip />
|
||||
<el-table-column label="验收内容" prop="accept_content" show-overflow-tooltip />
|
||||
<el-table-column label="验收位置" prop="accept_position" show-overflow-tooltip />
|
||||
<el-table-column label="验收时间" prop="accept_time" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="验收结果 0-合格 1-不合格" prop="accept_result" show-overflow-tooltip />
|
||||
<el-table-column label="检查项选择" prop="check_item_detail_ids" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_work.supervision_accept/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_accept/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionAcceptLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionAcceptLists, apiSupervisionAcceptDelete } from '@/api/supervision_accept'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_id: '',
|
||||
accept_code: '',
|
||||
accept_type: ''
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionAcceptLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiSupervisionAcceptDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
236
src/views/supervision_check_item/edit.vue
Normal file
236
src/views/supervision_check_item/edit.vue
Normal file
@ -0,0 +1,236 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="project_name">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="节点名称" prop="node_name">
|
||||
<el-input v-model="formData.node_name" clearable placeholder="请输入节点名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="节点类型" prop="node_type">
|
||||
<el-select v-model="formData.node_type" clearable placeholder="请选择节点类型" class="flex-1">
|
||||
<el-option v-for="(item, index) in dictData.check_item_node_type" :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="节点编号" prop="node_code">
|
||||
<el-input v-model="formData.node_code" clearable placeholder="请输入节点编号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="父节点">
|
||||
<el-input v-model="formData.pid" clearable placeholder="如果创建的节点为初始节点,可不选择" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="检查依据" prop="inspection_basis">
|
||||
<editor v-model="formData.inspection_basis" :height="200" width="80vw" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="参考法规" prop="reference_law">
|
||||
<editor v-model="formData.reference_law" :height="200" width="80vw" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-bottom: 30px;">检查项</div>
|
||||
<div style="margin-bottom: 30px;">
|
||||
<el-table :data="formData.check_item_detail">
|
||||
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="handleAdd()">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="检查类别" prop="check_type">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.check_type" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="检查类容" prop="check_content">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.check_content" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="是否必检" prop="must_check">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.must_check" clearable placeholder="请选择"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option label="否" :value="parseInt(0)" />
|
||||
<el-option label="是" :value="parseInt(1)" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<supervision_project @customEvent="customEvent"></supervision_project>
|
||||
</el-dialog>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionCheckItemEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionCheckItemAdd, apiSupervisionCheckItemEdit, apiSupervisionCheckItemDetail } from '@/api/supervision_check_item'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--新增检查项' : '新增工程监理--新增检查项'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
node_name: '',
|
||||
node_type: '',
|
||||
node_code: '',
|
||||
pid: '',
|
||||
inspection_basis: '',
|
||||
reference_law: '',
|
||||
check_item_detail: [{
|
||||
"check_type": "",
|
||||
"check_content": "",
|
||||
"must_check": 0
|
||||
}]
|
||||
})
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
const handleAdd = () => {
|
||||
formData.check_item_detail.push({
|
||||
"check_type": "",
|
||||
"check_content": "",
|
||||
"must_check": 0
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const handleDelete = (row: any) => {
|
||||
if (formData.check_item_detail.length == 1) return
|
||||
const index = formData.check_item_detail.indexOf(row);
|
||||
formData.check_item_detail.splice(index, 1);
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
node_name: [{
|
||||
required: true,
|
||||
message: '请输入节点名称',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
node_type: [{
|
||||
required: true,
|
||||
message: '请输入节点类型',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
node_code: [{
|
||||
required: true,
|
||||
message: '请输入节点编号',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_basis: [{
|
||||
required: true,
|
||||
message: '请输入检查依据',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
reference_law: [{
|
||||
required: true,
|
||||
message: '请输入参考法规',
|
||||
trigger: ['blur']
|
||||
}]
|
||||
})
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionCheckItemDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionCheckItemEdit(data)
|
||||
: await apiSupervisionCheckItemAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
124
src/views/supervision_check_item/index.vue
Normal file
124
src/views/supervision_check_item/index.vue
Normal file
@ -0,0 +1,124 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="节点名称" prop="node_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.node_name" clearable placeholder="请输入节点名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="节点类型" prop="node_type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.node_type" clearable placeholder="请输入节点类型" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_work.supervision_check_item/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_check_item/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||
<el-table-column label="节点名称" prop="node_name" show-overflow-tooltip />
|
||||
<el-table-column label="节点类型" prop="node_type" show-overflow-tooltip />
|
||||
<el-table-column label="节点编号" prop="node_code" show-overflow-tooltip />
|
||||
<el-table-column label="父节点id" prop="pid" show-overflow-tooltip />
|
||||
<el-table-column label="检查依据" prop="inspection_basis" show-overflow-tooltip />
|
||||
<el-table-column label="参考法规" prop="reference_law" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_work.supervision_check_item/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_check_item/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionCheckItemLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionCheckItemLists, apiSupervisionCheckItemDelete } from '@/api/supervision_check_item'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_id: '',
|
||||
node_name: '',
|
||||
node_type: ''
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('check_item_node_type')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionCheckItemLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiSupervisionCheckItemDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
@ -227,7 +227,7 @@ const customEvent1 = (e) => {
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请输入项目id',
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
name: [{
|
||||
|
165
src/views/supervision_device_entry/edit.vue
Normal file
165
src/views/supervision_device_entry/edit.vue
Normal file
@ -0,0 +1,165 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="code">
|
||||
<el-input v-model="formData.code" clearable placeholder="请输入编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场时间" prop="enter_time">
|
||||
<el-input v-model="formData.enter_time" clearable placeholder="请输入进场时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场结果 0-进场 1-退场" prop="enter_result">
|
||||
<el-input v-model="formData.enter_result" clearable placeholder="请输入进场结果 0-进场 1-退场" />
|
||||
</el-form-item>
|
||||
<el-form-item label="共同参与人" prop="co_participant">
|
||||
<el-input v-model="formData.co_participant" clearable placeholder="请输入共同参与人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入操作人" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionDeviceEntryEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionDeviceEntryAdd, apiSupervisionDeviceEntryEdit, apiSupervisionDeviceEntryDetail } from '@/api/supervision_device_entry'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--设备进场' : '新增工程监理--设备进场'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
code: '',
|
||||
enter_time: '',
|
||||
company_id: '',
|
||||
enter_result: '',
|
||||
co_participant: '',
|
||||
remark: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
code: [{
|
||||
required: true,
|
||||
message: '请输入编号',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
enter_time: [{
|
||||
required: true,
|
||||
message: '请输入进场时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
required: true,
|
||||
message: '请输入施工单位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
enter_result: [{
|
||||
required: true,
|
||||
message: '请输入进场结果 0-进场 1-退场',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
co_participant: [{
|
||||
required: true,
|
||||
message: '请输入共同参与人',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
remark: [{
|
||||
required: true,
|
||||
message: '请输入备注',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
create_user: [{
|
||||
required: true,
|
||||
message: '请输入操作人',
|
||||
trigger: ['blur']
|
||||
}]
|
||||
})
|
||||
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionDeviceEntryDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionDeviceEntryEdit(data)
|
||||
: await apiSupervisionDeviceEntryAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
126
src/views/supervision_device_entry/index.vue
Normal file
126
src/views/supervision_device_entry/index.vue
Normal file
@ -0,0 +1,126 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="code">
|
||||
<el-input class="w-[280px]" v-model="queryParams.code" clearable placeholder="请输入编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场结果 0-进场 1-退场" prop="enter_result">
|
||||
<el-input class="w-[280px]" v-model="queryParams.enter_result" clearable
|
||||
placeholder="请输入进场结果 0-进场 1-退场" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_work.supervision_device_entry/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_device_entry/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="编号" prop="code" show-overflow-tooltip />
|
||||
<el-table-column label="进场时间" prop="enter_time" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="进场结果 0-进场 1-退场" prop="enter_result" show-overflow-tooltip />
|
||||
<el-table-column label="共同参与人" prop="co_participant" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_work.supervision_device_entry/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_device_entry/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionDeviceEntryLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionDeviceEntryLists, apiSupervisionDeviceEntryDelete } from '@/api/supervision_device_entry'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_id: '',
|
||||
code: '',
|
||||
enter_result: ''
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionDeviceEntryLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiSupervisionDeviceEntryDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
236
src/views/supervision_inspection/edit.vue
Normal file
236
src/views/supervision_inspection/edit.vue
Normal file
@ -0,0 +1,236 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="inspection_code">
|
||||
<el-input v-model="formData.inspection_code" clearable placeholder="请输入编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视类型" prop="inspection_type">
|
||||
<el-input v-model="formData.inspection_type" clearable placeholder="请输入巡视类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位工程" prop="check_item_id">
|
||||
<el-input v-model="formData.check_item_id" clearable placeholder="请输入单位工程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视部位" prop="inspection_position">
|
||||
<el-input v-model="formData.inspection_position" clearable placeholder="请输入巡视部位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工人数" prop="workers">
|
||||
<el-input v-model="formData.workers" clearable placeholder="请输入施工人数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管理人数" prop="managers">
|
||||
<el-input v-model="formData.managers" clearable placeholder="请输入管理人数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视开始时间" prop="start_time">
|
||||
<el-input v-model="formData.start_time" clearable placeholder="请输入巡视开始时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视结束时间" prop="end_time">
|
||||
<el-input v-model="formData.end_time" clearable placeholder="请输入巡视结束时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视人员" prop="inspection_user">
|
||||
<el-input v-model="formData.inspection_user" clearable placeholder="请输入巡视人员" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视内容" prop="inspection_content">
|
||||
<el-input v-model="formData.inspection_content" clearable placeholder="请输入巡视内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设置重点关注事项 0-否 1-是" prop="is_importent">
|
||||
<el-input v-model="formData.is_importent" clearable placeholder="请输入设置重点关注事项 0-否 1-是" />
|
||||
</el-form-item>
|
||||
<el-form-item label="关注人" prop="follow_user">
|
||||
<el-input v-model="formData.follow_user" clearable placeholder="请输入关注人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检查表单选择" prop="check_item_detail_ids">
|
||||
<el-input v-model="formData.check_item_detail_ids" clearable placeholder="请输入检查表单选择" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionInspectionEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionInspectionAdd, apiSupervisionInspectionEdit, apiSupervisionInspectionDetail } from '@/api/supervision_inspection'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--巡视登记' : '新增工程监理--巡视登记'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
inspection_code: '',
|
||||
inspection_type: '',
|
||||
check_item_id: '',
|
||||
inspection_position: '',
|
||||
workers: '',
|
||||
managers: '',
|
||||
start_time: '',
|
||||
end_time: '',
|
||||
inspection_user: '',
|
||||
company_id: '',
|
||||
inspection_content: '',
|
||||
is_importent: '',
|
||||
follow_user: '',
|
||||
check_item_detail_ids: '',
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_code: [{
|
||||
required: true,
|
||||
message: '请输入编号',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_type: [{
|
||||
required: true,
|
||||
message: '请输入巡视类型',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
check_item_id: [{
|
||||
required: true,
|
||||
message: '请输入单位工程',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_position: [{
|
||||
required: true,
|
||||
message: '请输入巡视部位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
workers: [{
|
||||
required: true,
|
||||
message: '请输入施工人数',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
managers: [{
|
||||
required: true,
|
||||
message: '请输入管理人数',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
start_time: [{
|
||||
required: true,
|
||||
message: '请输入巡视开始时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
end_time: [{
|
||||
required: true,
|
||||
message: '请输入巡视结束时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_user: [{
|
||||
required: true,
|
||||
message: '请输入巡视人员',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
inspection_content: [{
|
||||
required: true,
|
||||
message: '请输入巡视内容',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
is_importent: [{
|
||||
required: true,
|
||||
message: '请输入设置重点关注事项 0-否 1-是',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
follow_user: [{
|
||||
required: true,
|
||||
message: '请输入关注人',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
check_item_detail_ids: [{
|
||||
required: true,
|
||||
message: '请输入检查表单选择',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
create_user: [{
|
||||
required: true,
|
||||
message: '请输入创建人',
|
||||
trigger: ['blur']
|
||||
}]
|
||||
})
|
||||
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionInspectionDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionInspectionEdit(data)
|
||||
: await apiSupervisionInspectionAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
134
src/views/supervision_inspection/index.vue
Normal file
134
src/views/supervision_inspection/index.vue
Normal file
@ -0,0 +1,134 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="inspection_code">
|
||||
<el-input class="w-[280px]" v-model="queryParams.inspection_code" clearable placeholder="请输入编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="巡视类型" prop="inspection_type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.inspection_type" clearable placeholder="请输入巡视类型" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_work.supervision_inspection/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_inspection/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="编号" prop="inspection_code" show-overflow-tooltip />
|
||||
<el-table-column label="巡视类型" prop="inspection_type" show-overflow-tooltip />
|
||||
<el-table-column label="单位工程" prop="check_item_id" show-overflow-tooltip />
|
||||
<el-table-column label="巡视部位" prop="inspection_position" show-overflow-tooltip />
|
||||
<el-table-column label="施工人数" prop="workers" show-overflow-tooltip />
|
||||
<el-table-column label="管理人数" prop="managers" show-overflow-tooltip />
|
||||
<el-table-column label="巡视开始时间" prop="start_time" show-overflow-tooltip />
|
||||
<el-table-column label="巡视结束时间" prop="end_time" show-overflow-tooltip />
|
||||
<el-table-column label="巡视人员" prop="inspection_user" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="巡视内容" prop="inspection_content" show-overflow-tooltip />
|
||||
<el-table-column label="设置重点关注事项 0-否 1-是" prop="is_importent" show-overflow-tooltip />
|
||||
<el-table-column label="关注人" prop="follow_user" show-overflow-tooltip />
|
||||
<el-table-column label="检查表单选择" prop="check_item_detail_ids" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_work.supervision_inspection/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_inspection/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionInspectionLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionInspectionLists, apiSupervisionInspectionDelete } from '@/api/supervision_inspection'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_id: '',
|
||||
inspection_code: '',
|
||||
inspection_type: ''
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionInspectionLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiSupervisionInspectionDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
@ -196,7 +196,7 @@ const customEvent1 = (e) => {
|
||||
const formRules = reactive<any>({
|
||||
unit_qualification_id: [{
|
||||
required: true,
|
||||
message: '请输入项目id',
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
name: [{
|
||||
|
183
src/views/supervision_material_entry/edit.vue
Normal file
183
src/views/supervision_material_entry/edit.vue
Normal file
@ -0,0 +1,183 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="采购单位id" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入采购单位id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场主题" prop="theme">
|
||||
<el-input v-model="formData.theme" clearable placeholder="请输入进场主题" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="code">
|
||||
<el-input v-model="formData.code" clearable placeholder="请输入编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场时间" prop="enter_time">
|
||||
<el-input v-model="formData.enter_time" clearable placeholder="请输入进场时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="共同参与人" prop="co_participant">
|
||||
<el-input v-model="formData.co_participant" clearable placeholder="请输入共同参与人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场结果 0-进场 1-进场后复检 2-退检" prop="enter_result">
|
||||
<el-input v-model="formData.enter_result" clearable placeholder="请输入进场结果 0-进场 1-进场后复检 2-退检" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否平行检验 0-否 1-是" prop="parallel_test">
|
||||
<el-input v-model="formData.parallel_test" clearable placeholder="请输入是否平行检验 0-否 1-是" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionMaterialEntryEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionMaterialEntryAdd, apiSupervisionMaterialEntryEdit, apiSupervisionMaterialEntryDetail } from '@/api/supervision_material_entry'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--材料进场' : '新增工程监理--材料进场'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
company_id: '',
|
||||
theme: '',
|
||||
code: '',
|
||||
enter_time: '',
|
||||
co_participant: '',
|
||||
enter_result: '',
|
||||
parallel_test: '',
|
||||
remark: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
required: true,
|
||||
message: '请输入采购单位id',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
theme: [{
|
||||
required: true,
|
||||
message: '请输入进场主题',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
code: [{
|
||||
required: true,
|
||||
message: '请输入编号',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
enter_time: [{
|
||||
required: true,
|
||||
message: '请输入进场时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
co_participant: [{
|
||||
required: true,
|
||||
message: '请输入共同参与人',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
enter_result: [{
|
||||
required: true,
|
||||
message: '请输入进场结果 0-进场 1-进场后复检 2-退检',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
parallel_test: [{
|
||||
required: true,
|
||||
message: '请输入是否平行检验 0-否 1-是',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
remark: [{
|
||||
required: true,
|
||||
message: '请输入备注',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
create_user: [{
|
||||
required: true,
|
||||
message: '请输入创建人',
|
||||
trigger: ['blur']
|
||||
}]
|
||||
})
|
||||
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionMaterialEntryDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionMaterialEntryEdit(data)
|
||||
: await apiSupervisionMaterialEntryAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
127
src/views/supervision_material_entry/index.vue
Normal file
127
src/views/supervision_material_entry/index.vue
Normal file
@ -0,0 +1,127 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场主题" prop="theme">
|
||||
<el-input class="w-[280px]" v-model="queryParams.theme" clearable placeholder="请输入进场主题" />
|
||||
</el-form-item>
|
||||
<el-form-item label="编号" prop="code">
|
||||
<el-input class="w-[280px]" v-model="queryParams.code" clearable placeholder="请输入编号" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_work.supervision_material_entry/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_material_entry/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="采购单位id" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="进场主题" prop="theme" show-overflow-tooltip />
|
||||
<el-table-column label="编号" prop="code" show-overflow-tooltip />
|
||||
<el-table-column label="进场时间" prop="enter_time" show-overflow-tooltip />
|
||||
<el-table-column label="共同参与人" prop="co_participant" show-overflow-tooltip />
|
||||
<el-table-column label="进场结果 0-进场 1-进场后复检 2-退检" prop="enter_result" show-overflow-tooltip />
|
||||
<el-table-column label="是否平行检验 0-否 1-是" prop="parallel_test" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_work.supervision_material_entry/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_material_entry/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionMaterialEntryLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionMaterialEntryLists, apiSupervisionMaterialEntryDelete } from '@/api/supervision_material_entry'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_id: '',
|
||||
theme: '',
|
||||
code: ''
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionMaterialEntryLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiSupervisionMaterialEntryDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
@ -117,7 +117,7 @@ const customEvent1 = (e) => {
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请输入项目id',
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
|
@ -229,7 +229,7 @@ const customEvent1 = (e) => {
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请输入项目id',
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
name: [{
|
||||
|
227
src/views/supervision_side_station/edit.vue
Normal file
227
src/views/supervision_side_station/edit.vue
Normal file
@ -0,0 +1,227 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input v-model="formData.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站编号" prop="side_station_code">
|
||||
<el-input v-model="formData.side_station_code" clearable placeholder="请输入旁站编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站类型" prop="side_station_type">
|
||||
<el-input v-model="formData.side_station_type" clearable placeholder="请输入旁站类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位工程" prop="check_item_id">
|
||||
<el-input v-model="formData.check_item_id" clearable placeholder="请输入单位工程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="部位" prop="position">
|
||||
<el-input v-model="formData.position" clearable placeholder="请输入部位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工单位" prop="company_id">
|
||||
<el-input v-model="formData.company_id" clearable placeholder="请输入施工单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站开始时间" prop="start_time">
|
||||
<el-input v-model="formData.start_time" clearable placeholder="请输入旁站开始时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站结束时间" prop="end_time">
|
||||
<el-input v-model="formData.end_time" clearable placeholder="请输入旁站结束时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工人数" prop="workers">
|
||||
<el-input v-model="formData.workers" clearable placeholder="请输入施工人数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="管理人数" prop="managers">
|
||||
<el-input v-model="formData.managers" clearable placeholder="请输入管理人数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="现场施工情况" prop="situation">
|
||||
<el-input v-model="formData.situation" clearable placeholder="请输入现场施工情况" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站结果 0-完成 1-交班" prop="side_station_result">
|
||||
<el-input v-model="formData.side_station_result" clearable placeholder="请输入旁站结果 0-完成 1-交班" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站人员" prop="side_station_user">
|
||||
<el-input v-model="formData.side_station_user" clearable placeholder="请输入旁站人员" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检查项选择" prop="check_item_detail_ids">
|
||||
<el-input v-model="formData.check_item_detail_ids" clearable placeholder="请输入检查项选择" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="annex">
|
||||
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="create_user">
|
||||
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionSideStationEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionSideStationAdd, apiSupervisionSideStationEdit, apiSupervisionSideStationDetail } from '@/api/supervision_side_station'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑工程监理--旁站登记' : '新增工程监理--旁站登记'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
side_station_code: '',
|
||||
side_station_type: '',
|
||||
check_item_id: '',
|
||||
position: '',
|
||||
company_id: '',
|
||||
start_time: '',
|
||||
end_time: '',
|
||||
workers: '',
|
||||
managers: '',
|
||||
situation: '',
|
||||
side_station_result: '',
|
||||
side_station_user: '',
|
||||
check_item_detail_ids: '',
|
||||
annex: '',
|
||||
create_user: '',
|
||||
})
|
||||
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
required: true,
|
||||
message: '请选择项目',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
side_station_code: [{
|
||||
required: true,
|
||||
message: '请输入旁站编号',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
side_station_type: [{
|
||||
required: true,
|
||||
message: '请输入旁站类型',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
check_item_id: [{
|
||||
required: true,
|
||||
message: '请输入单位工程',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
position: [{
|
||||
required: true,
|
||||
message: '请输入部位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
company_id: [{
|
||||
required: true,
|
||||
message: '请输入施工单位',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
start_time: [{
|
||||
required: true,
|
||||
message: '请输入旁站开始时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
end_time: [{
|
||||
required: true,
|
||||
message: '请输入旁站结束时间',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
workers: [{
|
||||
required: true,
|
||||
message: '请输入施工人数',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
managers: [{
|
||||
required: true,
|
||||
message: '请输入管理人数',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
situation: [{
|
||||
required: true,
|
||||
message: '请输入现场施工情况',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
side_station_result: [{
|
||||
required: true,
|
||||
message: '请输入旁站结果 0-完成 1-交班',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
side_station_user: [{
|
||||
required: true,
|
||||
message: '请输入旁站人员',
|
||||
trigger: ['blur']
|
||||
}],
|
||||
create_user: [{
|
||||
required: true,
|
||||
message: '请输入创建人',
|
||||
trigger: ['blur']
|
||||
}]
|
||||
})
|
||||
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiSupervisionSideStationDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionSideStationEdit(data)
|
||||
: await apiSupervisionSideStationAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
133
src/views/supervision_side_station/index.vue
Normal file
133
src/views/supervision_side_station/index.vue
Normal file
@ -0,0 +1,133 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="项目id" prop="project_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站编号" prop="side_station_code">
|
||||
<el-input class="w-[280px]" v-model="queryParams.side_station_code" clearable placeholder="请输入旁站编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="旁站类型" prop="side_station_type">
|
||||
<el-input class="w-[280px]" v-model="queryParams.side_station_type" clearable placeholder="请输入旁站类型" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['supervision_work.supervision_side_station/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_side_station/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="项目id" prop="project_id" show-overflow-tooltip />
|
||||
<el-table-column label="旁站编号" prop="side_station_code" show-overflow-tooltip />
|
||||
<el-table-column label="旁站类型" prop="side_station_type" show-overflow-tooltip />
|
||||
<el-table-column label="单位工程" prop="check_item_id" show-overflow-tooltip />
|
||||
<el-table-column label="部位" prop="position" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="company_id" show-overflow-tooltip />
|
||||
<el-table-column label="旁站开始时间" prop="start_time" show-overflow-tooltip />
|
||||
<el-table-column label="旁站结束时间" prop="end_time" show-overflow-tooltip />
|
||||
<el-table-column label="施工人数" prop="workers" show-overflow-tooltip />
|
||||
<el-table-column label="管理人数" prop="managers" show-overflow-tooltip />
|
||||
<el-table-column label="现场施工情况" prop="situation" show-overflow-tooltip />
|
||||
<el-table-column label="旁站结果 0-完成 1-交班" prop="side_station_result" show-overflow-tooltip />
|
||||
<el-table-column label="旁站人员" prop="side_station_user" show-overflow-tooltip />
|
||||
<el-table-column label="检查项选择" prop="check_item_detail_ids" show-overflow-tooltip />
|
||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
||||
<el-table-column label="创建人" prop="create_user" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['supervision_work.supervision_side_station/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['supervision_work.supervision_side_station/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="supervisionSideStationLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiSupervisionSideStationLists, apiSupervisionSideStationDelete } from '@/api/supervision_side_station'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
project_id: '',
|
||||
side_station_code: '',
|
||||
side_station_type: ''
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
const { dictData } = useDictData('')
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiSupervisionSideStationLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiSupervisionSideStationDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
@ -1,165 +1,168 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project_id">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly @click="showDialog = true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable readonly />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.apptime" clearable type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" @delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent" :task_allocation="1"></cost_project>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showDialog1" title="选择任务" width="70%">
|
||||
<task_type @customEvent="customEvent1"></task_type>
|
||||
</el-dialog>
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
</div>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="单据编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project_id">
|
||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编号" prop="project_num">
|
||||
<el-input v-model="formData.project_num" clearable readonly />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="apptime">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.apptime" clearable type="date"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
@delFile="delFileFn" />
|
||||
</el-form-item>
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<cost_project @customEvent="customEvent" :task_allocation="1"></cost_project>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showDialog1" title="选择任务" width="70%">
|
||||
<task_type @customEvent="customEvent1"></task_type>
|
||||
</el-dialog>
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="margin-bottom: 30px;">任务明细</div>
|
||||
<div style="margin-bottom: 30px;">
|
||||
<el-table :data="formData.task_detail">
|
||||
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="handleAdd(row)">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务名称" prop="task_name" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.task_name" readonly @click="showDialog1 = true, tableIndex = scope.$index"
|
||||
placeholder="点击选择" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务次级" prop="level" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.level" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序" prop="process" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.process" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务类型" prop="task_type_id" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.task_type_id" clearable placeholder="请选择任务类型"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.professional_type" clearable placeholder="请选择专业类型"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.engineer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'engineer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="first_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.first_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'first_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="二级审核人" prop="secondary_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.secondary_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'secondary_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="三级审核人" prop="third_level_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.third_level_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'third_level_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="天数" prop="days" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.days" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始日期" prop="start_date" width="220px">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.start_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
:disabled="mode != 'add'" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束日期" prop="end_date" width="220px">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.end_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
:disabled="mode != 'add'" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="中标金额(元)" prop="bid_winning_amount" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.bid_winning_amount" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="送审造价(元)" prop="cost" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.cost" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="第三方核定金额(元)" prop="approved_amount" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.approved_amount" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="施工单位" prop="construction_unit" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.construction_unit" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系人" prop="contact" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系电话" prop="contact_phone" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact_phone" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.remark" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
<div style="margin-bottom: 30px;">任务明细</div>
|
||||
<div style="margin-bottom: 30px;">
|
||||
<el-table :data="formData.task_detail">
|
||||
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="handleAdd(row)">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务名称" prop="task_name" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.task_name" readonly
|
||||
@click="showDialog1 = true, tableIndex = scope.$index" placeholder="点击选择"
|
||||
:disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务次级" prop="level" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.level" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序" prop="process" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.process" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务类型" prop="task_type_id" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.task_type_id" clearable placeholder="请选择任务类型"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="professional_type" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-select class="flex-1" v-model="row.professional_type" clearable placeholder="请选择专业类型"
|
||||
:disabled="mode != 'add'">
|
||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.engineer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'engineer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="first_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.first_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'first_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="二级审核人" prop="secondary_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.secondary_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'secondary_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="三级审核人" prop="third_level_reviewer" width="200px">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.third_level_reviewer" :disabled="mode != 'add'"
|
||||
@click="userclick(scope.$index, 'third_level_reviewer')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="天数" prop="days" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.days" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始日期" prop="start_date" width="220px">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.start_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
:disabled="mode != 'add'" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束日期" prop="end_date" width="220px">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker v-model="row.end_date" clearable type="date" value-format="YYYY-MM-DD"
|
||||
:disabled="mode != 'add'" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="中标金额(元)" prop="bid_winning_amount" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.bid_winning_amount" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="送审造价(元)" prop="cost" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.cost" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="第三方核定金额(元)" prop="approved_amount" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.approved_amount" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="施工单位" prop="construction_unit" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.construction_unit" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系人" prop="contact" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="联系电话" prop="contact_phone" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.contact_phone" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" width="200px">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.remark" :disabled="mode != 'add'" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="taskAllocationEdit">
|
||||
@ -168,10 +171,10 @@ import Popup from '@/components/popup/index.vue'
|
||||
import { apiTaskAllocationAdd, apiTaskAllocationEdit, } from '@/api/task_allocation'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
@ -184,8 +187,8 @@ const showDialog3 = ref(false)
|
||||
const personnel = ref<any>()
|
||||
|
||||
const handleAvatarSuccess_four = (response: any) => {
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
// @ts-ignore
|
||||
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||
};
|
||||
|
||||
// 删除上传的文件
|
||||
@ -193,120 +196,120 @@ const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑任务分配' : '新增任务分配'
|
||||
return mode.value == 'edit' ? '编辑任务分配' : '新增任务分配'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: '',
|
||||
head: '',
|
||||
apptime: '',
|
||||
annex: [],
|
||||
task_detail: [{
|
||||
task_name: '',
|
||||
task_name_id: '',
|
||||
process: '',
|
||||
task_type_id: '',
|
||||
professional_type: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
level: '',
|
||||
first_reviewer: '',
|
||||
first_reviewer_id: '',
|
||||
secondary_reviewer: '',
|
||||
secondary_reviewer_id: '',
|
||||
third_level_reviewer: '',
|
||||
third_level_reviewer_id: '',
|
||||
bid_winning_amount: '',
|
||||
cost: '',
|
||||
approved_amount: '',
|
||||
construction_unit: '',
|
||||
construction_unit_id: '',
|
||||
contact: '',
|
||||
contact_phone: '',
|
||||
days: '',
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
}],
|
||||
projectInfo: {}
|
||||
id: '',
|
||||
dataid: '',
|
||||
num: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: '',
|
||||
head: '',
|
||||
apptime: '',
|
||||
annex: [],
|
||||
task_detail: [{
|
||||
task_name: '',
|
||||
task_name_id: '',
|
||||
process: '',
|
||||
task_type_id: '',
|
||||
professional_type: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
level: '',
|
||||
first_reviewer: '',
|
||||
first_reviewer_id: '',
|
||||
secondary_reviewer: '',
|
||||
secondary_reviewer_id: '',
|
||||
third_level_reviewer: '',
|
||||
third_level_reviewer_id: '',
|
||||
bid_winning_amount: '',
|
||||
cost: '',
|
||||
approved_amount: '',
|
||||
construction_unit: '',
|
||||
construction_unit_id: '',
|
||||
contact: '',
|
||||
contact_phone: '',
|
||||
days: '',
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
}],
|
||||
projectInfo: {}
|
||||
})
|
||||
|
||||
const handleAdd = () => {
|
||||
formData.task_detail.push({
|
||||
task_name: '',
|
||||
task_name_id: '',
|
||||
process: '',
|
||||
task_type_id: '',
|
||||
professional_type: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
level: '',
|
||||
first_reviewer: '',
|
||||
first_reviewer_id: '',
|
||||
secondary_reviewer: '',
|
||||
secondary_reviewer_id: '',
|
||||
third_level_reviewer: '',
|
||||
third_level_reviewer_id: '',
|
||||
bid_winning_amount: '',
|
||||
cost: '',
|
||||
approved_amount: '',
|
||||
construction_unit: '',
|
||||
construction_unit_id: '',
|
||||
contact: '',
|
||||
contact_phone: '',
|
||||
days: '',
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
})
|
||||
formData.task_detail.push({
|
||||
task_name: '',
|
||||
task_name_id: '',
|
||||
process: '',
|
||||
task_type_id: '',
|
||||
professional_type: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
level: '',
|
||||
first_reviewer: '',
|
||||
first_reviewer_id: '',
|
||||
secondary_reviewer: '',
|
||||
secondary_reviewer_id: '',
|
||||
third_level_reviewer: '',
|
||||
third_level_reviewer_id: '',
|
||||
bid_winning_amount: '',
|
||||
cost: '',
|
||||
approved_amount: '',
|
||||
construction_unit: '',
|
||||
construction_unit_id: '',
|
||||
contact: '',
|
||||
contact_phone: '',
|
||||
days: '',
|
||||
start_date: '',
|
||||
end_date: '',
|
||||
remark: '',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const handleDelete = (row: any) => {
|
||||
if (formData.task_detail.length == 1) return
|
||||
const index = formData.task_detail.indexOf(row);
|
||||
formData.task_detail.splice(index, 1);
|
||||
if (formData.task_detail.length == 1) return
|
||||
const index = formData.task_detail.indexOf(row);
|
||||
formData.task_detail.splice(index, 1);
|
||||
}
|
||||
|
||||
const tableIndex = ref(0)
|
||||
|
||||
const customEvent = (e) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
showDialog.value = false
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
const customEvent1 = (e) => {
|
||||
formData.task_detail[tableIndex.value].task_name = e.name
|
||||
formData.task_detail[tableIndex.value].task_name_id = e.id
|
||||
formData.task_detail[tableIndex.value].level = e.level
|
||||
showDialog1.value = false
|
||||
formData.task_detail[tableIndex.value].task_name = e.name
|
||||
formData.task_detail[tableIndex.value].task_name_id = e.id
|
||||
formData.task_detail[tableIndex.value].level = e.level
|
||||
showDialog1.value = false
|
||||
}
|
||||
|
||||
const tableKey = ref('')
|
||||
//打开弹窗
|
||||
const userclick = async (e: any, key) => {
|
||||
tableIndex.value = e
|
||||
tableKey.value = key
|
||||
showDialog3.value = true
|
||||
await nextTick()
|
||||
personnel.value.open()
|
||||
console.log(tableIndex.value, tableKey.value)
|
||||
tableIndex.value = e
|
||||
tableKey.value = key
|
||||
showDialog3.value = true
|
||||
await nextTick()
|
||||
personnel.value.open()
|
||||
console.log(tableIndex.value, tableKey.value)
|
||||
|
||||
}
|
||||
|
||||
//确认
|
||||
const submituser = (e: any) => {
|
||||
formData.task_detail[tableIndex.value][tableKey.value] = e.name
|
||||
formData.task_detail[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||
showDialog3.value = false
|
||||
formData.task_detail[tableIndex.value][tableKey.value] = e.name
|
||||
formData.task_detail[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||
showDialog3.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
@ -317,54 +320,54 @@ const formRules = reactive<any>({
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
formData.project_name = formData.projectInfo?.project_name || ""
|
||||
formData.project_num = formData.projectInfo?.project_num || ""
|
||||
formData.project_id = formData.projectInfo?.project_id || ""
|
||||
formData.head = formData.projectInfo?.principal || ""
|
||||
formData.project_name = formData.projectInfo?.project_name || ""
|
||||
formData.project_num = formData.projectInfo?.project_num || ""
|
||||
formData.project_id = formData.projectInfo?.project_id || ""
|
||||
formData.head = formData.projectInfo?.principal || ""
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiTaskAllocationDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiTaskAllocationDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskAllocationEdit(data)
|
||||
: await apiTaskAllocationAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskAllocationEdit(data)
|
||||
: await apiTaskAllocationAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
emit('close')
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -9,6 +9,9 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiTaskAllocationLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -28,8 +31,8 @@
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="expand">
|
||||
<template #default="props">
|
||||
<div m="4">
|
||||
<el-table :data="props.row.taskTypeInfo">
|
||||
<div style="width: 95%;margin: 0 auto;">
|
||||
<el-table :data="props.row.children">
|
||||
<el-table-column label="任务名称" prop="taskTypeInfo.name" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="process" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="task_type_id">
|
||||
|
@ -6,6 +6,8 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiTaskDetailLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
@ -1,95 +1,98 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="时间段">
|
||||
<el-date-picker v-model="queryTime" type="daterange" unlink-panels range-separator="-" start-placeholder="开始时间"
|
||||
end-placeholder="结束时间" @change="changeTime" value-format="YYYY-MM-DD" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['task_handling_three_level_review/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['task_handling_three_level_review/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="processes" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="rtype" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.rtype" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="zType" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.zType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="head" show-overflow-tooltip />
|
||||
<el-table-column label="审核流程" prop="examine" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.review_process" :value="row.examine" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="one" show-overflow-tooltip />
|
||||
<el-table-column label="二级审核人" prop="two" show-overflow-tooltip />
|
||||
<el-table-column label="三级审核人" prop="three" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||
<el-table-column label="建筑面积" prop="area" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="建筑结构类型" prop="type" show-overflow-tooltip /> -->
|
||||
<el-table-column label="建筑用途" prop="use" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="construction" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="编制要求" prop="ask" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="造价依据" prop="according" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="材料补差" prop="clbc" show-overflow-tooltip /> -->
|
||||
<el-table-column label="送审金额" prop="ssje" show-overflow-tooltip />
|
||||
<el-table-column label="工程师核定价" prop="gcshd" show-overflow-tooltip />
|
||||
<el-table-column label="核增/核减金额" prop="hzhj" show-overflow-tooltip />
|
||||
<el-table-column label="人工单价" prop="rg" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人核定价" prop="xmhd" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人核定价" prop="bmhd" show-overflow-tooltip />
|
||||
<el-table-column label="审核部核定价" prop="shbhd" show-overflow-tooltip />
|
||||
<el-table-column label="开工日期" prop="kaigong" show-overflow-tooltip />
|
||||
<el-table-column label="竣工日期" prop="jungong" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="bz" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['task_handling_three_level_review/edit']" type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['task_handling_three_level_review/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="时间段">
|
||||
<el-date-picker v-model="queryTime" type="daterange" unlink-panels range-separator="-"
|
||||
start-placeholder="开始时间" end-placeholder="结束时间" @change="changeTime" value-format="YYYY-MM-DD" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiTaskHandlingThreeLevelReviewLists" :params="queryParams"
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<el-button v-perms="['task_handling_three_level_review/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['task_handling_three_level_review/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||
<el-table-column label="任务名称" prop="task" show-overflow-tooltip />
|
||||
<el-table-column label="工序" prop="processes" show-overflow-tooltip />
|
||||
<el-table-column label="任务类型" prop="rtype" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.task_type" :value="row.rtype" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="专业类型" prop="zType" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.major_type" :value="row.zType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人" prop="head" show-overflow-tooltip />
|
||||
<el-table-column label="审核流程" prop="examine" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.review_process" :value="row.examine" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="一级审核人" prop="one" show-overflow-tooltip />
|
||||
<el-table-column label="二级审核人" prop="two" show-overflow-tooltip />
|
||||
<el-table-column label="三级审核人" prop="three" show-overflow-tooltip />
|
||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||
<el-table-column label="建筑面积" prop="area" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="建筑结构类型" prop="type" show-overflow-tooltip /> -->
|
||||
<el-table-column label="建筑用途" prop="use" show-overflow-tooltip />
|
||||
<el-table-column label="施工单位" prop="construction" show-overflow-tooltip />
|
||||
<!-- <el-table-column label="编制要求" prop="ask" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="造价依据" prop="according" show-overflow-tooltip /> -->
|
||||
<!-- <el-table-column label="材料补差" prop="clbc" show-overflow-tooltip /> -->
|
||||
<el-table-column label="送审金额" prop="ssje" show-overflow-tooltip />
|
||||
<el-table-column label="工程师核定价" prop="gcshd" show-overflow-tooltip />
|
||||
<el-table-column label="核增/核减金额" prop="hzhj" show-overflow-tooltip />
|
||||
<el-table-column label="人工单价" prop="rg" show-overflow-tooltip />
|
||||
<el-table-column label="项目负责人核定价" prop="xmhd" show-overflow-tooltip />
|
||||
<el-table-column label="部门负责人核定价" prop="bmhd" show-overflow-tooltip />
|
||||
<el-table-column label="审核部核定价" prop="shbhd" show-overflow-tooltip />
|
||||
<el-table-column label="开工日期" prop="kaigong" show-overflow-tooltip />
|
||||
<el-table-column label="竣工日期" prop="jungong" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="bz" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['task_handling_three_level_review/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['task_handling_three_level_review/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="taskHandlingThreeLevelReviewLists">
|
||||
@ -107,14 +110,14 @@ const showEdit = ref(false)
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
start_time: "",
|
||||
end_time: ""
|
||||
start_time: "",
|
||||
end_time: ""
|
||||
})
|
||||
|
||||
const queryTime = ref('')
|
||||
const changeTime = () => {
|
||||
queryParams.start_time = queryTime.value[0]
|
||||
queryParams.end_time = queryTime.value[1]
|
||||
queryParams.start_time = queryTime.value[0]
|
||||
queryParams.end_time = queryTime.value[1]
|
||||
}
|
||||
|
||||
// 选中数据
|
||||
@ -122,7 +125,7 @@ const selectData = ref<any[]>([])
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val: any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
// 获取字典数据
|
||||
@ -130,31 +133,31 @@ const { dictData } = useDictData('review_process,task_type,building_structure_ty
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiTaskHandlingThreeLevelReviewLists,
|
||||
params: queryParams
|
||||
fetchFun: apiTaskHandlingThreeLevelReviewLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiTaskHandlingThreeLevelReviewDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
let res = await apiTaskHandlingThreeLevelReviewDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiTaskHandlingThreeLevelReviewDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiTaskHandlingThreeLevelReviewDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
|
@ -25,6 +25,7 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
<export-data class="ml-2.5" :fetch-fun="apiTaskTypeLists" :params="queryParams" :page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
Loading…
x
Reference in New Issue
Block a user