add
This commit is contained in:
parent
8f3b76ad38
commit
838b9fd21d
@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<el-upload
|
<el-upload
|
||||||
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
|
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
|
||||||
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore?.token }"
|
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore?.token }"
|
||||||
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess" ref="upload">
|
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess" ref="upload" :limit="5" multiple>
|
||||||
<el-button type="primary">
|
<el-button type="primary">
|
||||||
上传
|
上传
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -11,7 +10,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div v-for="(item, index) in annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{
|
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{
|
||||||
item.name }}</a>
|
item.name }}</a>
|
||||||
<span style="cursor: pointer;margin-left: 5px;" @click="delFile(index)">x</span>
|
<span style="cursor: pointer;margin-left: 5px;" @click="delFile(index)">x</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -21,6 +21,8 @@ import { apiSupervisionMaterialEntryLists } from '@/api/supervision_material_ent
|
|||||||
import { apiSupervisionParticipatingUnitsQualificationsLists } from '@/api/supervision_participating_units_qualifications'
|
import { apiSupervisionParticipatingUnitsQualificationsLists } from '@/api/supervision_participating_units_qualifications'
|
||||||
import { apiCostApprovedProjectLists } from '@/api/cost_approved_project'
|
import { apiCostApprovedProjectLists } from '@/api/cost_approved_project'
|
||||||
import { apiCostProjectLists } from '@/api/cost_project'
|
import { apiCostProjectLists } from '@/api/cost_project'
|
||||||
|
import { apiTaskTypeLists } from '@/api/task_type'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export const supervision_project:Iconfig = {
|
export const supervision_project:Iconfig = {
|
||||||
@ -283,7 +285,6 @@ export const cost_approved_projects:Iconfig = {
|
|||||||
{ end_date: "合同计划结束日期" },
|
{ end_date: "合同计划结束日期" },
|
||||||
{ project_money: "工程总投资" },
|
{ project_money: "工程总投资" },
|
||||||
{ business_nature_text: "业务性质" },
|
{ business_nature_text: "业务性质" },
|
||||||
{ industry_nature: "行业性质" },
|
|
||||||
{ dept: "签订部门" },
|
{ dept: "签订部门" },
|
||||||
{ fund_sources_text: "资金来源" },
|
{ fund_sources_text: "资金来源" },
|
||||||
{ project_director: "项目总监" },
|
{ project_director: "项目总监" },
|
||||||
@ -324,6 +325,29 @@ export const cost_project:Iconfig = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const task_type:Iconfig = {
|
||||||
|
fetchFn: apiTaskTypeLists,
|
||||||
|
dictData:"superior_category",
|
||||||
|
serchList: [
|
||||||
|
{
|
||||||
|
label: '任务名称',
|
||||||
|
value: "unit_name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:"上级类别",
|
||||||
|
value:'superior_sort',
|
||||||
|
select:'superior_category'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tableList: [
|
||||||
|
{ dataid: "标识" },
|
||||||
|
{ num: "任务编号" },
|
||||||
|
{ name: "任务名称" },
|
||||||
|
{ level: "任务级次" },
|
||||||
|
{ remarks: "备注" },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,8 +18,6 @@
|
|||||||
{{ formData.current_check_user }}
|
{{ formData.current_check_user }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="抄送人" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="抄送人" label-align="left" align="left" label-class-name="my-label">
|
||||||
{{ showFlow() }}
|
|
||||||
{{ showDel() }}
|
|
||||||
{{ formData.copy_user }}
|
{{ formData.copy_user }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
@ -34,13 +32,11 @@
|
|||||||
<div class="steps-cls">
|
<div class="steps-cls">
|
||||||
<el-steps direction="vertical" :active="formData.record.length" :align-center="true" :space="50"
|
<el-steps direction="vertical" :active="formData.record.length" :align-center="true" :space="50"
|
||||||
style="margin-top: 20px">
|
style="margin-top: 20px">
|
||||||
<el-step :title="item.check_time + ' ' + item.title" v-for="(item, index) in formData.record"
|
<el-step :title="item.check_time + ' ' + item.title"
|
||||||
:key="index" />
|
v-for="(item, index) in formData.record" :key="index" />
|
||||||
</el-steps>
|
</el-steps>
|
||||||
</div>
|
</div>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-descriptions-item label="操作" label-align="left" align="left"
|
<el-descriptions-item label="操作" label-align="left" align="left"
|
||||||
v-if="formData?.current_check_user_ids?.includes(String(userInfo.id)) && formData.check_status != 3 || formData?.check_status == 0 && formData.create_user == userInfo.id">
|
v-if="formData?.current_check_user_ids?.includes(String(userInfo.id)) && formData.check_status != 3 || formData?.check_status == 0 && formData.create_user == userInfo.id">
|
||||||
|
@ -31,18 +31,18 @@
|
|||||||
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="tips">
|
<el-form-item label="备注" prop="tips">
|
||||||
<el-input v-model="formData.tips" clearable placeholder="请输入备注" />
|
<el-input v-model="formData.tips" clearable placeholder="请输入备注" type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="多行文本框1" prop="fd_1">
|
<el-form-item label="多行文本框1" prop="fd_1">
|
||||||
<el-input class="flex-1" v-model="formData.fd_1" type="textarea" rows="4" clearable
|
<el-input class="flex-1" v-model="formData.fd_1" type="textarea" clearable
|
||||||
placeholder="请输入多行文本框1" />
|
placeholder="请输入多行文本框1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="多行文本框2" prop="fd_2">
|
<el-form-item label="多行文本框2" prop="fd_2">
|
||||||
<el-input class="flex-1" v-model="formData.fd_2" type="textarea" rows="4" clearable
|
<el-input class="flex-1" v-model="formData.fd_2" type="textarea" clearable
|
||||||
placeholder="请输入多行文本框2" />
|
placeholder="请输入多行文本框2" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="多行文本框3" prop="fd_3">
|
<el-form-item label="多行文本框3" prop="fd_3">
|
||||||
<el-input class="flex-1" v-model="formData.fd_3" type="textarea" rows="4" clearable
|
<el-input class="flex-1" v-model="formData.fd_3" type="textarea" clearable
|
||||||
placeholder="请输入多行文本框3" />
|
placeholder="请输入多行文本框3" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
@ -68,7 +68,12 @@
|
|||||||
<el-table-column label="合同计划结束日期" prop="end_date" show-overflow-tooltip />
|
<el-table-column label="合同计划结束日期" prop="end_date" show-overflow-tooltip />
|
||||||
<el-table-column label="工程总投资" prop="project_money" show-overflow-tooltip />
|
<el-table-column label="工程总投资" prop="project_money" show-overflow-tooltip />
|
||||||
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
|
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
|
||||||
<el-table-column label="行业性质" prop="industry_nature" show-overflow-tooltip />
|
<el-table-column label="行业性质" prop="industry_nature" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-value :options="dictData.cost_consultation_industry_nature"
|
||||||
|
:value="row.industry_nature" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="签订部门" prop="dept" show-overflow-tooltip />
|
<el-table-column label="签订部门" prop="dept" show-overflow-tooltip />
|
||||||
<el-table-column label="资金来源" prop="fund_sources_text" show-overflow-tooltip />
|
<el-table-column label="资金来源" prop="fund_sources_text" show-overflow-tooltip />
|
||||||
<el-table-column label="建设区域" prop="const_area_text" show-overflow-tooltip />
|
<el-table-column label="建设区域" prop="const_area_text" show-overflow-tooltip />
|
||||||
@ -86,12 +91,12 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['cost_project.cost_approved_project/edit']" type='warning' link>
|
<el-button v-perms="['cost_project.cost_approved_project/edit']" type='warning' link>
|
||||||
<router-link :to="{
|
<router-link :to="{
|
||||||
path: '/cost_consultation/cost_consultation_project/cost_project',
|
path: '/cost_consultation/cost_consultation_project/cost_project',
|
||||||
query: {
|
query: {
|
||||||
contractId: row.id,
|
contractId: row.id,
|
||||||
contractName: row.contract_name
|
contractName: row.contract_name
|
||||||
}
|
}
|
||||||
}">
|
}">
|
||||||
生成项目
|
生成项目
|
||||||
</router-link>
|
</router-link>
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -180,4 +185,3 @@ const handleCreation = async (id: number | any[]) => {
|
|||||||
}
|
}
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ const formData = reactive({
|
|||||||
generalize: '',
|
generalize: '',
|
||||||
note: '',
|
note: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
annex: '',
|
annex: [],
|
||||||
})
|
})
|
||||||
//获取所有组织
|
//获取所有组织
|
||||||
const getlist = () => {
|
const getlist = () => {
|
||||||
@ -385,17 +385,11 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData.province = Number(formData.province)
|
formData.province = Number(formData.province)
|
||||||
formData.city = Number(formData.city)
|
formData.city = Number(formData.city)
|
||||||
formData.depar = Number(formData.depar)
|
formData.depar = Number(formData.depar)
|
||||||
|
formData.contract_name = data.contract.contract_name
|
||||||
getCityList();
|
getCityList();
|
||||||
deptrmt(formData.org_id)
|
deptrmt(formData.org_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
|
||||||
const data = await apiCostProjectDetail({
|
|
||||||
id: row.id
|
|
||||||
})
|
|
||||||
setFormData(data)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
@ -453,6 +447,5 @@ getProvinceList();
|
|||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
getDetail
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="关联合同" prop="contract_id" show-overflow-tooltip />
|
<el-table-column label="关联合同" prop="contract.contract_name" show-overflow-tooltip />
|
||||||
<el-table-column label="咨询类型" prop="types" show-overflow-tooltip>
|
<el-table-column label="咨询类型" prop="types" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<dict-value :options="dictData.consultation_type" :value="row.types" />
|
<dict-value :options="dictData.consultation_type" :value="row.types" />
|
||||||
@ -59,7 +59,6 @@
|
|||||||
<el-table-column label="计划开始日期" prop="starting" 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="endtime" show-overflow-tooltip />
|
||||||
<el-table-column label="计划工期(天)" prop="jhgq" show-overflow-tooltip />
|
<el-table-column label="计划工期(天)" prop="jhgq" show-overflow-tooltip />
|
||||||
<el-table-column label="项目所属部门" prop="depar" show-overflow-tooltip />
|
|
||||||
<el-table-column label="项目负责人" prop="principal" show-overflow-tooltip />
|
<el-table-column label="项目负责人" prop="principal" show-overflow-tooltip />
|
||||||
<el-table-column label="项目相关人员" prop="person" show-overflow-tooltip />
|
<el-table-column label="项目相关人员" prop="person" show-overflow-tooltip />
|
||||||
<el-table-column label="项目总投资(万元)" prop="invest" show-overflow-tooltip />
|
<el-table-column label="项目总投资(万元)" prop="invest" show-overflow-tooltip />
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="委托单位" prop="wt_unit">
|
<el-form-item label="委托单位" prop="wt_unit">
|
||||||
<el-input v-model="formData.wt_unit" clearable placeholder="请输入委托单位" />
|
<el-input v-model="formData.wt_unit" clearable placeholder="请输入委托单位" readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -185,6 +185,7 @@ const customEvent = (e: any) => {
|
|||||||
formData.project_id = e.id
|
formData.project_id = e.id
|
||||||
formData.project_name = e.project_name
|
formData.project_name = e.project_name
|
||||||
formData.project_num = e.project_num
|
formData.project_num = e.project_num
|
||||||
|
formData.wt_unit = e.aunit
|
||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目编号" prop="project_num">
|
<el-form-item label="项目编号" prop="project_num">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||||
@ -88,7 +88,7 @@ const showEdit = ref(false)
|
|||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
datas: '',
|
datas: '',
|
||||||
})
|
})
|
||||||
@ -135,4 +135,3 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -62,6 +62,12 @@ import Popup from '@/components/popup/index.vue'
|
|||||||
import { apiManageInfoReportAdd, apiManageInfoReportEdit, apiManageInfoReportDetail } from '@/api/manage_info_report'
|
import { apiManageInfoReportAdd, apiManageInfoReportEdit, apiManageInfoReportDetail } from '@/api/manage_info_report'
|
||||||
import { manage_project } from "@/components/dialogTable/dialogTableConfig"
|
import { manage_project } from "@/components/dialogTable/dialogTableConfig"
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import useUserStore from "@/stores/modules/user";
|
||||||
|
const userStore = useUserStore().userInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -75,7 +81,6 @@ const mode = ref('add')
|
|||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑项目管理--项目信息上报' : '新增项目管理--项目信息上报'
|
return mode.value == 'edit' ? '编辑项目管理--项目信息上报' : '新增项目管理--项目信息上报'
|
||||||
@ -96,7 +101,6 @@ const formData = reactive({
|
|||||||
id: '',
|
id: '',
|
||||||
project_id: '',
|
project_id: '',
|
||||||
project_name: "",
|
project_name: "",
|
||||||
create_time: "",
|
|
||||||
abstract: '',
|
abstract: '',
|
||||||
happen_date: '',
|
happen_date: '',
|
||||||
severity: '',
|
severity: '',
|
||||||
@ -105,7 +109,8 @@ const formData = reactive({
|
|||||||
opinions: '',
|
opinions: '',
|
||||||
giver: '',
|
giver: '',
|
||||||
annex: [],
|
annex: [],
|
||||||
create_user: '',
|
create_user: userStore.account,
|
||||||
|
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||||
})
|
})
|
||||||
|
|
||||||
const customEvent = (e: any) => {
|
const customEvent = (e: any) => {
|
||||||
@ -115,6 +120,11 @@ const customEvent = (e: any) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// (function () {
|
||||||
|
// console.log('这是一个立即执行函数!');
|
||||||
|
// })();
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
project_id: [{
|
project_id: [{
|
||||||
|
@ -43,6 +43,11 @@ import Popup from '@/components/popup/index.vue'
|
|||||||
import { apiManageMeteredPaymentAdd, apiManageMeteredPaymentEdit, apiManageMeteredPaymentDetail } from '@/api/manage_metered_payment'
|
import { apiManageMeteredPaymentAdd, apiManageMeteredPaymentEdit, apiManageMeteredPaymentDetail } from '@/api/manage_metered_payment'
|
||||||
import { manage_project } from "@/components/dialogTable/dialogTableConfig"
|
import { manage_project } from "@/components/dialogTable/dialogTableConfig"
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import useUserStore from "@/stores/modules/user";
|
||||||
|
const userStore = useUserStore().userInfo;
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -70,8 +75,8 @@ const formData = reactive({
|
|||||||
month_amount: '',
|
month_amount: '',
|
||||||
month_pay: '',
|
month_pay: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
create_user: '',
|
create_user: userStore.account,
|
||||||
create_time: "",
|
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||||
})
|
})
|
||||||
|
|
||||||
const customEvent = (e: any) => {
|
const customEvent = (e: any) => {
|
||||||
|
@ -188,8 +188,15 @@
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiManageProjectAdd, apiManageProjectEdit, apiManageProjectDetail } from '@/api/manage_project'
|
import { apiManageProjectAdd, apiManageProjectEdit, apiManageProjectDetail } from '@/api/manage_project'
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import useUserStore from "@/stores/modules/user";
|
||||||
|
const userStore = useUserStore().userInfo;
|
||||||
|
|
||||||
|
// create_user: userStore.account,
|
||||||
|
// create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -245,8 +252,8 @@ const formData = reactive({
|
|||||||
contract: '',
|
contract: '',
|
||||||
part_a_unit: '',
|
part_a_unit: '',
|
||||||
annex: [],
|
annex: [],
|
||||||
create_user: '',
|
create_user: userStore.account,
|
||||||
create_time: "",
|
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,25 +3,37 @@
|
|||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||||
@close="handleClose">
|
@close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="单据编号" prop="num">
|
||||||
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
</el-form-item>
|
@click="showDialog = true" />
|
||||||
<el-form-item label="项目名称" prop="project">
|
</el-form-item>
|
||||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
</el-col>
|
||||||
@click="showDialog = true" />
|
<el-col :span="8">
|
||||||
</el-form-item>
|
<el-form-item label="项目编号" prop="project_num">
|
||||||
<el-form-item label="项目编号" prop="project_num">
|
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
<el-form-item label="登记人" prop="djr">
|
<el-col :span="8">
|
||||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
<el-form-item label="登记人" prop="djr">
|
||||||
</el-form-item>
|
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
||||||
<el-form-item label="登记日期" prop="djrq">
|
</el-form-item>
|
||||||
<el-date-picker class="flex-1 !flex" v-model="formData.djrq" clearable type="date"
|
</el-col>
|
||||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
<el-col :span="8">
|
||||||
</el-date-picker>
|
<el-form-item label="登记日期" prop="djrq">
|
||||||
</el-form-item>
|
<el-date-picker class="flex-1 !flex" v-model="formData.djrq" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
<dialogTable :config="cost_project" @customEvent="customEvent">
|
<dialogTable :config="cost_project" @customEvent="customEvent">
|
||||||
</dialogTable>
|
</dialogTable>
|
||||||
@ -35,7 +47,7 @@
|
|||||||
<el-table :data="formData.project_change_visa_content">
|
<el-table :data="formData.project_change_visa_content">
|
||||||
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button @click="handleAdd(row)">+</el-button>
|
<el-button @click="handleAdd()">+</el-button>
|
||||||
<el-button @click="handleDelete(row)">-</el-button>
|
<el-button @click="handleDelete(row)">-</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目编号" prop="project_num">
|
<el-form-item label="项目编号" prop="project_num">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||||
@ -21,14 +21,15 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||||
<el-button v-perms="['project_process_management.project_change_visa/add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['project_process_management.project_change_visa/add']" type="primary"
|
||||||
|
@click="handleAdd">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['project_process_management.project_change_visa/delete']" :disabled="!selectData.length"
|
<el-button v-perms="['project_process_management.project_change_visa/delete']"
|
||||||
@click="handleDelete(selectData)">
|
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
@ -61,8 +62,8 @@
|
|||||||
<el-table-column label="登记日期" prop="djrq" show-overflow-tooltip />
|
<el-table-column label="登记日期" prop="djrq" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-perms="['project_process_management.project_change_visa/edit']" type="primary" link
|
<el-button v-perms="['project_process_management.project_change_visa/edit']" type="primary"
|
||||||
@click="handleEdit(row)">
|
link @click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['project_process_management.project_change_visa/delete']" type="danger"
|
<el-button v-perms="['project_process_management.project_change_visa/delete']" type="danger"
|
||||||
@ -97,7 +98,7 @@ const showEdit = ref(false)
|
|||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -143,4 +144,3 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -27,13 +27,12 @@
|
|||||||
<el-input class="w-[280px]" v-model="queryParams.reviewer" clearable placeholder="请输入审核人" />
|
<el-input class="w-[280px]" v-model="queryParams.reviewer" clearable placeholder="请输入审核人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="施工单位申报值" prop="declared_value">
|
<el-form-item label="施工单位申报值" prop="declared_value">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.declared_value" clearable placeholder="请输入施工单位申报值" />
|
<el-input class="w-[280px]" v-model="queryParams.declared_value" clearable
|
||||||
|
placeholder="请输入施工单位申报值" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="咨询单位测算值" prop="calculated_value">
|
<el-form-item label="咨询单位测算值" prop="calculated_value">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.calculated_value" clearable placeholder="请输入咨询单位测算值" />
|
<el-input class="w-[280px]" v-model="queryParams.calculated_value" clearable
|
||||||
</el-form-item>
|
placeholder="请输入咨询单位测算值" />
|
||||||
<el-form-item label="备注" prop="remark">
|
|
||||||
<el-input class="w-[280px]" v-model="queryParams.remark" clearable placeholder="请输入备注" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@ -45,13 +44,13 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||||
<el-button v-perms="['project_process_management.project_change_visa_content/add']" type="primary"
|
<!-- <el-button v-perms="['project_process_management.project_change_visa_content/add']" type="primary"
|
||||||
@click="handleAdd">
|
@click="handleAdd">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button> -->
|
||||||
<el-button v-perms="['project_process_management.project_change_visa_content/delete']"
|
<el-button v-perms="['project_process_management.project_change_visa_content/delete']"
|
||||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||||
删除
|
删除
|
||||||
@ -163,4 +162,3 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目编号" prop="project_num">
|
<el-form-item label="项目编号" prop="project_num">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||||
@ -80,7 +80,8 @@
|
|||||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-perms="['project_commission/edit']" type="primary" link @click="handleEdit(row)">
|
<el-button v-perms="['project_commission/edit']" type="primary" link
|
||||||
|
@click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['project_commission/delete']" type="danger" link
|
<el-button v-perms="['project_commission/delete']" type="danger" link
|
||||||
@ -115,7 +116,7 @@ const showEdit = ref(false)
|
|||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -161,4 +162,3 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1,57 +1,55 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
@close="handleClose">
|
||||||
<!-- <el-form-item label="主表标识" prop="project_commission_dataid">
|
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
<el-input v-model="formData.project_commission_dataid" clearable placeholder="请输入主表标识" />
|
<el-form-item label="工程师" prop="engineer">
|
||||||
</el-form-item> -->
|
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" @click="userclick" />
|
||||||
<el-form-item label="工程师" prop="engineer">
|
</el-form-item>
|
||||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" @click="userclick" />
|
|
||||||
</el-form-item>
|
<el-form-item label="任务名称" prop="task_name">
|
||||||
<!-- <el-form-item label="工程师id" prop="engineer_id">
|
<el-input v-model="formData.task_name" clearable placeholder="请输入任务名称" />
|
||||||
<el-input v-model="formData.engineer_id" clearable placeholder="请输入工程师id" />
|
</el-form-item>
|
||||||
</el-form-item> -->
|
<el-form-item label="任务类型" prop="task_type">
|
||||||
<el-form-item label="任务名称" prop="task_name">
|
<el-select class="flex-1" v-model="formData.task_type" clearable placeholder="请选择任务类型">
|
||||||
<el-input v-model="formData.task_name" clearable placeholder="请输入任务名称" />
|
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||||
</el-form-item>
|
:value="item.value" />
|
||||||
<el-form-item label="任务类型" prop="task_type">
|
</el-select>
|
||||||
<el-select class="flex-1" v-model="formData.task_type" clearable placeholder="请选择任务类型">
|
</el-form-item>
|
||||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name" :value="item.value" />
|
<el-form-item label="专业类型" prop="professional_type">
|
||||||
</el-select>
|
<el-select class="flex-1" v-model="formData.professional_type" clearable placeholder="请选择专业类型">
|
||||||
</el-form-item>
|
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||||
<el-form-item label="专业类型" prop="professional_type">
|
:value="item.value" />
|
||||||
<el-select class="flex-1" v-model="formData.professional_type" clearable placeholder="请选择专业类型">
|
</el-select>
|
||||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name" :value="item.value" />
|
</el-form-item>
|
||||||
</el-select>
|
<el-form-item label="造价金额" prop="zj_amount">
|
||||||
</el-form-item>
|
<el-input v-model="formData.zj_amount" clearable placeholder="请输入造价金额" type="number" />
|
||||||
<el-form-item label="造价金额" prop="zj_amount">
|
</el-form-item>
|
||||||
<el-input v-model="formData.zj_amount" clearable placeholder="请输入造价金额" />
|
<el-form-item label="收款金额" prop="sk_amount">
|
||||||
</el-form-item>
|
<el-input v-model="formData.sk_amount" clearable placeholder="请输入收款金额" type="number" />
|
||||||
<el-form-item label="收款金额" prop="sk_amount">
|
</el-form-item>
|
||||||
<el-input v-model="formData.sk_amount" clearable placeholder="请输入收款金额" />
|
<el-form-item label="提成比例(%)" prop="tc_rate">
|
||||||
</el-form-item>
|
<el-input v-model="formData.tc_rate" clearable placeholder="请输入提成比例(%)" type="number" />
|
||||||
<el-form-item label="提成比例(%)" prop="tc_rate">
|
</el-form-item>
|
||||||
<el-input v-model="formData.tc_rate" clearable placeholder="请输入提成比例(%)" />
|
<el-form-item label="应提成金额" prop="tc_amount">
|
||||||
</el-form-item>
|
<el-input v-model="formData.tc_amount" clearable placeholder="请输入应提成金额" type="number" />
|
||||||
<el-form-item label="应提成金额" prop="tc_amount">
|
</el-form-item>
|
||||||
<el-input v-model="formData.tc_amount" clearable placeholder="请输入应提成金额" />
|
<el-form-item label="本次支付金额" prop="pay_amount">
|
||||||
</el-form-item>
|
<el-input v-model="formData.pay_amount" clearable placeholder="请输入本次支付金额" type="number" />
|
||||||
<el-form-item label="本次支付金额" prop="pay_amount">
|
</el-form-item>
|
||||||
<el-input v-model="formData.pay_amount" clearable placeholder="请输入本次支付金额" />
|
<el-form-item label="备注" prop="remark">
|
||||||
</el-form-item>
|
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
||||||
<el-form-item label="备注" prop="remark">
|
</el-form-item>
|
||||||
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
|
<el-form-item label="其他增减费用" prop="other_fee">
|
||||||
</el-form-item>
|
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他增减费用" />
|
||||||
<el-form-item label="其他增减费用" prop="other_fee">
|
</el-form-item>
|
||||||
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他增减费用" />
|
<div v-if="showDialog3">
|
||||||
</el-form-item>
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
<div v-if="showDialog3">
|
</personnelselector>
|
||||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
</div>
|
||||||
</personnelselector>
|
</el-form>
|
||||||
</div>
|
</popup>
|
||||||
</el-form>
|
</div>
|
||||||
</popup>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="projectCommissionDetailEdit">
|
<script lang="ts" setup name="projectCommissionDetailEdit">
|
||||||
@ -61,10 +59,10 @@ import { apiProjectCommissionDetailAdd, apiProjectCommissionDetailEdit, } from '
|
|||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const emit = defineEmits(['success', 'close'])
|
const emit = defineEmits(['success', 'close'])
|
||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
@ -76,40 +74,40 @@ const personnel = ref<any>()
|
|||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑提成明细' : '新增提成明细'
|
return mode.value == 'edit' ? '编辑提成明细' : '新增提成明细'
|
||||||
})
|
})
|
||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: '',
|
id: '',
|
||||||
project_commission_dataid: '',
|
project_commission_dataid: '',
|
||||||
engineer: '',
|
engineer: '',
|
||||||
engineer_id: '',
|
engineer_id: '',
|
||||||
task_name: '',
|
task_name: '',
|
||||||
task_type: '',
|
task_type: '',
|
||||||
professional_type: '',
|
professional_type: '',
|
||||||
zj_amount: '',
|
zj_amount: '',
|
||||||
sk_amount: '',
|
sk_amount: '',
|
||||||
tc_rate: '',
|
tc_rate: '',
|
||||||
tc_amount: '',
|
tc_amount: '',
|
||||||
pay_amount: '',
|
pay_amount: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
other_fee: '',
|
other_fee: '',
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
//打开弹窗
|
//打开弹窗
|
||||||
const userclick = async (e: any) => {
|
const userclick = async (e: any) => {
|
||||||
showDialog3.value = true
|
showDialog3.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
personnel.value.open()
|
personnel.value.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
//确认
|
//确认
|
||||||
const submituser = (e: any) => {
|
const submituser = (e: any) => {
|
||||||
formData.engineer = e.name
|
formData.engineer = e.name
|
||||||
formData.engineer_id = e.id
|
formData.engineer_id = e.id
|
||||||
showDialog3.value = false
|
showDialog3.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
@ -120,51 +118,51 @@ const formRules = reactive<any>({
|
|||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
for (const key in formData) {
|
for (const key in formData) {
|
||||||
if (data[key] != null && data[key] != undefined) {
|
if (data[key] != null && data[key] != undefined) {
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
const data = await apiProjectCommissionDetailDetail({
|
const data = await apiProjectCommissionDetailDetail({
|
||||||
id: row.id
|
id: row.id
|
||||||
})
|
})
|
||||||
setFormData(data)
|
setFormData(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
await formRef.value?.validate()
|
await formRef.value?.validate()
|
||||||
const data = { ...formData, }
|
const data = { ...formData, }
|
||||||
mode.value == 'edit'
|
mode.value == 'edit'
|
||||||
? await apiProjectCommissionDetailEdit(data)
|
? await apiProjectCommissionDetailEdit(data)
|
||||||
: await apiProjectCommissionDetailAdd(data)
|
: await apiProjectCommissionDetailAdd(data)
|
||||||
popupRef.value?.close()
|
popupRef.value?.close()
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
|
|
||||||
//打开弹窗
|
//打开弹窗
|
||||||
const open = (type = 'add') => {
|
const open = (type = 'add') => {
|
||||||
mode.value = type
|
mode.value = type
|
||||||
popupRef.value?.open()
|
popupRef.value?.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭回调
|
// 关闭回调
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
emit('close')
|
emit('close')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -24,13 +24,13 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="登记人" prop="djr">
|
<el-form-item label="登记人" prop="djr">
|
||||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
<el-input v-model="formData.djr" disabled clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="登记日期" prop="djrq">
|
<el-form-item label="登记日期" prop="djrq">
|
||||||
<el-date-picker class="flex-1 !flex" v-model="formData.djrq" clearable type="date"
|
<el-date-picker class="flex-1 !flex" v-model="formData.djrq" clearable type="date"
|
||||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
value-format="YYYY-MM-DD" disabled placeholder="请选择日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -205,6 +205,13 @@ import Popup from '@/components/popup/index.vue'
|
|||||||
import { apiProjectProgressPaymentAdd, apiProjectProgressPaymentEdit, apiProjectProgressPaymentDetail } from '@/api/project_progress_payment'
|
import { apiProjectProgressPaymentAdd, apiProjectProgressPaymentEdit, apiProjectProgressPaymentDetail } from '@/api/project_progress_payment'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { cost_project } from "@/components/dialogTable/dialogTableConfig"
|
import { cost_project } from "@/components/dialogTable/dialogTableConfig"
|
||||||
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import useUserStore from "@/stores/modules/user";
|
||||||
|
const userStore = useUserStore().userInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -238,8 +245,8 @@ const formData = reactive({
|
|||||||
project_id: '',
|
project_id: '',
|
||||||
project_name: "",
|
project_name: "",
|
||||||
project_num: '',
|
project_num: '',
|
||||||
djr: '',
|
djr: userStore.account,
|
||||||
djrq: '',
|
djrq: timeFormat('', 'yyyy-mm-dd'),
|
||||||
sbhj: '',
|
sbhj: '',
|
||||||
shhj: '',
|
shhj: '',
|
||||||
ljhj: '',
|
ljhj: '',
|
||||||
@ -276,12 +283,19 @@ const formData = reactive({
|
|||||||
watch(
|
watch(
|
||||||
() => formData.project_progress_payment_detail,
|
() => formData.project_progress_payment_detail,
|
||||||
(value) => {
|
(value) => {
|
||||||
|
formData.sbhj = 0
|
||||||
|
formData.shhj = 0
|
||||||
|
formData.ljhj = 0
|
||||||
value.forEach(item => {
|
value.forEach(item => {
|
||||||
item.jdsbzj_xiaoji = Number(item.declared_cost_tj) + Number(item.declared_cost_az) + Number(item.declared_cost_other)
|
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.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.payment_rate = item.dcntract_payment_rate
|
||||||
item.deduction_amount = jdsbzj_xiaoji - jdshzj_xiaoji
|
item.deduction_amount = item.jdsbzj_xiaoji - item.jdshzj_xiaoji
|
||||||
item.ljwc_funds
|
item.ljwc_funds = item.jdshzj_xiaoji
|
||||||
|
item.current_payable_funds = (Number(item.ljwc_funds) * Number(item.payment_rate)) || 0
|
||||||
|
formData.sbhj += item.jdsbzj_xiaoji
|
||||||
|
formData.shhj += item.jdshzj_xiaoji
|
||||||
|
formData.ljhj += item.current_payable_funds
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -42,13 +42,13 @@
|
|||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="踏勘内容" prop="content">
|
<el-form-item label="踏勘内容" prop="content">
|
||||||
<el-input v-model="formData.content" clearable placeholder="请输入踏勘内容" />
|
<el-input v-model="formData.content" clearable placeholder="请输入踏勘内容" type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="核实结果" prop="result">
|
<el-form-item label="核实结果" prop="result">
|
||||||
<el-input v-model="formData.result" clearable placeholder="请输入核实结果" />
|
<el-input v-model="formData.result" clearable placeholder="请输入核实结果" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="formData.remark" clearable placeholder="请输入" />
|
<el-input v-model="formData.remark" clearable placeholder="请输入" type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="附件">
|
<el-form-item label="附件">
|
||||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project" clearable placeholder="请输入项目名称" />
|
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目编号" prop="project_num">
|
<el-form-item label="项目编号" prop="project_num">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
<el-input class="w-[280px]" v-model="queryParams.project_num" clearable placeholder="请输入项目编号" />
|
||||||
@ -51,8 +51,8 @@
|
|||||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-perms="['project_process_management.project_survey_signature/edit']" type="primary"
|
<el-button v-perms="['project_process_management.project_survey_signature/edit']"
|
||||||
link @click="handleEdit(row)">
|
type="primary" link @click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['project_process_management.project_survey_signature/delete']"
|
<el-button v-perms="['project_process_management.project_survey_signature/delete']"
|
||||||
@ -87,7 +87,7 @@ const showEdit = ref(false)
|
|||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -133,4 +133,3 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
@close="handleClose">
|
||||||
|
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col>
|
||||||
<el-form-item label="项目类型" prop="contract_no">
|
<el-form-item label="项目类型" prop="contract_no">
|
||||||
<el-input v-model="formData.name" clearable placeholder="请输入项目类型" />
|
<el-input v-model="formData.name" clearable placeholder="请输入项目类型" />
|
||||||
</el-form-item> </el-col>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -20,10 +21,7 @@
|
|||||||
<script lang="ts" setup name="procurementContractEdit">
|
<script lang="ts" setup name="procurementContractEdit">
|
||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
|
|
||||||
import { apiProjecttypeAdd, apiProjecttypeEdit, apiProjecttypDetail } from '@/api/projecttype'
|
import { apiProjecttypeAdd, apiProjecttypeEdit, apiProjecttypDetail } from '@/api/projecttype'
|
||||||
|
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
@ -35,10 +33,6 @@ const emit = defineEmits(['success', 'close'])
|
|||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
const mode = ref('add')
|
const mode = ref('add')
|
||||||
// const showDialog = ref(false)
|
|
||||||
// const showDialog1 = ref(false)
|
|
||||||
// const project_name = ref('')
|
|
||||||
// const project_code = ref('')
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
|
@ -3,47 +3,60 @@
|
|||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||||
@close="handleClose">
|
@close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-row>
|
||||||
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
<el-col :span="8">
|
||||||
</el-form-item>
|
<el-form-item label="单据编号" prop="num">
|
||||||
<el-form-item label="项目名称" prop="project_id">
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
</el-form-item>
|
||||||
@click="showDialog = true" />
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="8">
|
||||||
<el-form-item label="项目编号" prop="project_num">
|
<el-form-item label="项目名称" prop="project_name">
|
||||||
<el-input v-model="formData.project_num" clearable readonly />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
</el-form-item>
|
@click="showDialog = true" />
|
||||||
<el-form-item label="项目负责人" prop="head">
|
</el-form-item>
|
||||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="8">
|
||||||
<el-form-item label="登记日期" prop="apptime">
|
<el-form-item label="项目编号" prop="project_num">
|
||||||
<el-date-picker class="flex-1 !flex" v-model="formData.apptime" clearable type="date"
|
<el-input v-model="formData.project_num" clearable readonly />
|
||||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
</el-form-item>
|
||||||
</el-date-picker>
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="8">
|
||||||
<el-form-item label="附件">
|
<el-form-item label="项目负责人" prop="head">
|
||||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||||
@delFile="delFileFn" />
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<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-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="附件">
|
||||||
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@delFile="delFileFn" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
<dialogTable :config="cost_project" :query="{ task_allocation: 1 }" @customEvent="customEvent">
|
<dialogTable :config="cost_project" :query="{ task_allocation: 1 }" @customEvent="customEvent">
|
||||||
</dialogTable>
|
</dialogTable>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog v-model="showDialog1" title="选择任务" width="70%">
|
<el-dialog v-model="showDialog1" title="选择任务" width="70%">
|
||||||
<task_type @customEvent="customEvent1"></task_type>
|
<dialogTable :config="task_type" @customEvent="customEvent1">
|
||||||
|
</dialogTable>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<div v-if="showDialog3">
|
<div v-if="showDialog3">
|
||||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
</personnelselector>
|
</personnelselector>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div style="margin-bottom: 30px;">任务明细</div>
|
<div style="margin-bottom: 30px;">任务明细</div>
|
||||||
<div style="margin-bottom: 30px;">
|
<div style="margin-bottom: 30px;">
|
||||||
<el-table :data="formData.task_detail">
|
<el-table :data="formData.task_detail">
|
||||||
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button @click="handleAdd(row)">+</el-button>
|
<el-button @click="handleAdd()">+</el-button>
|
||||||
<el-button @click="handleDelete(row)">-</el-button>
|
<el-button @click="handleDelete(row)">-</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -193,8 +206,14 @@
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiTaskAllocationAdd, apiTaskAllocationEdit, } from '@/api/task_allocation'
|
import { apiTaskAllocationAdd, apiTaskAllocationEdit, } from '@/api/task_allocation'
|
||||||
import { cost_project } from "@/components/dialogTable/dialogTableConfig"
|
import { cost_project, task_type } from "@/components/dialogTable/dialogTableConfig"
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import useUserStore from "@/stores/modules/user";
|
||||||
|
const userStore = useUserStore().userInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -232,8 +251,8 @@ const formData = reactive({
|
|||||||
project_id: '',
|
project_id: '',
|
||||||
project_name: "",
|
project_name: "",
|
||||||
project_num: '',
|
project_num: '',
|
||||||
head: '',
|
head: userStore.account,
|
||||||
apptime: '',
|
apptime: timeFormat('', 'yyyy-mm-dd'),
|
||||||
annex: [],
|
annex: [],
|
||||||
task_detail: [{
|
task_detail: [{
|
||||||
task_name: '',
|
task_name: '',
|
||||||
@ -352,7 +371,7 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
}
|
}
|
||||||
formData.project_name = formData.projectInfo?.project_name || ""
|
formData.project_name = formData.projectInfo?.project_name || ""
|
||||||
formData.project_num = formData.projectInfo?.project_num || ""
|
formData.project_num = formData.projectInfo?.project_num || ""
|
||||||
formData.project_id = formData.projectInfo?.project_id || ""
|
formData.project_id = formData.projectInfo?.id || ""
|
||||||
formData.head = formData.projectInfo?.principal || ""
|
formData.head = formData.projectInfo?.principal || ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="60%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="60%" @confirm="handleSubmit"
|
||||||
|
@close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="100px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="100px" :rules="formRules">
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
@ -19,7 +20,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="专业类型" prop="professional_type">
|
<el-form-item label="专业类型" prop="professional_type">
|
||||||
<el-select class="flex-1" v-model="formData.professional_type" clearable placeholder="请选择专业类型">
|
<el-select class="flex-1" v-model="formData.professional_type" clearable
|
||||||
|
placeholder="请选择专业类型">
|
||||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||||
:value="item.value" />
|
:value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<!-- <el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@ -10,21 +10,11 @@
|
|||||||
:page-size="pager.size" />
|
:page-size="pager.size" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card> -->
|
||||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||||
<!-- <el-button v-perms="['task_detail/add']" type="primary" @click="handleAdd">
|
|
||||||
<template #icon>
|
|
||||||
<icon name="el-icon-Plus" />
|
|
||||||
</template>
|
|
||||||
新增
|
|
||||||
</el-button>
|
|
||||||
<el-button v-perms="['task_detail/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
|
||||||
删除
|
|
||||||
</el-button> -->
|
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="主表标识" prop="taskAllocation.dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="任务名称" prop="taskTypeInfo.name" show-overflow-tooltip />
|
<el-table-column label="任务名称" prop="taskTypeInfo.name" show-overflow-tooltip />
|
||||||
<el-table-column label="工序" prop="process" show-overflow-tooltip />
|
<el-table-column label="工序" prop="process" show-overflow-tooltip />
|
||||||
<el-table-column label="任务类型" prop="task_type_id">
|
<el-table-column label="任务类型" prop="task_type_id">
|
||||||
@ -59,7 +49,8 @@
|
|||||||
<el-button v-perms="['task_detail/edit']" type="primary" link @click="handleEdit(row)">
|
<el-button v-perms="['task_detail/edit']" type="primary" link @click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['task_detail/delete']" type="danger" link @click="handleDelete(row.id)">
|
<el-button v-perms="['task_detail/delete']" type="danger" link
|
||||||
|
@click="handleDelete(row.id)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -133,4 +124,3 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="项目名称" prop="project_id">
|
<el-form-item label="项目名称" prop="project_name">
|
||||||
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
@click="showDialog = true" />
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -49,7 +49,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="专业类型" prop="zType">
|
<el-form-item label="专业类型" prop="zType">
|
||||||
<!-- <el-input v-model="formData.zType" clearable placeholder="请输入专业类型" /> -->
|
|
||||||
<el-select class="flex-1" v-model="formData.zType" clearable placeholder="请选择专业类型">
|
<el-select class="flex-1" v-model="formData.zType" clearable placeholder="请选择专业类型">
|
||||||
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||||
:value="parseInt(item.value)" />
|
:value="parseInt(item.value)" />
|
||||||
@ -99,7 +98,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="登记日期" prop="apptime">
|
<el-form-item label="登记日期" prop="apptime">
|
||||||
<!-- <el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" /> -->
|
|
||||||
<el-date-picker v-model="formData.apptime" clearable type="date" value-format="YYYY-MM-DD"
|
<el-date-picker v-model="formData.apptime" clearable type="date" value-format="YYYY-MM-DD"
|
||||||
class="!flex flex-1" placeholder="请选择日期">
|
class="!flex flex-1" placeholder="请选择日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
@ -139,7 +137,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="编制要求" prop="ask">
|
<el-form-item label="编制要求" prop="ask">
|
||||||
<!-- <el-input v-model="formData.ask" clearable placeholder="请输入编制要求" /> -->
|
|
||||||
<el-select class="flex-1" v-model="formData.ask" clearable placeholder="请选择建筑结构类型">
|
<el-select class="flex-1" v-model="formData.ask" clearable placeholder="请选择建筑结构类型">
|
||||||
<el-option v-for="(item, index) in dictData.preparation_requirements " :key="index"
|
<el-option v-for="(item, index) in dictData.preparation_requirements " :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)" />
|
:label="item.name" :value="parseInt(item.value)" />
|
||||||
@ -150,7 +147,6 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="造价依据" prop="according">
|
<el-form-item label="造价依据" prop="according">
|
||||||
<!-- <el-input v-model="formData.according" clearable placeholder="请输入造价依据" /> -->
|
|
||||||
<el-select class="flex-1" v-model="formData.according" clearable placeholder="请选择造价依据">
|
<el-select class="flex-1" v-model="formData.according" clearable placeholder="请选择造价依据">
|
||||||
<el-option v-for="(item, index) in dictData.cost_sentence " :key="index"
|
<el-option v-for="(item, index) in dictData.cost_sentence " :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)" />
|
:label="item.name" :value="parseInt(item.value)" />
|
||||||
@ -159,7 +155,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="材料补差" prop="clbc">
|
<el-form-item label="材料补差" prop="clbc">
|
||||||
<!-- <el-input v-model="formData.clbc" clearable placeholder="请输入材料补差" /> -->
|
|
||||||
<el-select class="flex-1" v-model="formData.clbc" clearable placeholder="请选择材料补差">
|
<el-select class="flex-1" v-model="formData.clbc" clearable placeholder="请选择材料补差">
|
||||||
<el-option v-for="(item, index) in dictData.material_compensation " :key="index"
|
<el-option v-for="(item, index) in dictData.material_compensation " :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)" />
|
:label="item.name" :value="parseInt(item.value)" />
|
||||||
@ -209,7 +204,6 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="开工日期" prop="kaigong">
|
<el-form-item label="开工日期" prop="kaigong">
|
||||||
<!-- <el-input v-model="formData.kaigong" clearable placeholder="请输入开工日期" /> -->
|
|
||||||
<el-date-picker v-model="formData.kaigong" clearable type="date" class="!flex flex-1"
|
<el-date-picker v-model="formData.kaigong" clearable type="date" class="!flex flex-1"
|
||||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
@ -217,7 +211,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="竣工日期" prop="jungong">
|
<el-form-item label="竣工日期" prop="jungong">
|
||||||
<!-- <el-input v-model="formData.jungong" clearable placeholder="请输入竣工日期" /> -->
|
|
||||||
<el-date-picker v-model="formData.jungong" clearable type="date" value-format="YYYY-MM-DD"
|
<el-date-picker v-model="formData.jungong" clearable type="date" value-format="YYYY-MM-DD"
|
||||||
class="!flex flex-1" placeholder="请选择日期">
|
class="!flex flex-1" placeholder="请选择日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
@ -417,13 +410,11 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData.project_name = formData.projectInfo?.project_name
|
formData.project_name = formData.projectInfo?.project_name
|
||||||
formData.project_num = formData.projectInfo.project_num
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
|
||||||
}
|
let toStringList = ['rtype', 'zType', 'examine', 'type', 'ask', 'according', 'clbc']
|
||||||
|
toStringList.forEach(element => {
|
||||||
|
formData[element] = Number(formData[element])
|
||||||
|
});
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
|
||||||
const data = await apiTaskHandlingThreeLevelReviewDetail({
|
|
||||||
id: row.id
|
|
||||||
})
|
|
||||||
setFormData(data)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -454,6 +445,5 @@ const handleClose = () => {
|
|||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
getDetail
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,40 +1,40 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
|
||||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
@close="handleClose">
|
||||||
<el-form-item label="标识" prop="dataid">
|
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
<el-form-item label="标识" prop="dataid">
|
||||||
</el-form-item>
|
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||||
<el-form-item label="所属项目" prop="cost_project_id">
|
</el-form-item>
|
||||||
<el-select v-model="formData.cost_project_id" remote filterable :remote-method="queryCostProject"
|
<el-form-item label="所属项目" prop="cost_project_id">
|
||||||
:loading="loading" class="flex-1">
|
<el-select v-model="formData.cost_project_id" remote filterable :remote-method="queryCostProject"
|
||||||
<el-option v-for="(item, index) in optionsData.projectList" :key="index" :label="item.projectinfo"
|
:loading="loading" class="flex-1">
|
||||||
:value="item.id" />
|
<el-option v-for="(item, index) in optionsData.projectList" :key="index"
|
||||||
</el-select>
|
:label="item.projectinfo" :value="item.id" />
|
||||||
</el-form-item>
|
</el-select>
|
||||||
<el-form-item label="任务编号" prop="num">
|
</el-form-item>
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入任务编号" />
|
<el-form-item label="任务编号" prop="num">
|
||||||
</el-form-item>
|
<el-input v-model="formData.num" clearable placeholder="请输入任务编号" />
|
||||||
<el-form-item label="任务名称" prop="name">
|
</el-form-item>
|
||||||
<el-input v-model="formData.name" clearable placeholder="请输入任务名称" />
|
<el-form-item label="任务名称" prop="name">
|
||||||
</el-form-item>
|
<el-input v-model="formData.name" clearable placeholder="请输入任务名称" />
|
||||||
<el-form-item label="上级类别" prop="superior_sort">
|
</el-form-item>
|
||||||
<!-- <el-input v-model="formData.superior_sort" clearable placeholder="请输入上级类别" /> -->
|
<el-form-item label="上级类别" prop="superior_sort">
|
||||||
<el-select class="flex-1" v-model="formData.superior_sort" clearable placeholder="请选择上级类别">
|
<el-select class="flex-1" v-model="formData.superior_sort" clearable placeholder="请选择上级类别">
|
||||||
<el-option v-for="(item, index) in dictData.superior_category" :key="index" :label="item.name"
|
<el-option v-for="(item, index) in dictData.superior_category" :key="index" :label="item.name"
|
||||||
:value="parseInt(item.value)" />
|
:value="parseInt(item.value)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务级次" prop="level">
|
<el-form-item label="任务级次" prop="level">
|
||||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="remarks">
|
<el-form-item label="备注" prop="remarks">
|
||||||
<el-input v-model="formData.remarks" clearable placeholder="请输入备注" />
|
<el-input v-model="formData.remarks" clearable placeholder="请输入备注" type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="taskTypeEdit">
|
<script lang="ts" setup name="taskTypeEdit">
|
||||||
@ -45,10 +45,10 @@ import { useDictOptions } from "@/hooks/useDictOptions"
|
|||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { apiCostProjectDatas } from "@/api/cost_project";
|
import { apiCostProjectDatas } from "@/api/cost_project";
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const emit = defineEmits(['success', 'close'])
|
const emit = defineEmits(['success', 'close'])
|
||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
@ -58,19 +58,19 @@ const mode = ref('add')
|
|||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑任务类型' : '新增任务类型'
|
return mode.value == 'edit' ? '编辑任务类型' : '新增任务类型'
|
||||||
})
|
})
|
||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: '',
|
id: '',
|
||||||
dataid: '',
|
dataid: '',
|
||||||
cost_project_id: '',
|
cost_project_id: '',
|
||||||
num: '',
|
num: '',
|
||||||
name: '',
|
name: '',
|
||||||
superior_sort: '',
|
superior_sort: '',
|
||||||
level: '',
|
level: '',
|
||||||
remarks: '',
|
remarks: '',
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -82,73 +82,73 @@ const formRules = reactive<any>({
|
|||||||
|
|
||||||
|
|
||||||
const { optionsData } = useDictOptions<{
|
const { optionsData } = useDictOptions<{
|
||||||
projectList: any[]
|
projectList: any[]
|
||||||
}>({
|
}>({
|
||||||
projectList: {
|
projectList: {
|
||||||
api: apiCostProjectDatas,
|
api: apiCostProjectDatas,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
|
||||||
const queryCostProject = async (query: string) => {
|
const queryCostProject = async (query: string) => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
const projectList = await apiCostProjectDatas({
|
const projectList = await apiCostProjectDatas({
|
||||||
name: query ?? ''
|
name: query ?? ''
|
||||||
})
|
})
|
||||||
optionsData.projectList = projectList
|
optionsData.projectList = projectList
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
for (const key in formData) {
|
for (const key in formData) {
|
||||||
if (data[key] != null && data[key] != undefined) {
|
if (data[key] != null && data[key] != undefined) {
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
formData.superior_sort = Number(formData.superior_sort)
|
||||||
formData.superior_sort = Number(formData.superior_sort)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
const data = await apiTaskTypeDetail({
|
const data = await apiTaskTypeDetail({
|
||||||
id: row.id
|
id: row.id
|
||||||
})
|
})
|
||||||
setFormData(data)
|
setFormData(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
await formRef.value?.validate()
|
await formRef.value?.validate()
|
||||||
const data = { ...formData, }
|
const data = { ...formData, }
|
||||||
mode.value == 'edit'
|
mode.value == 'edit'
|
||||||
? await apiTaskTypeEdit(data)
|
? await apiTaskTypeEdit(data)
|
||||||
: await apiTaskTypeAdd(data)
|
: await apiTaskTypeAdd(data)
|
||||||
popupRef.value?.close()
|
popupRef.value?.close()
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
|
|
||||||
//打开弹窗
|
//打开弹窗
|
||||||
const open = (type = 'add') => {
|
const open = (type = 'add') => {
|
||||||
mode.value = type
|
mode.value = type
|
||||||
popupRef.value?.open()
|
popupRef.value?.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭回调
|
// 关闭回调
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
emit('close')
|
emit('close')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,71 +1,79 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
<el-form-item label="所属项目" prop="cost_project_id">
|
<el-form-item label="所属项目" prop="cost_project_id">
|
||||||
<el-select v-model="queryParams.cost_project_id" remote filterable :remote-method="queryCostProject"
|
<el-select v-model="queryParams.cost_project_id" remote filterable :remote-method="queryCostProject"
|
||||||
:loading="loading" class="flex-1">
|
:loading="loading" class="flex-1">
|
||||||
<el-option v-for="(item, index) in optionsData.projectList" :key="index" :label="item.projectinfo"
|
<el-option v-for="(item, index) in optionsData.projectList" :key="index"
|
||||||
:value="item.id" />
|
:label="item.projectinfo" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务名称" prop="unit_name">
|
<el-form-item label="任务名称" prop="unit_name">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入任务名称" />
|
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入任务名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="上级类别" prop="qualification_grade">
|
<el-form-item label="上级类别" prop="qualification_grade">
|
||||||
<el-select class="flex-1" v-model="queryParams.superior_sort" clearable placeholder="请选择上级类别">
|
<el-select class="flex-1" v-model="queryParams.superior_sort" clearable placeholder="请选择上级类别">
|
||||||
<el-option v-for="(item, index) in dictData.superior_category" :key="index" :label="item.name"
|
<el-option v-for="(item, index) in dictData.superior_category" :key="index" :label="item.name"
|
||||||
:value="parseInt(item.value)" />
|
:value="parseInt(item.value)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="时间段">
|
<el-form-item label="时间段">
|
||||||
<el-date-picker v-model="queryTime" type="daterange" unlink-panels range-separator="-" start-placeholder="开始时间"
|
<el-date-picker v-model="queryTime" type="daterange" unlink-panels range-separator="-"
|
||||||
end-placeholder="结束时间" @change="changeTime" value-format="YYYY-MM-DD" />
|
start-placeholder="开始时间" end-placeholder="结束时间" @change="changeTime"
|
||||||
</el-form-item>
|
value-format="YYYY-MM-DD" />
|
||||||
<el-form-item>
|
</el-form-item>
|
||||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
<el-form-item>
|
||||||
<el-button @click="resetParams">重置</el-button>
|
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||||
<export-data class="ml-2.5" :fetch-fun="apiTaskTypeLists" :params="queryParams" :page-size="pager.size" />
|
<el-button @click="resetParams">重置</el-button>
|
||||||
</el-form-item>
|
<export-data class="ml-2.5" :fetch-fun="apiTaskTypeLists" :params="queryParams"
|
||||||
</el-form>
|
:page-size="pager.size" />
|
||||||
</el-card>
|
</el-form-item>
|
||||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
</el-form>
|
||||||
<el-button v-perms="['task.task_type/add']" type="primary" @click="handleAdd">
|
</el-card>
|
||||||
<template #icon>
|
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||||
<icon name="el-icon-Plus" />
|
<el-button v-perms="['task.task_type/add']" type="primary" @click="handleAdd">
|
||||||
</template>
|
<template #icon>
|
||||||
新增
|
<icon name="el-icon-Plus" />
|
||||||
</el-button>
|
</template>
|
||||||
<el-button v-perms="['task.task_type/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
新增
|
||||||
删除
|
</el-button>
|
||||||
</el-button>
|
<el-button v-perms="['task.task_type/delete']" :disabled="!selectData.length"
|
||||||
<div class="mt-4">
|
@click="handleDelete(selectData)">
|
||||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
|
||||||
<el-table-column type="selection" width="55" />
|
|
||||||
<el-table-column label="标识" prop="dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="任务编号" prop="num" show-overflow-tooltip />
|
|
||||||
<el-table-column label="任务名称" prop="name" show-overflow-tooltip />
|
|
||||||
<el-table-column label="上级类别" prop="superior_sort" show-overflow-tooltip />
|
|
||||||
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
|
||||||
<el-table-column label="备注" prop="remarks" show-overflow-tooltip />
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-button v-perms="['task.task_type/edit']" type="primary" link @click="handleEdit(row)">
|
|
||||||
编辑
|
|
||||||
</el-button>
|
|
||||||
<el-button v-perms="['task.task_type/delete']" type="danger" link @click="handleDelete(row.id)">
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
<div class="mt-4">
|
||||||
</el-table-column>
|
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||||
</el-table>
|
<el-table-column type="selection" width="55" />
|
||||||
</div>
|
<el-table-column label="标识" prop="dataid" show-overflow-tooltip />
|
||||||
<div class="flex justify-end mt-4">
|
<el-table-column label="任务编号" prop="num" show-overflow-tooltip />
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<el-table-column label="任务名称" prop="name" show-overflow-tooltip />
|
||||||
</div>
|
<el-table-column label="上级类别" prop="superior_sort" show-overflow-tooltip>
|
||||||
</el-card>
|
<template #default="{ row }">
|
||||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
<dict-value :options="dictData.superior_category" :value="row.superior_sort" />
|
||||||
</div>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||||
|
<el-table-column label="备注" prop="remarks" show-overflow-tooltip />
|
||||||
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button v-perms="['task.task_type/edit']" type="primary" link @click="handleEdit(row)">
|
||||||
|
编辑
|
||||||
|
</el-button>
|
||||||
|
<el-button v-perms="['task.task_type/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>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="taskTypeLists">
|
<script lang="ts" setup name="taskTypeLists">
|
||||||
@ -83,42 +91,42 @@ const showEdit = ref(false)
|
|||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
|
||||||
const queryCostProject = async (query: string) => {
|
const queryCostProject = async (query: string) => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
const projectList = await apiCostProjectDatas({
|
const projectList = await apiCostProjectDatas({
|
||||||
name: query ?? ''
|
name: query ?? ''
|
||||||
})
|
})
|
||||||
optionsData.projectList = projectList
|
optionsData.projectList = projectList
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const { optionsData } = useDictOptions<{
|
const { optionsData } = useDictOptions<{
|
||||||
projectList: any[]
|
projectList: any[]
|
||||||
}>({
|
}>({
|
||||||
projectList: {
|
projectList: {
|
||||||
api: apiCostProjectDatas,
|
api: apiCostProjectDatas,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
name: "",
|
name: "",
|
||||||
superior_sort: "",
|
superior_sort: "",
|
||||||
cost_project_id: "",
|
cost_project_id: "",
|
||||||
start_time: "",
|
start_time: "",
|
||||||
end_time: ""
|
end_time: ""
|
||||||
})
|
})
|
||||||
const queryTime = ref('')
|
const queryTime = ref('')
|
||||||
const changeTime = () => {
|
const changeTime = () => {
|
||||||
queryParams.start_time = queryTime.value[0]
|
queryParams.start_time = queryTime.value[0]
|
||||||
queryParams.end_time = queryTime.value[1]
|
queryParams.end_time = queryTime.value[1]
|
||||||
}
|
}
|
||||||
// 选中数据
|
// 选中数据
|
||||||
const selectData = ref<any[]>([])
|
const selectData = ref<any[]>([])
|
||||||
|
|
||||||
// 表格选择后回调事件
|
// 表格选择后回调事件
|
||||||
const handleSelectionChange = (val: any[]) => {
|
const handleSelectionChange = (val: any[]) => {
|
||||||
selectData.value = val.map(({ id }) => id)
|
selectData.value = val.map(({ id }) => id)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取字典数据
|
// 获取字典数据
|
||||||
@ -126,32 +134,31 @@ const { dictData } = useDictData('superior_category')
|
|||||||
|
|
||||||
// 分页相关
|
// 分页相关
|
||||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||||
fetchFun: apiTaskTypeLists,
|
fetchFun: apiTaskTypeLists,
|
||||||
params: queryParams
|
params: queryParams
|
||||||
})
|
})
|
||||||
|
|
||||||
// 添加
|
// 添加
|
||||||
const handleAdd = async () => {
|
const handleAdd = async () => {
|
||||||
showEdit.value = true
|
showEdit.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
editRef.value?.open('add')
|
editRef.value?.open('add')
|
||||||
}
|
}
|
||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
showEdit.value = true
|
showEdit.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
editRef.value?.open('edit')
|
editRef.value?.open('edit')
|
||||||
editRef.value?.setFormData(data)
|
editRef.value?.setFormData(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
const handleDelete = async (id: number | any[]) => {
|
const handleDelete = async (id: number | any[]) => {
|
||||||
await feedback.confirm('确定要删除?')
|
await feedback.confirm('确定要删除?')
|
||||||
await apiTaskTypeDelete({ id })
|
await apiTaskTypeDelete({ id })
|
||||||
getLists()
|
getLists()
|
||||||
}
|
}
|
||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user