add
This commit is contained in:
parent
8f3b76ad38
commit
838b9fd21d
@ -1,9 +1,8 @@
|
||||
|
||||
<template>
|
||||
<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"
|
||||
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>
|
||||
@ -11,7 +10,7 @@
|
||||
<div>
|
||||
<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">{{
|
||||
item.name }}</a>
|
||||
item.name }}</a>
|
||||
<span style="cursor: pointer;margin-left: 5px;" @click="delFile(index)">x</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -21,6 +21,8 @@ import { apiSupervisionMaterialEntryLists } from '@/api/supervision_material_ent
|
||||
import { apiSupervisionParticipatingUnitsQualificationsLists } from '@/api/supervision_participating_units_qualifications'
|
||||
import { apiCostApprovedProjectLists } from '@/api/cost_approved_project'
|
||||
import { apiCostProjectLists } from '@/api/cost_project'
|
||||
import { apiTaskTypeLists } from '@/api/task_type'
|
||||
|
||||
|
||||
|
||||
export const supervision_project:Iconfig = {
|
||||
@ -283,7 +285,6 @@ export const cost_approved_projects:Iconfig = {
|
||||
{ end_date: "合同计划结束日期" },
|
||||
{ project_money: "工程总投资" },
|
||||
{ business_nature_text: "业务性质" },
|
||||
{ industry_nature: "行业性质" },
|
||||
{ dept: "签订部门" },
|
||||
{ fund_sources_text: "资金来源" },
|
||||
{ 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 }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="抄送人" label-align="left" align="left" label-class-name="my-label">
|
||||
{{ showFlow() }}
|
||||
{{ showDel() }}
|
||||
{{ formData.copy_user }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
@ -34,13 +32,11 @@
|
||||
<div class="steps-cls">
|
||||
<el-steps direction="vertical" :active="formData.record.length" :align-center="true" :space="50"
|
||||
style="margin-top: 20px">
|
||||
<el-step :title="item.check_time + ' ' + item.title" v-for="(item, index) in formData.record"
|
||||
:key="index" />
|
||||
<el-step :title="item.check_time + ' ' + item.title"
|
||||
v-for="(item, index) in formData.record" :key="index" />
|
||||
</el-steps>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<div>
|
||||
<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">
|
||||
|
@ -31,18 +31,18 @@
|
||||
<el-input v-model="formData.person" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
<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 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" />
|
||||
</el-form-item>
|
||||
<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" />
|
||||
</el-form-item>
|
||||
<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" />
|
||||
</el-form-item>
|
||||
<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="project_money" 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="fund_sources_text" show-overflow-tooltip />
|
||||
<el-table-column label="建设区域" prop="const_area_text" show-overflow-tooltip />
|
||||
@ -86,12 +91,12 @@
|
||||
</el-button>
|
||||
<el-button v-perms="['cost_project.cost_approved_project/edit']" type='warning' link>
|
||||
<router-link :to="{
|
||||
path: '/cost_consultation/cost_consultation_project/cost_project',
|
||||
query: {
|
||||
contractId: row.id,
|
||||
contractName: row.contract_name
|
||||
}
|
||||
}">
|
||||
path: '/cost_consultation/cost_consultation_project/cost_project',
|
||||
query: {
|
||||
contractId: row.id,
|
||||
contractName: row.contract_name
|
||||
}
|
||||
}">
|
||||
生成项目
|
||||
</router-link>
|
||||
</el-button>
|
||||
@ -180,4 +185,3 @@ const handleCreation = async (id: number | any[]) => {
|
||||
}
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -273,7 +273,7 @@ const formData = reactive({
|
||||
generalize: '',
|
||||
note: '',
|
||||
remark: '',
|
||||
annex: '',
|
||||
annex: [],
|
||||
})
|
||||
//获取所有组织
|
||||
const getlist = () => {
|
||||
@ -385,17 +385,11 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData.province = Number(formData.province)
|
||||
formData.city = Number(formData.city)
|
||||
formData.depar = Number(formData.depar)
|
||||
formData.contract_name = data.contract.contract_name
|
||||
getCityList();
|
||||
deptrmt(formData.org_id)
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiCostProjectDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
@ -453,6 +447,5 @@ getProvinceList();
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -43,7 +43,7 @@
|
||||
<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="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>
|
||||
<template #default="{ row }">
|
||||
<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="endtime" 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="person" show-overflow-tooltip />
|
||||
<el-table-column label="项目总投资(万元)" prop="invest" show-overflow-tooltip />
|
||||
|
@ -31,7 +31,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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-col>
|
||||
<el-col :span="8">
|
||||
@ -185,6 +185,7 @@ const customEvent = (e: any) => {
|
||||
formData.project_id = e.id
|
||||
formData.project_name = e.project_name
|
||||
formData.project_num = e.project_num
|
||||
formData.wt_unit = e.aunit
|
||||
showDialog.value = false
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
<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-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="请输入项目编号" />
|
||||
@ -88,7 +88,7 @@ const showEdit = ref(false)
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
datas: '',
|
||||
})
|
||||
@ -135,4 +135,3 @@ const handleDelete = async (id: number | any[]) => {
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -62,6 +62,12 @@ import Popup from '@/components/popup/index.vue'
|
||||
import { apiManageInfoReportAdd, apiManageInfoReportEdit, apiManageInfoReportDetail } from '@/api/manage_info_report'
|
||||
import { manage_project } from "@/components/dialogTable/dialogTableConfig"
|
||||
import type { PropType } from 'vue'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import useUserStore from "@/stores/modules/user";
|
||||
const userStore = useUserStore().userInfo;
|
||||
|
||||
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -75,7 +81,6 @@ const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑项目管理--项目信息上报' : '新增项目管理--项目信息上报'
|
||||
@ -96,7 +101,6 @@ const formData = reactive({
|
||||
id: '',
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
create_time: "",
|
||||
abstract: '',
|
||||
happen_date: '',
|
||||
severity: '',
|
||||
@ -105,7 +109,8 @@ const formData = reactive({
|
||||
opinions: '',
|
||||
giver: '',
|
||||
annex: [],
|
||||
create_user: '',
|
||||
create_user: userStore.account,
|
||||
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||
})
|
||||
|
||||
const customEvent = (e: any) => {
|
||||
@ -115,6 +120,11 @@ const customEvent = (e: any) => {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// (function () {
|
||||
// console.log('这是一个立即执行函数!');
|
||||
// })();
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
project_id: [{
|
||||
|
@ -43,6 +43,11 @@ import Popup from '@/components/popup/index.vue'
|
||||
import { apiManageMeteredPaymentAdd, apiManageMeteredPaymentEdit, apiManageMeteredPaymentDetail } from '@/api/manage_metered_payment'
|
||||
import { manage_project } from "@/components/dialogTable/dialogTableConfig"
|
||||
import type { PropType } from 'vue'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import useUserStore from "@/stores/modules/user";
|
||||
const userStore = useUserStore().userInfo;
|
||||
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -70,8 +75,8 @@ const formData = reactive({
|
||||
month_amount: '',
|
||||
month_pay: '',
|
||||
remark: '',
|
||||
create_user: '',
|
||||
create_time: "",
|
||||
create_user: userStore.account,
|
||||
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||
})
|
||||
|
||||
const customEvent = (e: any) => {
|
||||
|
@ -188,8 +188,15 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiManageProjectAdd, apiManageProjectEdit, apiManageProjectDetail } from '@/api/manage_project'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
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({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -245,8 +252,8 @@ const formData = reactive({
|
||||
contract: '',
|
||||
part_a_unit: '',
|
||||
annex: [],
|
||||
create_user: '',
|
||||
create_time: "",
|
||||
create_user: userStore.account,
|
||||
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
|
||||
})
|
||||
|
||||
|
||||
|
@ -3,25 +3,37 @@
|
||||
<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-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-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="project">
|
||||
<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 placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记人" prop="djr">
|
||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="登记日期" prop="djrq">
|
||||
<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-form-item label="项目名称" prop="project">
|
||||
<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="project_num">
|
||||
<el-input v-model="formData.project_num" clearable placeholder="请输入项目编号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记人" prop="djr">
|
||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记日期" prop="djrq">
|
||||
<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%">
|
||||
<dialogTable :config="cost_project" @customEvent="customEvent">
|
||||
</dialogTable>
|
||||
@ -35,7 +47,7 @@
|
||||
<el-table :data="formData.project_change_visa_content">
|
||||
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||
<template #default="{ row }">
|
||||
<el-button @click="handleAdd(row)">+</el-button>
|
||||
<el-button @click="handleAdd()">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<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-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="请输入项目编号" />
|
||||
@ -21,14 +21,15 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<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>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['project_process_management.project_change_visa/delete']" :disabled="!selectData.length"
|
||||
@click="handleDelete(selectData)">
|
||||
<el-button v-perms="['project_process_management.project_change_visa/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button>
|
||||
<div class="mt-4">
|
||||
@ -61,8 +62,8 @@
|
||||
<el-table-column label="登记日期" prop="djrq" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['project_process_management.project_change_visa/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
<el-button v-perms="['project_process_management.project_change_visa/edit']" type="primary"
|
||||
link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['project_process_management.project_change_visa/delete']" type="danger"
|
||||
@ -97,7 +98,7 @@ const showEdit = ref(false)
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
})
|
||||
|
||||
@ -143,4 +144,3 @@ const handleDelete = async (id: number | any[]) => {
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -27,13 +27,12 @@
|
||||
<el-input class="w-[280px]" v-model="queryParams.reviewer" clearable placeholder="请输入审核人" />
|
||||
</el-form-item>
|
||||
<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 label="咨询单位测算值" prop="calculated_value">
|
||||
<el-input class="w-[280px]" v-model="queryParams.calculated_value" clearable placeholder="请输入咨询单位测算值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input class="w-[280px]" v-model="queryParams.remark" clearable placeholder="请输入备注" />
|
||||
<el-input class="w-[280px]" v-model="queryParams.calculated_value" clearable
|
||||
placeholder="请输入咨询单位测算值" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
@ -45,13 +44,13 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
<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">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
新增
|
||||
</el-button> -->
|
||||
<el-button v-perms="['project_process_management.project_change_visa_content/delete']"
|
||||
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
@ -163,4 +162,3 @@ const handleDelete = async (id: number | any[]) => {
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
<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-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="请输入项目编号" />
|
||||
@ -80,7 +80,8 @@
|
||||
<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_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 v-perms="['project_commission/delete']" type="danger" link
|
||||
@ -115,7 +116,7 @@ const showEdit = ref(false)
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
})
|
||||
|
||||
@ -161,4 +162,3 @@ const handleDelete = async (id: number | any[]) => {
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -1,57 +1,55 @@
|
||||
<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="120px" :rules="formRules">
|
||||
<!-- <el-form-item label="主表标识" prop="project_commission_dataid">
|
||||
<el-input v-model="formData.project_commission_dataid" clearable placeholder="请输入主表标识" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" @click="userclick" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="工程师id" prop="engineer_id">
|
||||
<el-input v-model="formData.engineer_id" clearable placeholder="请输入工程师id" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="任务名称" prop="task_name">
|
||||
<el-input v-model="formData.task_name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务类型" prop="task_type">
|
||||
<el-select class="flex-1" v-model="formData.task_type" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="专业类型" prop="professional_type">
|
||||
<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" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="造价金额" prop="zj_amount">
|
||||
<el-input v-model="formData.zj_amount" clearable placeholder="请输入造价金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="收款金额" prop="sk_amount">
|
||||
<el-input v-model="formData.sk_amount" clearable placeholder="请输入收款金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="提成比例(%)" prop="tc_rate">
|
||||
<el-input v-model="formData.tc_rate" clearable placeholder="请输入提成比例(%)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应提成金额" prop="tc_amount">
|
||||
<el-input v-model="formData.tc_amount" clearable placeholder="请输入应提成金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="本次支付金额" prop="pay_amount">
|
||||
<el-input v-model="formData.pay_amount" 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="other_fee">
|
||||
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他增减费用" />
|
||||
</el-form-item>
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
<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="120px" :rules="formRules">
|
||||
<el-form-item label="工程师" prop="engineer">
|
||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" @click="userclick" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="任务名称" prop="task_name">
|
||||
<el-input v-model="formData.task_name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务类型" prop="task_type">
|
||||
<el-select class="flex-1" v-model="formData.task_type" clearable placeholder="请选择任务类型">
|
||||
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="专业类型" prop="professional_type">
|
||||
<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"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="造价金额" prop="zj_amount">
|
||||
<el-input v-model="formData.zj_amount" clearable placeholder="请输入造价金额" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="收款金额" prop="sk_amount">
|
||||
<el-input v-model="formData.sk_amount" clearable placeholder="请输入收款金额" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="提成比例(%)" prop="tc_rate">
|
||||
<el-input v-model="formData.tc_rate" clearable placeholder="请输入提成比例(%)" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应提成金额" prop="tc_amount">
|
||||
<el-input v-model="formData.tc_amount" clearable placeholder="请输入应提成金额" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="本次支付金额" prop="pay_amount">
|
||||
<el-input v-model="formData.pay_amount" clearable placeholder="请输入本次支付金额" type="number" />
|
||||
</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="other_fee">
|
||||
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他增减费用" />
|
||||
</el-form-item>
|
||||
<div v-if="showDialog3">
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||
</personnelselector>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="projectCommissionDetailEdit">
|
||||
@ -61,10 +59,10 @@ import { apiProjectCommissionDetailAdd, apiProjectCommissionDetailEdit, } from '
|
||||
import { timeFormat } from '@/utils/util'
|
||||
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'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
@ -76,40 +74,40 @@ const personnel = ref<any>()
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑提成明细' : '新增提成明细'
|
||||
return mode.value == 'edit' ? '编辑提成明细' : '新增提成明细'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
project_commission_dataid: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
task_name: '',
|
||||
task_type: '',
|
||||
professional_type: '',
|
||||
zj_amount: '',
|
||||
sk_amount: '',
|
||||
tc_rate: '',
|
||||
tc_amount: '',
|
||||
pay_amount: '',
|
||||
remark: '',
|
||||
other_fee: '',
|
||||
id: '',
|
||||
project_commission_dataid: '',
|
||||
engineer: '',
|
||||
engineer_id: '',
|
||||
task_name: '',
|
||||
task_type: '',
|
||||
professional_type: '',
|
||||
zj_amount: '',
|
||||
sk_amount: '',
|
||||
tc_rate: '',
|
||||
tc_amount: '',
|
||||
pay_amount: '',
|
||||
remark: '',
|
||||
other_fee: '',
|
||||
|
||||
})
|
||||
|
||||
//打开弹窗
|
||||
const userclick = async (e: any) => {
|
||||
showDialog3.value = true
|
||||
await nextTick()
|
||||
personnel.value.open()
|
||||
showDialog3.value = true
|
||||
await nextTick()
|
||||
personnel.value.open()
|
||||
}
|
||||
|
||||
//确认
|
||||
const submituser = (e: any) => {
|
||||
formData.engineer = e.name
|
||||
formData.engineer_id = e.id
|
||||
showDialog3.value = false
|
||||
formData.engineer = e.name
|
||||
formData.engineer_id = e.id
|
||||
showDialog3.value = false
|
||||
}
|
||||
|
||||
// 表单验证
|
||||
@ -120,51 +118,51 @@ 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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiProjectCommissionDetailDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiProjectCommissionDetailDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiProjectCommissionDetailEdit(data)
|
||||
: await apiProjectCommissionDetailAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiProjectCommissionDetailEdit(data)
|
||||
: await apiProjectCommissionDetailAdd(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>
|
||||
|
@ -24,13 +24,13 @@
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<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-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登记日期" prop="djrq">
|
||||
<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-form-item>
|
||||
</el-col>
|
||||
@ -205,6 +205,13 @@ import Popup from '@/components/popup/index.vue'
|
||||
import { apiProjectProgressPaymentAdd, apiProjectProgressPaymentEdit, apiProjectProgressPaymentDetail } from '@/api/project_progress_payment'
|
||||
import type { PropType } from 'vue'
|
||||
import { cost_project } from "@/components/dialogTable/dialogTableConfig"
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import useUserStore from "@/stores/modules/user";
|
||||
const userStore = useUserStore().userInfo;
|
||||
|
||||
|
||||
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -238,8 +245,8 @@ const formData = reactive({
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: '',
|
||||
djr: '',
|
||||
djrq: '',
|
||||
djr: userStore.account,
|
||||
djrq: timeFormat('', 'yyyy-mm-dd'),
|
||||
sbhj: '',
|
||||
shhj: '',
|
||||
ljhj: '',
|
||||
@ -276,12 +283,19 @@ 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 = jdsbzj_xiaoji - jdshzj_xiaoji
|
||||
item.ljwc_funds
|
||||
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 += item.jdsbzj_xiaoji
|
||||
formData.shhj += item.jdshzj_xiaoji
|
||||
formData.ljhj += item.current_payable_funds
|
||||
})
|
||||
},
|
||||
{
|
||||
|
@ -42,13 +42,13 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<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 label="核实结果" prop="result">
|
||||
<el-input v-model="formData.result" clearable placeholder="请输入核实结果" />
|
||||
</el-form-item>
|
||||
<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 label="附件">
|
||||
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||
|
@ -6,7 +6,7 @@
|
||||
<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-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="请输入项目编号" />
|
||||
@ -51,8 +51,8 @@
|
||||
<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 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']"
|
||||
@ -87,7 +87,7 @@ const showEdit = ref(false)
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
num: '',
|
||||
project: '',
|
||||
project_name: '',
|
||||
project_num: '',
|
||||
})
|
||||
|
||||
@ -133,4 +133,3 @@ const handleDelete = async (id: number | any[]) => {
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -1,13 +1,14 @@
|
||||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<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-row>
|
||||
<el-col :span="8">
|
||||
<el-col>
|
||||
<el-form-item label="项目类型" prop="contract_no">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入项目类型" />
|
||||
</el-form-item> </el-col>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
@ -20,10 +21,7 @@
|
||||
<script lang="ts" setup name="procurementContractEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
|
||||
import { apiProjecttypeAdd, apiProjecttypeEdit, apiProjecttypDetail } from '@/api/projecttype'
|
||||
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
@ -35,10 +33,6 @@ const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
// const showDialog = ref(false)
|
||||
// const showDialog1 = ref(false)
|
||||
// const project_name = ref('')
|
||||
// const project_code = ref('')
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
|
@ -3,47 +3,60 @@
|
||||
<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-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="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="project_num">
|
||||
<el-input v-model="formData.project_num" clearable readonly />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目负责人" prop="head">
|
||||
<el-input v-model="formData.head" clearable placeholder="请输入项目负责人" />
|
||||
</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%">
|
||||
<dialogTable :config="cost_project" :query="{ task_allocation: 1 }" @customEvent="customEvent">
|
||||
</dialogTable>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showDialog1" title="选择任务" width="70%">
|
||||
<task_type @customEvent="customEvent1"></task_type>
|
||||
<dialogTable :config="task_type" @customEvent="customEvent1">
|
||||
</dialogTable>
|
||||
</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="handleAdd()">+</el-button>
|
||||
<el-button @click="handleDelete(row)">-</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -193,8 +206,14 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
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 { timeFormat } from '@/utils/util'
|
||||
import useUserStore from "@/stores/modules/user";
|
||||
const userStore = useUserStore().userInfo;
|
||||
|
||||
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -232,8 +251,8 @@ const formData = reactive({
|
||||
project_id: '',
|
||||
project_name: "",
|
||||
project_num: '',
|
||||
head: '',
|
||||
apptime: '',
|
||||
head: userStore.account,
|
||||
apptime: timeFormat('', 'yyyy-mm-dd'),
|
||||
annex: [],
|
||||
task_detail: [{
|
||||
task_name: '',
|
||||
@ -352,7 +371,7 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
}
|
||||
formData.project_name = formData.projectInfo?.project_name || ""
|
||||
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 || ""
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<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-row>
|
||||
@ -19,7 +20,8 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<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-item>
|
||||
@ -10,21 +10,11 @@
|
||||
:page-size="pager.size" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-card> -->
|
||||
<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">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<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="process" show-overflow-tooltip />
|
||||
<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>
|
||||
<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>
|
||||
</template>
|
||||
@ -133,4 +124,3 @@ const handleDelete = async (id: number | any[]) => {
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<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
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
@ -49,7 +49,6 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||
:value="parseInt(item.value)" />
|
||||
@ -99,7 +98,6 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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"
|
||||
class="!flex flex-1" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
@ -139,7 +137,6 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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-option v-for="(item, index) in dictData.preparation_requirements " :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
@ -150,7 +147,6 @@
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<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-option v-for="(item, index) in dictData.cost_sentence " :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
@ -159,7 +155,6 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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-option v-for="(item, index) in dictData.material_compensation " :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
@ -209,7 +204,6 @@
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<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"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
@ -217,7 +211,6 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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"
|
||||
class="!flex flex-1" placeholder="请选择日期">
|
||||
</el-date-picker>
|
||||
@ -417,13 +410,11 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData.project_name = formData.projectInfo?.project_name
|
||||
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({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
||||
|
@ -1,40 +1,40 @@
|
||||
<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="标识" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属项目" prop="cost_project_id">
|
||||
<el-select v-model="formData.cost_project_id" remote filterable :remote-method="queryCostProject"
|
||||
:loading="loading" class="flex-1">
|
||||
<el-option v-for="(item, index) in optionsData.projectList" :key="index" :label="item.projectinfo"
|
||||
:value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="请输入任务编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上级类别" prop="superior_sort">
|
||||
<!-- <el-input 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"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务级次" prop="level">
|
||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remarks">
|
||||
<el-input v-model="formData.remarks" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<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="标识" prop="dataid">
|
||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属项目" prop="cost_project_id">
|
||||
<el-select v-model="formData.cost_project_id" remote filterable :remote-method="queryCostProject"
|
||||
:loading="loading" class="flex-1">
|
||||
<el-option v-for="(item, index) in optionsData.projectList" :key="index"
|
||||
:label="item.projectinfo" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务编号" prop="num">
|
||||
<el-input v-model="formData.num" clearable placeholder="请输入任务编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="name">
|
||||
<el-input v-model="formData.name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上级类别" prop="superior_sort">
|
||||
<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"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务级次" prop="level">
|
||||
<el-input v-model="formData.level" clearable placeholder="请输入任务级次" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remarks">
|
||||
<el-input v-model="formData.remarks" clearable placeholder="请输入备注" type="textarea" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="taskTypeEdit">
|
||||
@ -45,10 +45,10 @@ import { useDictOptions } from "@/hooks/useDictOptions"
|
||||
import type { PropType } from 'vue'
|
||||
import { apiCostProjectDatas } from "@/api/cost_project";
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
@ -58,19 +58,19 @@ const mode = ref('add')
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑任务类型' : '新增任务类型'
|
||||
return mode.value == 'edit' ? '编辑任务类型' : '新增任务类型'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dataid: '',
|
||||
cost_project_id: '',
|
||||
num: '',
|
||||
name: '',
|
||||
superior_sort: '',
|
||||
level: '',
|
||||
remarks: '',
|
||||
id: '',
|
||||
dataid: '',
|
||||
cost_project_id: '',
|
||||
num: '',
|
||||
name: '',
|
||||
superior_sort: '',
|
||||
level: '',
|
||||
remarks: '',
|
||||
|
||||
})
|
||||
|
||||
@ -82,73 +82,73 @@ const formRules = reactive<any>({
|
||||
|
||||
|
||||
const { optionsData } = useDictOptions<{
|
||||
projectList: any[]
|
||||
projectList: any[]
|
||||
}>({
|
||||
projectList: {
|
||||
api: apiCostProjectDatas,
|
||||
}
|
||||
projectList: {
|
||||
api: apiCostProjectDatas,
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
const loading = ref(false)
|
||||
|
||||
const queryCostProject = async (query: string) => {
|
||||
loading.value = true
|
||||
const projectList = await apiCostProjectDatas({
|
||||
name: query ?? ''
|
||||
})
|
||||
optionsData.projectList = projectList
|
||||
loading.value = false
|
||||
loading.value = true
|
||||
const projectList = await apiCostProjectDatas({
|
||||
name: query ?? ''
|
||||
})
|
||||
optionsData.projectList = projectList
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
|
||||
// 获取详情
|
||||
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.superior_sort = Number(formData.superior_sort)
|
||||
formData.superior_sort = Number(formData.superior_sort)
|
||||
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiTaskTypeDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
const data = await apiTaskTypeDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskTypeEdit(data)
|
||||
: await apiTaskTypeAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
? await apiTaskTypeEdit(data)
|
||||
: await apiTaskTypeAdd(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>
|
||||
|
@ -1,71 +1,79 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="所属项目" prop="cost_project_id">
|
||||
<el-select v-model="queryParams.cost_project_id" remote filterable :remote-method="queryCostProject"
|
||||
:loading="loading" class="flex-1">
|
||||
<el-option v-for="(item, index) in optionsData.projectList" :key="index" :label="item.projectinfo"
|
||||
:value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="unit_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上级类别" prop="qualification_grade">
|
||||
<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"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<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="apiTaskTypeLists" :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.task_type/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['task.task_type/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="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)">
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="所属项目" prop="cost_project_id">
|
||||
<el-select v-model="queryParams.cost_project_id" remote filterable :remote-method="queryCostProject"
|
||||
:loading="loading" class="flex-1">
|
||||
<el-option v-for="(item, index) in optionsData.projectList" :key="index"
|
||||
:label="item.projectinfo" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务名称" prop="unit_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上级类别" prop="qualification_grade">
|
||||
<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"
|
||||
:value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<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="apiTaskTypeLists" :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.task_type/add']" type="primary" @click="handleAdd">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button v-perms="['task.task_type/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="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>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.superior_category" :value="row.superior_sort" />
|
||||
</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>
|
||||
|
||||
<script lang="ts" setup name="taskTypeLists">
|
||||
@ -83,42 +91,42 @@ const showEdit = ref(false)
|
||||
const loading = ref(false)
|
||||
|
||||
const queryCostProject = async (query: string) => {
|
||||
loading.value = true
|
||||
const projectList = await apiCostProjectDatas({
|
||||
name: query ?? ''
|
||||
})
|
||||
optionsData.projectList = projectList
|
||||
loading.value = false
|
||||
loading.value = true
|
||||
const projectList = await apiCostProjectDatas({
|
||||
name: query ?? ''
|
||||
})
|
||||
optionsData.projectList = projectList
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
|
||||
const { optionsData } = useDictOptions<{
|
||||
projectList: any[]
|
||||
projectList: any[]
|
||||
}>({
|
||||
projectList: {
|
||||
api: apiCostProjectDatas,
|
||||
}
|
||||
projectList: {
|
||||
api: apiCostProjectDatas,
|
||||
}
|
||||
})
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
name: "",
|
||||
superior_sort: "",
|
||||
cost_project_id: "",
|
||||
start_time: "",
|
||||
end_time: ""
|
||||
name: "",
|
||||
superior_sort: "",
|
||||
cost_project_id: "",
|
||||
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]
|
||||
}
|
||||
// 选中数据
|
||||
const selectData = ref<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({
|
||||
fetchFun: apiTaskTypeLists,
|
||||
params: queryParams
|
||||
fetchFun: apiTaskTypeLists,
|
||||
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) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiTaskTypeDelete({ id })
|
||||
getLists()
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiTaskTypeDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user