下班
This commit is contained in:
parent
97a3bd2a8a
commit
e8d26abd09
@ -1,4 +1,4 @@
|
|||||||
NODE_ENV = 'development'
|
NODE_ENV = 'development'
|
||||||
|
|
||||||
VITE_APP_BASE_URL = 'https://ceshi-engineering.lihaink.cn/'
|
VITE_APP_BASE_URL = 'https://ceshi-engineering.lihaink.cn/'
|
||||||
# VITE_APP_BASE_URL = 'http://192.168.1.11:9090/'
|
# VITE_APP_BASE_URL = 'http://192.168.1.12:9090/'
|
@ -1,146 +1,185 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||||
ref="popupRef"
|
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
:title="popupTitle"
|
<el-row>
|
||||||
:async="true"
|
<el-col :span="8">
|
||||||
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="num">
|
<el-form-item label="申请编号" prop="num">
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入申请编号" />
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="盖章申请类型" prop="types">
|
<el-form-item label="盖章申请类型" prop="types">
|
||||||
<el-select class="flex-1" v-model="formData.types" clearable placeholder="请选择盖章申请类型">
|
<el-select class="flex-1" v-model="formData.types" clearable placeholder="请选择盖章申请类型">
|
||||||
<el-option
|
<el-option v-for="(item, index) in dictData.apply_with_seal_type" :key="index"
|
||||||
v-for="(item, index) in dictData.apply_with_seal_type"
|
:label="item.name" :value="item.value" />
|
||||||
:key="index"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="文件类型" prop="filetype">
|
<el-form-item label="文件类型" prop="filetype">
|
||||||
<el-select class="flex-1" v-model="formData.filetype" clearable placeholder="请选择文件类型">
|
<el-select class="flex-1" v-model="formData.filetype" clearable placeholder="请选择文件类型">
|
||||||
<el-option
|
<el-option v-for="(item, index) in dictData.apply_with_seal_file_type" :key="index"
|
||||||
v-for="(item, index) in dictData.apply_with_seal_file_type"
|
:label="item.name" :value="item.value" />
|
||||||
:key="index"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="骑缝盖章" prop="ridingseam">
|
<el-form-item label="骑缝盖章" prop="ridingseam">
|
||||||
<el-radio-group v-model="formData.ridingseam" placeholder="请选择骑缝盖章">
|
<el-radio-group v-model="formData.ridingseam" placeholder="请选择骑缝盖章">
|
||||||
<el-radio
|
<el-radio v-for="(item, index) in dictData.isqfgz" :key="index" :label="item.value">
|
||||||
v-for="(item, index) in dictData.isqfgz"
|
|
||||||
:key="index"
|
|
||||||
:label="item.value"
|
|
||||||
>
|
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="印章名称" prop="name">
|
<el-form-item label="印章名称" prop="name">
|
||||||
<el-input v-model="formData.name" clearable placeholder="请输入印章名称" />
|
<el-input v-model="formData.name" clearable placeholder="请输入印章名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="盖章次数" prop="frequency">
|
<el-form-item label="盖章次数" prop="frequency">
|
||||||
<el-input v-model="formData.frequency" clearable placeholder="请输入盖章次数" />
|
<el-input v-model="formData.frequency" clearable placeholder="请输入盖章次数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="限制次数" prop="limit">
|
<el-form-item label="限制次数" prop="limit">
|
||||||
<el-input v-model="formData.limit" clearable placeholder="请输入限制次数" />
|
<el-input v-model="formData.limit" clearable placeholder="请输入限制次数" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用印部门" prop="depar">
|
</el-col>
|
||||||
<el-input v-model="formData.depar" clearable placeholder="请输入用印部门" />
|
<el-col :span="8">
|
||||||
|
<el-form-item label="组织" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||||
|
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织"
|
||||||
|
@change="deptrmt">
|
||||||
|
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
|
||||||
|
:value="item.id" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="盖章人" prop="stampman">
|
</el-col>
|
||||||
<el-input v-model="formData.stampman" clearable placeholder="请输入盖章人" />
|
<el-col :span="8">
|
||||||
|
<el-form-item label="用印部门" prop="depar"
|
||||||
|
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" label-width="100px">
|
||||||
|
<el-select class="flex-1" v-model="formData.depar" clearable placeholder="用印部门">
|
||||||
|
<el-option v-for="(item, index) in list2" :key="index" :label="item.name"
|
||||||
|
:value="item.id" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关联项目" prop="project">
|
</el-col>
|
||||||
<el-input v-model="formData.project" clearable placeholder="请输入关联项目" />
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="关联项目" prop="project_name">
|
||||||
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="项目负责人" prop="principal">
|
<el-form-item label="项目负责人" prop="principal">
|
||||||
<el-input v-model="formData.principal" clearable placeholder="请输入项目负责人" />
|
<el-input v-model="formData.principal" clearable placeholder="请输入项目负责人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<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="请输入盖章内容" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="印章是否外借" prop="loan">
|
<el-form-item label="印章是否外借" prop="loan">
|
||||||
<el-input v-model="formData.loan" clearable placeholder="请输入印章是否外借" />
|
<el-radio-group v-model="formData.loan" placeholder="请选择骑缝盖章">
|
||||||
|
<el-radio :label="1">
|
||||||
|
是
|
||||||
|
</el-radio>
|
||||||
|
<el-radio :label="0">
|
||||||
|
否
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="印章借用日期" prop="borrow">
|
<el-form-item label="印章借用日期" prop="borrow">
|
||||||
<el-date-picker
|
<el-date-picker class="flex-1 !flex" v-model="formData.borrow" clearable type="datetime"
|
||||||
class="flex-1 !flex"
|
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择印章借用日期">
|
||||||
v-model="formData.borrow"
|
|
||||||
clearable
|
|
||||||
type="datetime"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
|
||||||
placeholder="选择印章借用日期">
|
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="结束借用日期" prop="returndate">
|
<el-form-item label="结束借用日期" prop="returndate">
|
||||||
<el-date-picker
|
<el-date-picker class="flex-1 !flex" v-model="formData.returndate" clearable type="datetime"
|
||||||
class="flex-1 !flex"
|
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择结束借用日期">
|
||||||
v-model="formData.returndate"
|
|
||||||
clearable
|
|
||||||
type="datetime"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
|
||||||
placeholder="选择结束借用日期">
|
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="申请人" prop="applicant">
|
<el-form-item label="申请人" prop="applicant">
|
||||||
<el-input v-model="formData.applicant" clearable placeholder="请输入申请人" />
|
<el-input v-model="formData.applicant" clearable placeholder="请输入申请人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="申请日期" prop="date">
|
<el-form-item label="申请日期" prop="date">
|
||||||
<el-date-picker
|
<el-date-picker class="flex-1 !flex" v-model="formData.date" clearable type="datetime"
|
||||||
class="flex-1 !flex"
|
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
|
||||||
v-model="formData.date"
|
|
||||||
clearable
|
|
||||||
type="datetime"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
|
||||||
placeholder="选择申请日期">
|
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="盖章人" prop="stampman">
|
||||||
|
<el-input v-model="formData.stampman" clearable placeholder="请输入盖章人"
|
||||||
|
@click="userclick('stampman')" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="实际借章日期" prop="sjborrow">
|
<el-form-item label="实际借章日期" prop="sjborrow">
|
||||||
<el-date-picker
|
<el-date-picker class="flex-1 !flex" v-model="formData.sjborrow" clearable type="datetime"
|
||||||
class="flex-1 !flex"
|
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择实际借章日期">
|
||||||
v-model="formData.sjborrow"
|
|
||||||
clearable
|
|
||||||
type="datetime"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
|
||||||
placeholder="选择实际借章日期">
|
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="实际借章人" prop="sjborrower">
|
<el-form-item label="实际借章人" prop="sjborrower">
|
||||||
<el-input v-model="formData.sjborrower" clearable placeholder="请输入实际借章人" />
|
<el-input v-model="formData.sjborrower" clearable placeholder="请输入实际借章人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="实际归还日期" prop="sjreturn">
|
<el-form-item label="实际归还日期" prop="sjreturn">
|
||||||
<el-date-picker
|
<el-date-picker class="flex-1 !flex" v-model="formData.sjreturn" clearable type="datetime"
|
||||||
class="flex-1 !flex"
|
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择实际归还日期">
|
||||||
v-model="formData.sjreturn"
|
|
||||||
clearable
|
|
||||||
type="datetime"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
|
||||||
placeholder="选择实际归还日期">
|
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="实际归还人" prop="returnee">
|
<el-form-item label="实际归还人" prop="returnee">
|
||||||
<el-input v-model="formData.returnee" clearable placeholder="请输入实际归还人" />
|
<el-input v-model="formData.returnee" clearable placeholder="请输入实际归还人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="附件" prop="annex">
|
<el-form-item label="附件" prop="annex">
|
||||||
<material-picker v-model="formData.annex" />
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@delFile="delFileFn" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
|
</el-dialog>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -150,7 +189,8 @@
|
|||||||
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 { apiApplyWithSealAdd, apiApplyWithSealEdit, apiApplyWithSealDetail } from '@/api/apply_with_seal'
|
import { apiApplyWithSealAdd, apiApplyWithSealEdit, apiApplyWithSealDetail } from '@/api/apply_with_seal'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { deptAll } from '@/api/org/department'
|
||||||
|
import { getAll } from '@/api/org/organization'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
@ -162,7 +202,11 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
const list1 = reactive([])
|
||||||
|
const list2 = reactive([])
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
@ -180,9 +224,11 @@ const formData = reactive({
|
|||||||
name: '',
|
name: '',
|
||||||
frequency: '',
|
frequency: '',
|
||||||
limit: '',
|
limit: '',
|
||||||
|
org_id: "",
|
||||||
depar: '',
|
depar: '',
|
||||||
stampman: '',
|
stampman: '',
|
||||||
project: '',
|
project: '',
|
||||||
|
project_name: '',
|
||||||
principal: '',
|
principal: '',
|
||||||
content: '',
|
content: '',
|
||||||
loan: '',
|
loan: '',
|
||||||
@ -194,16 +240,45 @@ const formData = reactive({
|
|||||||
sjborrower: '',
|
sjborrower: '',
|
||||||
sjreturn: '',
|
sjreturn: '',
|
||||||
returnee: '',
|
returnee: '',
|
||||||
annex: '',
|
annex: [],
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const customEvent = (e: any) => {
|
||||||
|
formData.project = e.id
|
||||||
|
formData.project_name = e.project_name
|
||||||
|
formData.principal = e.principal
|
||||||
|
showDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableKey = ref('')
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async (key) => {
|
||||||
|
tableKey.value = key
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
|
||||||
|
}
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData[tableKey.value] = e.name
|
||||||
|
// formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
|
||||||
})
|
})
|
||||||
|
const handleAvatarSuccess_four = (response: any) => {
|
||||||
|
Array.isArray(formData.annex) ? '' : formData.annex = []
|
||||||
|
// @ts-ignore
|
||||||
|
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除上传的文件
|
||||||
|
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
@ -216,7 +291,25 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//获取所有组织
|
||||||
|
const getlist = () => {
|
||||||
|
getAll().then((res) => {
|
||||||
|
Object.assign(list1, res)
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//获取部门
|
||||||
|
const deptrmt = (e: any) => {
|
||||||
|
formData.depar = ''
|
||||||
|
getlist1(e)
|
||||||
|
|
||||||
|
}
|
||||||
|
//获取所有部门
|
||||||
|
const getlist1 = (id: any) => {
|
||||||
|
deptAll({ 'org_id': id }).then((res) => {
|
||||||
|
list2.splice(0, list2.length, ...res)
|
||||||
|
})
|
||||||
|
}
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
const data = await apiApplyWithSealDetail({
|
const data = await apiApplyWithSealDetail({
|
||||||
id: row.id
|
id: row.id
|
||||||
@ -240,6 +333,8 @@ const handleSubmit = async () => {
|
|||||||
const open = (type = 'add') => {
|
const open = (type = 'add') => {
|
||||||
mode.value = type
|
mode.value = type
|
||||||
popupRef.value?.open()
|
popupRef.value?.open()
|
||||||
|
getlist()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭回调
|
// 关闭回调
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="申请编号" prop="num">
|
<el-form-item label="申请编号" prop="num">
|
||||||
<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>
|
||||||
@ -23,17 +19,13 @@
|
|||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.apply_with_seal/delete']" :disabled="!selectData.length"
|
||||||
v-perms="['project_process_management.apply_with_seal/delete']"
|
@click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="申请编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="申请编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="盖章申请类型" prop="types">
|
<el-table-column label="盖章申请类型" prop="types">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
@ -67,35 +59,21 @@
|
|||||||
<el-table-column label="实际借章人" prop="sjborrower" show-overflow-tooltip />
|
<el-table-column label="实际借章人" prop="sjborrower" show-overflow-tooltip />
|
||||||
<el-table-column label="实际归还日期" prop="sjreturn" show-overflow-tooltip />
|
<el-table-column label="实际归还日期" prop="sjreturn" show-overflow-tooltip />
|
||||||
<el-table-column label="实际归还人" prop="returnee" show-overflow-tooltip />
|
<el-table-column label="实际归还人" prop="returnee" show-overflow-tooltip />
|
||||||
<el-table-column label="附件" prop="annex">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-image style="width:50px;height:50px;" :src="row.annex" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.apply_with_seal/edit']" type="primary" link
|
||||||
v-perms="['project_process_management.apply_with_seal/edit']"
|
@click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.apply_with_seal/delete']" type="danger" link
|
||||||
v-perms="['project_process_management.apply_with_seal/delete']"
|
@click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -106,7 +84,7 @@
|
|||||||
<script lang="ts" setup name="applyWithSealLists">
|
<script lang="ts" setup name="applyWithSealLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiApplyWithSealLists, apiApplyWithSealDelete } from '@/api/apply_with_seal'
|
import { apiApplyWithSealLists, apiApplyWithSealDelete, apiApplyWithSealDetail } from '@/api/apply_with_seal'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -147,10 +125,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiApplyWithSealDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -83,8 +83,6 @@ import customDialog from '@/components/build_division/index.vue'
|
|||||||
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 { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings'
|
import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings'
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import { isEmail, isIdCard, isPhone } from '@/utils/validate'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
// 上传文件
|
// 上传文件
|
||||||
import annexUpload from "@/components/annexUpload/index.vue"
|
import annexUpload from "@/components/annexUpload/index.vue"
|
||||||
|
@ -1,69 +1,118 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||||
ref="popupRef"
|
<el-form ref="formRef" :model="formData" label-width="140px" :rules="formRules">
|
||||||
:title="popupTitle"
|
<el-row>
|
||||||
:async="true"
|
<el-col :span="8">
|
||||||
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="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<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-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
|
||||||
<el-form-item label="部门负责人" prop="bm_master">
|
<el-form-item label="部门负责人" prop="bm_master">
|
||||||
<el-input v-model="formData.bm_master" clearable placeholder="请输入部门负责人" />
|
<el-input v-model="formData.bm_master" clearable placeholder="请选择部门负责人" @click="userclick()" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<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="请输入委托单位" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="项目负责人" prop="xm_master">
|
<el-form-item label="项目负责人" prop="xm_master">
|
||||||
<el-input v-model="formData.xm_master" clearable placeholder="请输入项目负责人" />
|
<el-input v-model="formData.xm_master" clearable placeholder="请输入项目负责人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="实际开始日期" prop="start_date">
|
<el-form-item label="实际开始日期" prop="start_date">
|
||||||
<el-input v-model="formData.start_date" clearable placeholder="请输入实际开始日期" />
|
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="实际结束日期" prop="end_date">
|
<el-form-item label="实际结束日期" prop="end_date">
|
||||||
<el-input v-model="formData.end_date" clearable placeholder="请输入实际结束日期" />
|
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="工期(天)" prop="duration">
|
<el-form-item label="工期(天)" prop="duration">
|
||||||
<el-input v-model="formData.duration" clearable placeholder="请输入工期(天)" />
|
<el-input v-model="formData.duration" clearable placeholder="请输入工期(天)" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="工时" prop="working_hours">
|
<el-form-item label="工时" prop="working_hours">
|
||||||
<el-input v-model="formData.working_hours" clearable placeholder="请输入工时" />
|
<el-input v-model="formData.working_hours" clearable placeholder="请输入工时" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="累计已完成进度(%)" prop="done_progress">
|
</el-col>
|
||||||
<el-input v-model="formData.done_progress" clearable placeholder="请输入累计已完成进度(%)" />
|
<el-col :span="8">
|
||||||
|
<el-form-item label="累计已完成进度" prop="done_progress">
|
||||||
|
<el-input v-model="formData.done_progress" clearable placeholder="请输入累计已完成进度(%)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="本阶段完成进度(%)" prop="bjd_progress">
|
<el-form-item label="本阶段完成进度(%)" prop="bjd_progress">
|
||||||
<el-input v-model="formData.bjd_progress" clearable placeholder="请输入本阶段完成进度(%)" />
|
<el-input v-model="formData.bjd_progress" clearable placeholder="请输入本阶段完成进度(%)" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<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" clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<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 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>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="形象进度描述" prop="jdms">
|
<el-form-item label="形象进度描述" prop="jdms">
|
||||||
<el-input v-model="formData.jdms" clearable placeholder="请输入形象进度描述" />
|
<el-input v-model="formData.jdms" clearable placeholder="请输入形象进度描述" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="现场照片、视频、资料" prop="datas">
|
</el-col>
|
||||||
<material-picker v-model="formData.datas" />
|
</el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="附件" prop="datas">
|
||||||
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@delFile="delFileFn" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-form-item label="文本输入框" prop="fd_23">
|
<el-form-item label="文本输入框" prop="fd_23">
|
||||||
<el-input v-model="formData.fd_23" clearable placeholder="请输入文本输入框" />
|
<el-input v-model="formData.fd_23" clearable placeholder="请输入文本输入框" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
|
</el-dialog>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -72,7 +121,7 @@
|
|||||||
<script lang="ts" setup name="jianliProjectProgressReportEdit">
|
<script lang="ts" setup name="jianliProjectProgressReportEdit">
|
||||||
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 { apiJianliProjectProgressReportAdd, apiJianliProjectProgressReportEdit, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
|
import { apiJianliProjectProgressReportAdd, apiJianliProjectProgressReportEdit, } from '@/api/jianli_project_progress_report'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -85,8 +134,18 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
|
||||||
|
const handleAvatarSuccess_four = (response: any) => {
|
||||||
|
Array.isArray(formData.annex) ? '' : formData.annex = []
|
||||||
|
// @ts-ignore
|
||||||
|
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除上传的文件
|
||||||
|
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑项目进度汇报' : '新增项目进度汇报'
|
return mode.value == 'edit' ? '编辑项目进度汇报' : '新增项目进度汇报'
|
||||||
@ -97,7 +156,8 @@ const formData = reactive({
|
|||||||
id: '',
|
id: '',
|
||||||
dataid: '',
|
dataid: '',
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_id: '',
|
||||||
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
bm_master: '',
|
bm_master: '',
|
||||||
wt_unit: '',
|
wt_unit: '',
|
||||||
@ -113,9 +173,33 @@ const formData = reactive({
|
|||||||
jdms: '',
|
jdms: '',
|
||||||
datas: '',
|
datas: '',
|
||||||
fd_23: '',
|
fd_23: '',
|
||||||
|
annex: [],
|
||||||
|
projectInfo: {}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const customEvent = (e: any) => {
|
||||||
|
formData.project_id = e.id
|
||||||
|
formData.project_name = e.project_name
|
||||||
|
formData.project_num = e.project_num
|
||||||
|
showDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async () => {
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData['bm_master'] = e.name
|
||||||
|
// formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
@ -131,6 +215,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
formData.project_id = formData.projectInfo.id
|
||||||
|
formData.project_name = formData.projectInfo.project_name
|
||||||
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<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>
|
||||||
@ -23,26 +19,23 @@
|
|||||||
</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.jianli_project_progress_report/add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['project_process_management.jianli_project_progress_report/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
|
<el-button v-perms="['project_process_management.jianli_project_progress_report/delete']"
|
||||||
v-perms="['project_process_management.jianli_project_progress_report/delete']"
|
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="部门负责人" prop="bm_master" show-overflow-tooltip />
|
<el-table-column label="部门负责人" prop="bm_master" show-overflow-tooltip />
|
||||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||||
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
||||||
@ -55,30 +48,21 @@
|
|||||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||||
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
<el-table-column label="登记时间" prop="apptime" show-overflow-tooltip />
|
||||||
<el-table-column label="形象进度描述" prop="jdms" show-overflow-tooltip />
|
<el-table-column label="形象进度描述" prop="jdms" 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
|
<el-button v-perms="['project_process_management.jianli_project_progress_report/edit']"
|
||||||
v-perms="['project_process_management.jianli_project_progress_report/edit']"
|
type="primary" link @click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.jianli_project_progress_report/delete']"
|
||||||
v-perms="['project_process_management.jianli_project_progress_report/delete']"
|
type="danger" link @click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -89,7 +73,7 @@
|
|||||||
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
<script lang="ts" setup name="jianliProjectProgressReportLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete } from '@/api/jianli_project_progress_report'
|
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -133,10 +117,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiJianliProjectProgressReportDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -1,22 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||||
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 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="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</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="请输入项目编号" />
|
||||||
@ -25,9 +17,86 @@
|
|||||||
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
<el-input v-model="formData.djr" clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登记日期" prop="djrq">
|
<el-form-item label="登记日期" prop="djrq">
|
||||||
<el-input v-model="formData.djrq" clearable placeholder="请输入登记日期" />
|
<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>
|
||||||
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
|
</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.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="handleDelete(row)">-</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="所在目录" prop="level" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.directory" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="单位名称" prop="unit_name" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.unit_name" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="时间" prop="time" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-date-picker class="flex-1 !flex" v-model="row.time" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期" :disabled="mode != 'add'">
|
||||||
|
</el-date-picker>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="所属专业" prop="major" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.major" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="类别" prop="category" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.category" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审核内容" prop="review_content" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.review_content" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审核意见" prop="review_comments" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.review_comments" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审核人" prop="reviewer" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.reviewer" @click="userclick(scope.$index, 'reviewer')"
|
||||||
|
:disabled="mode != 'add'" placeholder="点击选择" readonly />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="施工单位申报值" prop="tc_amount" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.declared_value" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="咨询单位测算值" prop="calculated_value" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.calculated_value" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="备注" prop="remark" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.remark" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -36,7 +105,7 @@
|
|||||||
<script lang="ts" setup name="projectChangeVisaEdit">
|
<script lang="ts" setup name="projectChangeVisaEdit">
|
||||||
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 { apiProjectChangeVisaAdd, apiProjectChangeVisaEdit, apiProjectChangeVisaDetail } from '@/api/project_change_visa'
|
import { apiProjectChangeVisaAdd, apiProjectChangeVisaEdit, } from '@/api/project_change_visa'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -49,7 +118,9 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
@ -61,19 +132,86 @@ const formData = reactive({
|
|||||||
id: '',
|
id: '',
|
||||||
dataid: '',
|
dataid: '',
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_id: '',
|
||||||
|
project_name: "",
|
||||||
project_num: '',
|
project_num: '',
|
||||||
|
projectInfo: {},
|
||||||
djr: '',
|
djr: '',
|
||||||
djrq: '',
|
djrq: '',
|
||||||
|
project_change_visa_content: [
|
||||||
|
{
|
||||||
|
directory: '',
|
||||||
|
unit_name: '',
|
||||||
|
time: '',
|
||||||
|
major: '',
|
||||||
|
category: '',
|
||||||
|
review_content: '',
|
||||||
|
review_comments: '',
|
||||||
|
reviewer: '',
|
||||||
|
reviewer_id: '',
|
||||||
|
declared_value: '',
|
||||||
|
calculated_value: '',
|
||||||
|
remark: '',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
})
|
})
|
||||||
|
const customEvent = (e: any) => {
|
||||||
|
formData.project_id = e.id
|
||||||
|
formData.project_name = e.project_name
|
||||||
|
formData.project_num = e.project_num
|
||||||
|
showDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const tableIndex = ref(0)
|
||||||
|
const tableKey = ref('')
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async (e: any, key) => {
|
||||||
|
tableIndex.value = e
|
||||||
|
tableKey.value = key
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
console.log(tableIndex.value, tableKey.value)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData.project_change_visa_content[tableIndex.value][tableKey.value] = e.name
|
||||||
|
formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleAdd = () => {
|
||||||
|
formData.project_change_visa_content.push({
|
||||||
|
directory: '',
|
||||||
|
unit_name: '',
|
||||||
|
time: '',
|
||||||
|
major: '',
|
||||||
|
category: '',
|
||||||
|
review_content: '',
|
||||||
|
review_comments: '',
|
||||||
|
reviewer: '',
|
||||||
|
reviewer_id: '',
|
||||||
|
declared_value: '',
|
||||||
|
calculated_value: '',
|
||||||
|
remark: '',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const handleDelete = (row: any) => {
|
||||||
|
if (formData.project_change_visa_content.length == 1) return
|
||||||
|
const index = formData.project_change_visa_content.indexOf(row);
|
||||||
|
formData.project_change_visa_content.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
@ -83,7 +221,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
formData.project_id = formData.projectInfo.id
|
||||||
|
formData.project_name = formData.projectInfo.project_name
|
||||||
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<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>
|
||||||
@ -29,46 +25,53 @@
|
|||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_change_visa/delete']" :disabled="!selectData.length"
|
||||||
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">
|
||||||
<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 type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<div m="4">
|
||||||
|
<el-table :data="props.row.taskTypeInfo">
|
||||||
|
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
||||||
|
<el-table-column label="单位名称" prop="unit_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
||||||
|
<el-table-column label="所属专业" prop="major" show-overflow-tooltip />
|
||||||
|
<el-table-column label="类别" prop="category" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审核内容" prop="review_content" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审核意见" prop="review_comments" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审核人" prop="reviewer" show-overflow-tooltip />
|
||||||
|
<el-table-column label="施工单位申报值" prop="declared_value" show-overflow-tooltip />
|
||||||
|
<el-table-column label="咨询单位测算值" prop="calculated_value" show-overflow-tooltip />
|
||||||
|
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="标识" prop="dataid" show-overflow-tooltip />
|
<el-table-column label="标识" prop="dataid" show-overflow-tooltip />
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||||
<el-table-column label="登记日期" prop="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
|
<el-button v-perms="['project_process_management.project_change_visa/edit']" type="primary" link
|
||||||
v-perms="['project_process_management.project_change_visa/edit']"
|
@click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_change_visa/delete']" type="danger"
|
||||||
v-perms="['project_process_management.project_change_visa/delete']"
|
link @click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -79,7 +82,7 @@
|
|||||||
<script lang="ts" setup name="projectChangeVisaLists">
|
<script lang="ts" setup name="projectChangeVisaLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiProjectChangeVisaLists, apiProjectChangeVisaDelete } from '@/api/project_change_visa'
|
import { apiProjectChangeVisaLists, apiProjectChangeVisaDelete, apiProjectChangeVisaDetail } from '@/api/project_change_visa'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -122,10 +125,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiProjectChangeVisaDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -1,17 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||||
ref="popupRef"
|
<el-form ref="formRef" :model="formData" label-width="140px" :rules="formRules">
|
||||||
: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="project_change_visa_dataid">
|
|
||||||
<el-input v-model="formData.project_change_visa_dataid" clearable placeholder="请输入主表标识" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="所在目录" prop="directory">
|
<el-form-item label="所在目录" prop="directory">
|
||||||
<el-input v-model="formData.directory" clearable placeholder="请输入所在目录" />
|
<el-input v-model="formData.directory" clearable placeholder="请输入所在目录" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -19,7 +9,9 @@
|
|||||||
<el-input v-model="formData.unit_name" clearable placeholder="请输入单位名称" />
|
<el-input v-model="formData.unit_name" clearable placeholder="请输入单位名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="时间" prop="time">
|
<el-form-item label="时间" prop="time">
|
||||||
<el-input v-model="formData.time" clearable placeholder="请输入时间" />
|
<el-date-picker class="flex-1 !flex" v-model="formData.time" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属专业" prop="major">
|
<el-form-item label="所属专业" prop="major">
|
||||||
<el-input v-model="formData.major" clearable placeholder="请输入所属专业" />
|
<el-input v-model="formData.major" clearable placeholder="请输入所属专业" />
|
||||||
@ -34,21 +26,21 @@
|
|||||||
<el-input v-model="formData.review_comments" clearable placeholder="请输入审核意见" />
|
<el-input v-model="formData.review_comments" clearable placeholder="请输入审核意见" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审核人" prop="reviewer">
|
<el-form-item label="审核人" prop="reviewer">
|
||||||
<el-input v-model="formData.reviewer" clearable placeholder="请输入审核人" />
|
<el-input v-model="formData.reviewer" clearable placeholder="点击选择" readonly @click="userclick" />
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="审核人id" prop="reviewer_id">
|
|
||||||
<el-input v-model="formData.reviewer_id" clearable placeholder="请输入审核人id" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="施工单位申报值" prop="declared_value">
|
<el-form-item label="施工单位申报值" prop="declared_value">
|
||||||
<el-input v-model="formData.declared_value" clearable placeholder="请输入施工单位申报值" />
|
<el-input v-model="formData.declared_value" clearable placeholder="请输入施工单位申报值" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="咨询单位测算值" prop="calculated_value">
|
<el-form-item label="咨询单位测算值" prop="calculated_value">
|
||||||
<el-input v-model="formData.calculated_value" clearable placeholder="请输入咨询单位测算值" />
|
<el-input v-model="formData.calculated_value" clearable placeholder="请输入咨询单位测算值" type="number" />
|
||||||
</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>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -70,7 +62,8 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
@ -97,6 +90,19 @@ const formData = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const userclick = async (e: any) => {
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData.reviewer = e.name
|
||||||
|
formData.reviewer_id = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
|
||||||
|
@ -1,14 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="主表标识" prop="project_change_visa_dataid">
|
|
||||||
<el-input class="w-[280px]" v-model="queryParams.project_change_visa_dataid" clearable placeholder="请输入主表标识" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="所在目录" prop="directory">
|
<el-form-item label="所在目录" prop="directory">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.directory" clearable placeholder="请输入所在目录" />
|
<el-input class="w-[280px]" v-model="queryParams.directory" clearable placeholder="请输入所在目录" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -33,9 +26,6 @@
|
|||||||
<el-form-item label="审核人" prop="reviewer">
|
<el-form-item label="审核人" prop="reviewer">
|
||||||
<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="审核人id" prop="reviewer_id">
|
|
||||||
<el-input class="w-[280px]" v-model="queryParams.reviewer_id" clearable placeholder="请输入审核人id" />
|
|
||||||
</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>
|
||||||
@ -53,23 +43,20 @@
|
|||||||
</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" @click="handleAdd">
|
<el-button v-perms="['project_process_management.project_change_visa_content/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
|
<el-button v-perms="['project_process_management.project_change_visa_content/delete']"
|
||||||
v-perms="['project_process_management.project_change_visa_content/delete']"
|
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="project_change_visa_dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
||||||
<el-table-column label="单位名称" prop="unit_name" show-overflow-tooltip />
|
<el-table-column label="单位名称" prop="unit_name" show-overflow-tooltip />
|
||||||
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
||||||
@ -78,34 +65,24 @@
|
|||||||
<el-table-column label="审核内容" prop="review_content" show-overflow-tooltip />
|
<el-table-column label="审核内容" prop="review_content" show-overflow-tooltip />
|
||||||
<el-table-column label="审核意见" prop="review_comments" show-overflow-tooltip />
|
<el-table-column label="审核意见" prop="review_comments" show-overflow-tooltip />
|
||||||
<el-table-column label="审核人" prop="reviewer" show-overflow-tooltip />
|
<el-table-column label="审核人" prop="reviewer" show-overflow-tooltip />
|
||||||
<el-table-column label="审核人id" prop="reviewer_id" show-overflow-tooltip />
|
|
||||||
<el-table-column label="施工单位申报值" prop="declared_value" show-overflow-tooltip />
|
<el-table-column label="施工单位申报值" prop="declared_value" show-overflow-tooltip />
|
||||||
<el-table-column label="咨询单位测算值" prop="calculated_value" show-overflow-tooltip />
|
<el-table-column label="咨询单位测算值" prop="calculated_value" show-overflow-tooltip />
|
||||||
<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
|
<el-button v-perms="['project_process_management.project_change_visa_content/edit']"
|
||||||
v-perms="['project_process_management.project_change_visa_content/edit']"
|
type="primary" link @click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_change_visa_content/delete']"
|
||||||
v-perms="['project_process_management.project_change_visa_content/delete']"
|
type="danger" link @click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="关联合同" prop="affcontract">
|
<el-form-item label="关联合同" prop="affcontract">
|
||||||
<el-input v-model="formData.affcontract" clearable placeholder="请输入关联合同" />
|
<el-input v-model="formData.affcontract_name" clearable placeholder="请输入关联合同" readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -91,7 +91,88 @@
|
|||||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
<cost_project @customEvent="customEvent"></cost_project>
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<div style="margin-bottom: 30px;">任务明细</div>
|
||||||
|
<div style="margin-bottom: 30px;">
|
||||||
|
<el-table :data="formData.project_commission_detail">
|
||||||
|
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button @click="handleAdd(row)">+</el-button>
|
||||||
|
<el-button @click="handleDelete(row)">-</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="工程师" prop="level" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.engineer" :disabled="mode != 'add'"
|
||||||
|
@click="userclick(scope.$index, 'engineer')" placeholder="点击选择" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="任务名称" prop="task_name" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.task_name" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="任务类型" prop="task_type" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-select class="flex-1" v-model="row.task_type" clearable placeholder="请选择任务类型"
|
||||||
|
:disabled="mode != 'add'">
|
||||||
|
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name"
|
||||||
|
:value="parseInt(item.value)" />
|
||||||
|
</el-select>
|
||||||
|
<!-- {{ dictData.task_type }} -->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="专业类型" prop="professional_type" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-select class="flex-1" v-model="row.professional_type" clearable placeholder="请选择专业类型"
|
||||||
|
:disabled="mode != 'add'">
|
||||||
|
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name"
|
||||||
|
:value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
<!-- {{ dictData.major_type }} -->
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="造价金额" prop="zj_amount" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.zj_amount" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="收款金额" prop="sk_amount" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.sk_amount" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="其他增减费用" prop="other_fee" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.other_fee" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="提成比例(%)" prop="tc_rate" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.tc_rate" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="应提成金额" prop="tc_amount" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.tc_amount" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="本次支付金额" prop="pay_amount" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.pay_amount" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="备注" prop="remark" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.remark" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -99,8 +180,7 @@
|
|||||||
<script lang="ts" setup name="projectCommissionEdit">
|
<script lang="ts" setup name="projectCommissionEdit">
|
||||||
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 { apiProjectCommissionAdd, apiProjectCommissionEdit, apiProjectCommissionDetail } from '@/api/project_commission'
|
import { apiProjectCommissionAdd, apiProjectCommissionEdit, } from '@/api/project_commission'
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
@ -113,7 +193,8 @@ 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 showDialog = ref(false)
|
||||||
|
const showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
@ -131,6 +212,8 @@ const formData = reactive({
|
|||||||
project_num: '',
|
project_num: '',
|
||||||
head: '',
|
head: '',
|
||||||
affcontract: '',
|
affcontract: '',
|
||||||
|
affcontract_name: "",
|
||||||
|
contract: {},
|
||||||
industry: '',
|
industry: '',
|
||||||
hk: '',
|
hk: '',
|
||||||
rate: '',
|
rate: '',
|
||||||
@ -140,7 +223,21 @@ const formData = reactive({
|
|||||||
djr: '',
|
djr: '',
|
||||||
apptime: '',
|
apptime: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
project_commission_detail: {}
|
projectInfo: {},
|
||||||
|
project_commission_detail: [{
|
||||||
|
engineer: '',
|
||||||
|
engineer_id: '',
|
||||||
|
task_name: '',
|
||||||
|
task_type: '',
|
||||||
|
professional_type: '',
|
||||||
|
zj_amount: '',
|
||||||
|
sk_amount: '',
|
||||||
|
tc_rate: '',
|
||||||
|
tc_amount: '',
|
||||||
|
pay_amount: '',
|
||||||
|
remark: '',
|
||||||
|
other_fee: '',
|
||||||
|
}]
|
||||||
|
|
||||||
})
|
})
|
||||||
const customEvent = (e) => {
|
const customEvent = (e) => {
|
||||||
@ -149,10 +246,56 @@ const customEvent = (e) => {
|
|||||||
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.head = e.principal
|
formData.head = e.principal
|
||||||
|
formData.affcontract = e.contract.id
|
||||||
|
formData.affcontract_name = e.contract.contract_name
|
||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const handleAdd = () => {
|
||||||
|
formData.project_commission_detail.push({
|
||||||
|
engineer: '',
|
||||||
|
engineer_id: '',
|
||||||
|
task_name: '',
|
||||||
|
task_type: '',
|
||||||
|
professional_type: '',
|
||||||
|
zj_amount: '',
|
||||||
|
sk_amount: '',
|
||||||
|
tc_rate: '',
|
||||||
|
tc_amount: '',
|
||||||
|
pay_amount: '',
|
||||||
|
remark: '',
|
||||||
|
other_fee: '',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const handleDelete = (row: any) => {
|
||||||
|
if (formData.project_commission_detail.length == 1) return
|
||||||
|
const index = formData.project_commission_detail.indexOf(row);
|
||||||
|
formData.project_commission_detail.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableIndex = ref(0)
|
||||||
|
const tableKey = ref('')
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async (e: any, key) => {
|
||||||
|
tableIndex.value = e
|
||||||
|
tableKey.value = key
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
console.log(tableIndex.value, tableKey.value)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData.project_commission_detail[tableIndex.value][tableKey.value] = e.name
|
||||||
|
formData.project_commission_detail[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
|
||||||
@ -167,7 +310,12 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
formData.project_id = formData.projectInfo.id
|
||||||
|
formData.project_name = formData.projectInfo.project_name
|
||||||
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
formData.head = formData.projectInfo.principal
|
||||||
|
formData.affcontract = formData.contract.id
|
||||||
|
formData.affcontract_name = formData.contract.contract_name
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,19 +25,49 @@
|
|||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['project_commission/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
<el-button v-perms="['project_commission/delete']" :disabled="!selectData.length"
|
||||||
|
@click="handleDelete(selectData)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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" row-key="id">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<!-- <el-table-column label="" prop="dataid" show-overflow-tooltip /> -->
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<div m="4">
|
||||||
|
<el-table :data="props.row.children">
|
||||||
|
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||||
|
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="任务类型" prop="task_type">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-value :options="dictData.task_type" :value="row.task_type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="专业类型" prop="professional_type">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-value :options="dictData.major_type" :value="row.professional_type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="造价金额" prop="zj_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="收款金额" prop="sk_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="提成比例(%)" prop="tc_rate" show-overflow-tooltip />
|
||||||
|
<el-table-column label="应提成金额" prop="tc_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="本次支付金额" prop="pay_amount" show-overflow-tooltip />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
|
||||||
<el-table-column label="项目负责人" prop="head" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="关联合同" prop="affcontract" show-overflow-tooltip />
|
<el-table-column label="项目负责人" prop="projectInfo.principal" show-overflow-tooltip />
|
||||||
<el-table-column label="行业" prop="industry" show-overflow-tooltip />
|
<el-table-column label="关联合同" prop="contract.contract_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="行业" prop="industry" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-value :options="dictData.supervision_project_industry" :value="row.industry" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="项目回款总额" prop="hk" show-overflow-tooltip />
|
<el-table-column label="项目回款总额" prop="hk" show-overflow-tooltip />
|
||||||
<el-table-column label="提成比例(%)" prop="rate" show-overflow-tooltip />
|
<el-table-column label="提成比例(%)" prop="rate" show-overflow-tooltip />
|
||||||
<el-table-column label="应提成总金额" prop="ticheng" show-overflow-tooltip />
|
<el-table-column label="应提成总金额" prop="ticheng" show-overflow-tooltip />
|
||||||
@ -46,13 +76,13 @@
|
|||||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||||
<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 @click="handleDelete(row.id)">
|
<el-button v-perms="['project_commission/delete']" type="danger" link
|
||||||
|
@click="handleDelete(row.id)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -70,7 +100,7 @@
|
|||||||
<script lang="ts" setup name="projectCommissionLists">
|
<script lang="ts" setup name="projectCommissionLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiProjectCommissionLists, apiProjectCommissionDelete } from '@/api/project_commission'
|
import { apiProjectCommissionLists, apiProjectCommissionDelete, apiProjectCommissionDetail } from '@/api/project_commission'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -96,7 +126,7 @@ const handleSelectionChange = (val: any[]) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取字典数据
|
// 获取字典数据
|
||||||
const { dictData } = useDictData('supervision_project_industry')
|
const { dictData } = useDictData('supervision_project_industry,task_type,major_type')
|
||||||
|
|
||||||
// 分页相关
|
// 分页相关
|
||||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||||
@ -113,10 +143,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiProjectCommissionDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -1,44 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||||
ref="popupRef"
|
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
:title="popupTitle"
|
<!-- <el-form-item label="主表标识" prop="project_commission_dataid">
|
||||||
:async="true"
|
|
||||||
width="550px"
|
|
||||||
@confirm="handleSubmit"
|
|
||||||
@close="handleClose"
|
|
||||||
>
|
|
||||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
|
||||||
<el-form-item label="主表标识" prop="project_commission_dataid">
|
|
||||||
<el-input v-model="formData.project_commission_dataid" clearable placeholder="请输入主表标识" />
|
<el-input v-model="formData.project_commission_dataid" clearable placeholder="请输入主表标识" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="工程师" prop="engineer">
|
<el-form-item label="工程师" prop="engineer">
|
||||||
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" />
|
<el-input v-model="formData.engineer" clearable placeholder="请输入工程师" @click="userclick" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工程师id" prop="engineer_id">
|
<!-- <el-form-item label="工程师id" prop="engineer_id">
|
||||||
<el-input v-model="formData.engineer_id" clearable placeholder="请输入工程师id" />
|
<el-input v-model="formData.engineer_id" clearable placeholder="请输入工程师id" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="任务名称" prop="task_name">
|
<el-form-item label="任务名称" prop="task_name">
|
||||||
<el-input v-model="formData.task_name" clearable placeholder="请输入任务名称" />
|
<el-input v-model="formData.task_name" clearable placeholder="请输入任务名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务类型" prop="task_type">
|
<el-form-item label="任务类型" prop="task_type">
|
||||||
<el-select class="flex-1" v-model="formData.task_type" clearable placeholder="请选择任务类型">
|
<el-select class="flex-1" v-model="formData.task_type" clearable placeholder="请选择任务类型">
|
||||||
<el-option
|
<el-option v-for="(item, index) in dictData.task_type" :key="index" :label="item.name" :value="item.value" />
|
||||||
v-for="(item, index) in dictData.task_type"
|
|
||||||
:key="index"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<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
|
<el-option v-for="(item, index) in dictData.major_type" :key="index" :label="item.name" :value="item.value" />
|
||||||
v-for="(item, index) in dictData.major_type"
|
|
||||||
:key="index"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="造价金额" prop="zj_amount">
|
<el-form-item label="造价金额" prop="zj_amount">
|
||||||
@ -62,7 +45,10 @@
|
|||||||
<el-form-item label="其他增减费用" prop="other_fee">
|
<el-form-item label="其他增减费用" prop="other_fee">
|
||||||
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他增减费用" />
|
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他增减费用" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -71,7 +57,7 @@
|
|||||||
<script lang="ts" setup name="projectCommissionDetailEdit">
|
<script lang="ts" setup name="projectCommissionDetailEdit">
|
||||||
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 { apiProjectCommissionDetailAdd, apiProjectCommissionDetailEdit, apiProjectCommissionDetailDetail } from '@/api/project_commission_detail'
|
import { apiProjectCommissionDetailAdd, apiProjectCommissionDetailEdit, } from '@/api/project_commission_detail'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -84,6 +70,8 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
@ -110,6 +98,19 @@ const formData = reactive({
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async (e: any) => {
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData.engineer = e.name
|
||||||
|
formData.engineer_id = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="工程师" prop="engineer">
|
<el-form-item label="工程师" prop="engineer">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.engineer" clearable placeholder="请输入工程师" />
|
<el-input class="w-[280px]" v-model="queryParams.engineer" clearable placeholder="请输入工程师" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -20,24 +16,14 @@
|
|||||||
</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_commission_detail/add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['project_commission_detail/delete']" :disabled="!selectData.length"
|
||||||
<template #icon>
|
@click="handleDelete(selectData)">
|
||||||
<icon name="el-icon-Plus" />
|
|
||||||
</template>
|
|
||||||
新增
|
|
||||||
</el-button>
|
|
||||||
<el-button
|
|
||||||
v-perms="['project_commission_detail/delete']"
|
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="engineer" show-overflow-tooltip />
|
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||||
<el-table-column label="工程师id" prop="engineer_id" show-overflow-tooltip />
|
|
||||||
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
|
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
|
||||||
<el-table-column label="任务类型" prop="task_type">
|
<el-table-column label="任务类型" prop="task_type">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
@ -57,27 +43,17 @@
|
|||||||
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button v-perms="['project_commission_detail/edit']" type="primary" link @click="handleEdit(row)">
|
||||||
v-perms="['project_commission_detail/edit']"
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_commission_detail/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||||
v-perms="['project_commission_detail/delete']"
|
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -88,7 +64,7 @@
|
|||||||
<script lang="ts" setup name="projectCommissionDetailLists">
|
<script lang="ts" setup name="projectCommissionDetailLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiProjectCommissionDetailLists, apiProjectCommissionDetailDelete } from '@/api/project_commission_detail'
|
import { apiProjectCommissionDetailLists, apiProjectCommissionDetailDelete, apiProjectCommissionDetailDetail } from '@/api/project_commission_detail'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -130,10 +106,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiProjectCommissionDetailDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -1,46 +1,178 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||||
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 ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||||
<el-form-item label="" prop="dataid">
|
<el-row>
|
||||||
<el-input v-model="formData.dataid" clearable placeholder="请输入" />
|
<el-col :span="8">
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<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-row>
|
||||||
|
<el-row>
|
||||||
|
<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" clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="登记日期" prop="djrq">
|
<el-form-item label="登记日期" prop="djrq">
|
||||||
<el-input v-model="formData.djrq" clearable placeholder="请输入登记日期" />
|
<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>
|
||||||
<el-form-item label="进度申报造价合计" prop="sbhj">
|
</el-col>
|
||||||
<el-input v-model="formData.sbhj" clearable placeholder="请输入进度申报造价合计" />
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="进度申报造价合计" prop="sbhj" label-width="160px">
|
||||||
|
<el-input v-model="formData.sbhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="进度审核造价合计" prop="shhj">
|
</el-col>
|
||||||
<el-input v-model="formData.shhj" clearable placeholder="请输入进度审核造价合计" />
|
<el-col :span="8">
|
||||||
|
<el-form-item label="进度审核造价合计" prop="shhj" label-width="160px">
|
||||||
|
<el-input v-model="formData.shhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="累计应付工程款合计" prop="ljhj">
|
</el-col>
|
||||||
<el-input v-model="formData.ljhj" clearable placeholder="请输入累计应付工程款合计" />
|
<el-col :span="8">
|
||||||
|
<el-form-item label="累计应付工程款合计" prop="ljhj" label-width="160px">
|
||||||
|
<el-input v-model="formData.ljhj" clearable placeholder="系统自动计算" disabled type='number' />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
<el-form-item label="附件" prop="annex">
|
<el-form-item label="附件" prop="annex">
|
||||||
<material-picker v-model="formData.annex" />
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@delFile="delFileFn" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
|
</el-dialog>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<div style="margin-bottom: 30px;">进度明细</div>
|
||||||
|
<div style="margin-bottom: 30px;">
|
||||||
|
<el-table :data="formData.project_progress_payment_detail">
|
||||||
|
<el-table-column label="序号" v-if="mode == 'add'" width="150px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button @click="handleAdd">+</el-button>
|
||||||
|
<el-button @click="handleDelete(row)">-</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="所在目录" prop="level" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.directory" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="单位工程名称" prop="unit_project_name" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.unit_project_name" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="合同工程款总额" prop="contract_total_amount" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.contract_total_amount" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="合同付款比例(%)" prop="dcntract_payment_rate" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.dcntract_payment_rate" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="时间" prop="time" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-date-picker class="flex-1 !flex" v-model="row.time" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期" :disabled="mode != 'add'">
|
||||||
|
</el-date-picker>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="形象进度" prop="image_progress" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.image_progress" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="申报造价(土建)" prop="declared_cost_tj" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.declared_cost_tj" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="申报造价(安装)" prop="declared_cost_az" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.declared_cost_az" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="申报造价(其他)" prop="declared_cost_other" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.declared_cost_other" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="进度申报造价小计" prop="jdsbzj_xiaoji" width="200px">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input v-model="scope.row.jdsbzj_xiaoji" placeholder="系统自动计算" disabled />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审核造价(土建)" prop="audit_cost_tj" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.audit_cost_tj" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审核造价(安装)" prop="audit_cost_az" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.audit_cost_az" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审核造价(其他)" prop="audit_cost_other" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.audit_cost_other" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="进度审核造价小计" prop="jdshzj_xiaoji" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.jdshzj_xiaoji" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="审减额(元)" prop="deduction_amount" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.deduction_amount" type="number" placeholder="系统自动计算" disabled />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="完成产值比例(%)" prop="completed_rate" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.completed_rate" :disabled="mode != 'add'" type="number" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="累计完成工程款" prop="ljwc_funds" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.ljwc_funds" type="number" placeholder="系统自动计算" disabled />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="当期应付工程款(元)" prop="current_payable_funds" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.current_payable_funds" type="number" placeholder="系统自动计算" disabled />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="付款比例(%)" prop="payment_rate" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.payment_rate" type="number" placeholder="系统自动计算" disabled />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="备注" prop="remark" width="200px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row.remark" :disabled="mode != 'add'" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -49,8 +181,8 @@
|
|||||||
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 { apiProjectProgressPaymentAdd, apiProjectProgressPaymentEdit, apiProjectProgressPaymentDetail } from '@/api/project_progress_payment'
|
import { apiProjectProgressPaymentAdd, apiProjectProgressPaymentEdit, apiProjectProgressPaymentDetail } from '@/api/project_progress_payment'
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
import { number } from 'echarts/core'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -61,34 +193,127 @@ 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 popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑项目进度款' : '新增项目进度款'
|
return mode.value == 'edit' ? '编辑项目进度款' : '新增项目进度款'
|
||||||
})
|
})
|
||||||
|
const handleAvatarSuccess_four = (response: any) => {
|
||||||
|
Array.isArray(formData.annex) ? '' : formData.annex = []
|
||||||
|
// @ts-ignore
|
||||||
|
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除上传的文件
|
||||||
|
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: '',
|
id: '',
|
||||||
dataid: '',
|
dataid: '',
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_id: '',
|
||||||
|
project_name: "",
|
||||||
project_num: '',
|
project_num: '',
|
||||||
djr: '',
|
djr: '',
|
||||||
djrq: '',
|
djrq: '',
|
||||||
sbhj: '',
|
sbhj: '',
|
||||||
shhj: '',
|
shhj: '',
|
||||||
ljhj: '',
|
ljhj: '',
|
||||||
annex: '',
|
annex: [],
|
||||||
|
projectInfo: {},
|
||||||
|
project_progress_payment_detail: [{
|
||||||
|
project_progress_payment_id: '',
|
||||||
|
directory: '',
|
||||||
|
unit_project_name: '',
|
||||||
|
time: '',
|
||||||
|
image_progress: '',
|
||||||
|
declared_cost_tj: '',
|
||||||
|
declared_cost_az: '',
|
||||||
|
declared_cost_other: '',
|
||||||
|
jdsbzj_xiaoji: '',
|
||||||
|
audit_cost_tj: '',
|
||||||
|
audit_cost_az: '',
|
||||||
|
audit_cost_other: '',
|
||||||
|
jdshzj_xiaoji: '',
|
||||||
|
deduction_amount: '',
|
||||||
|
completed_rate: '',
|
||||||
|
contract_total_amount: '',
|
||||||
|
ljwc_funds: '',
|
||||||
|
current_payable_funds: '',
|
||||||
|
payment_rate: '',
|
||||||
|
dcntract_payment_rate: '',
|
||||||
|
remark: '',
|
||||||
|
|
||||||
|
}]
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 监听计算
|
||||||
|
watch(
|
||||||
|
() => formData.project_progress_payment_detail,
|
||||||
|
(value) => {
|
||||||
|
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
|
||||||
|
})
|
||||||
|
},
|
||||||
|
{
|
||||||
|
deep: true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const customEvent = (e: any) => {
|
||||||
|
formData.project_id = e.id
|
||||||
|
formData.project_name = e.project_name
|
||||||
|
formData.project_num = e.project_num
|
||||||
|
showDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
|
||||||
})
|
})
|
||||||
|
const handleAdd = () => {
|
||||||
|
formData.project_progress_payment_detail.push({
|
||||||
|
project_progress_payment_id: '',
|
||||||
|
directory: '',
|
||||||
|
unit_project_name: '',
|
||||||
|
time: '',
|
||||||
|
image_progress: '',
|
||||||
|
declared_cost_tj: '',
|
||||||
|
declared_cost_az: '',
|
||||||
|
declared_cost_other: '',
|
||||||
|
jdsbzj_xiaoji: '',
|
||||||
|
audit_cost_tj: '',
|
||||||
|
audit_cost_az: '',
|
||||||
|
audit_cost_other: '',
|
||||||
|
jdshzj_xiaoji: '',
|
||||||
|
deduction_amount: '',
|
||||||
|
completed_rate: '',
|
||||||
|
contract_total_amount: '',
|
||||||
|
ljwc_funds: '',
|
||||||
|
current_payable_funds: '',
|
||||||
|
payment_rate: '',
|
||||||
|
dcntract_payment_rate: '',
|
||||||
|
remark: '',
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const handleDelete = (row: any) => {
|
||||||
|
if (formData.project_progress_payment_detail.length == 1) return
|
||||||
|
const index = formData.project_progress_payment_detail.indexOf(row);
|
||||||
|
formData.project_progress_payment_detail.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
@ -99,6 +324,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
formData.project_id = formData.projectInfo.id
|
||||||
|
formData.project_name = formData.projectInfo.project_name
|
||||||
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -113,6 +341,8 @@ const getDetail = async (row: Record<string, any>) => {
|
|||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
|
console.log(formData, 'formdata')
|
||||||
|
// return
|
||||||
await formRef.value?.validate()
|
await formRef.value?.validate()
|
||||||
const data = { ...formData, }
|
const data = { ...formData, }
|
||||||
mode.value == 'edit'
|
mode.value == 'edit'
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<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>
|
||||||
@ -23,60 +19,72 @@
|
|||||||
</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_progress_payment/add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['project_process_management.project_progress_payment/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
|
<el-button v-perms="['project_process_management.project_progress_payment/delete']"
|
||||||
v-perms="['project_process_management.project_progress_payment/delete']"
|
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="dataid" show-overflow-tooltip />
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<div m="4">
|
||||||
|
<el-table :data="props.row.taskTypeInfo">
|
||||||
|
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
||||||
|
<el-table-column label="单位工程名称" prop="unit_project_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
||||||
|
<el-table-column label="形象进度" prop="image_progress" show-overflow-tooltip />
|
||||||
|
<el-table-column label="申报造价(土建)" prop="declared_cost_tj" show-overflow-tooltip />
|
||||||
|
<el-table-column label="申报造价(安装)" prop="declared_cost_az" show-overflow-tooltip />
|
||||||
|
<el-table-column label="申报造价(其他)" prop="declared_cost_other" show-overflow-tooltip />
|
||||||
|
<el-table-column label="进度申报造价小计" prop="jdsbzj_xiaoji" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审核造价(土建)" prop="audit_cost_tj" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审核造价(安装)" prop="audit_cost_az" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审核造价(其他)" prop="audit_cost_other" show-overflow-tooltip />
|
||||||
|
<el-table-column label="进度审核造价小计" prop="jdshzj_xiaoji" show-overflow-tooltip />
|
||||||
|
<el-table-column label="审减额(元)" prop="deduction_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="完成产值比例(%)" prop="completed_rate" show-overflow-tooltip />
|
||||||
|
<el-table-column label="合同工程款总额" prop="contract_total_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="累计完成工程款" prop="ljwc_funds" show-overflow-tooltip />
|
||||||
|
<el-table-column label="当期应付工程款(元)" prop="current_payable_funds"
|
||||||
|
show-overflow-tooltip />
|
||||||
|
<el-table-column label="付款比例(%)" prop="payment_rate" show-overflow-tooltip />
|
||||||
|
<el-table-column label="合同付款比例(%)" prop="dcntract_payment_rate" show-overflow-tooltip />
|
||||||
|
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
<el-table-column label="登记人" prop="djr" show-overflow-tooltip />
|
||||||
<el-table-column label="登记日期" prop="djrq" show-overflow-tooltip />
|
<el-table-column label="登记日期" prop="djrq" show-overflow-tooltip />
|
||||||
<el-table-column label="进度申报造价合计" prop="sbhj" show-overflow-tooltip />
|
<el-table-column label="进度申报造价合计" prop="sbhj" show-overflow-tooltip />
|
||||||
<el-table-column label="进度审核造价合计" prop="shhj" show-overflow-tooltip />
|
<el-table-column label="进度审核造价合计" prop="shhj" show-overflow-tooltip />
|
||||||
<el-table-column label="累计应付工程款合计" prop="ljhj" show-overflow-tooltip />
|
<el-table-column label="累计应付工程款合计" prop="ljhj" show-overflow-tooltip />
|
||||||
<el-table-column label="附件" prop="annex">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-image style="width:50px;height:50px;" :src="row.annex" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_progress_payment/edit']" type="primary"
|
||||||
v-perms="['project_process_management.project_progress_payment/edit']"
|
link @click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_progress_payment/delete']"
|
||||||
v-perms="['project_process_management.project_progress_payment/delete']"
|
type="danger" link @click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -87,7 +95,7 @@
|
|||||||
<script lang="ts" setup name="projectProgressPaymentLists">
|
<script lang="ts" setup name="projectProgressPaymentLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiProjectProgressPaymentLists, apiProjectProgressPaymentDelete } from '@/api/project_progress_payment'
|
import { apiProjectProgressPaymentLists, apiProjectProgressPaymentDelete, apiProjectProgressPaymentDetail } from '@/api/project_progress_payment'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -130,10 +138,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiProjectProgressPaymentDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -1,78 +1,134 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||||
ref="popupRef"
|
<el-form ref="formRef" :model="formData" label-width="140px" :rules="formRules">
|
||||||
:title="popupTitle"
|
<el-row>
|
||||||
:async="true"
|
<el-col :span="8">
|
||||||
width="550px"
|
|
||||||
@confirm="handleSubmit"
|
|
||||||
@close="handleClose"
|
|
||||||
>
|
|
||||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
|
||||||
<el-form-item label="" prop="project_progress_payment_id">
|
|
||||||
<el-input v-model="formData.project_progress_payment_id" clearable placeholder="请输入" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="所在目录" prop="directory">
|
<el-form-item label="所在目录" prop="directory">
|
||||||
<el-input v-model="formData.directory" clearable placeholder="请输入所在目录" />
|
<el-input v-model="formData.directory" clearable placeholder="请输入所在目录" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="单位工程名称" prop="unit_project_name">
|
<el-form-item label="单位工程名称" prop="unit_project_name">
|
||||||
<el-input v-model="formData.unit_project_name" clearable placeholder="请输入单位工程名称" />
|
<el-input v-model="formData.unit_project_name" clearable placeholder="请输入单位工程名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="时间" prop="time">
|
<el-form-item label="时间" prop="time">
|
||||||
<el-input v-model="formData.time" clearable placeholder="请输入时间" />
|
<el-date-picker class="flex-1 !flex" v-model="formData.time" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期" :disabled="mode != 'add'">
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="形象进度" prop="image_progress">
|
<el-form-item label="形象进度" prop="image_progress">
|
||||||
<el-input v-model="formData.image_progress" clearable placeholder="请输入形象进度" />
|
<el-input v-model="formData.image_progress" clearable placeholder="请输入形象进度" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="申报造价(土建)" prop="declared_cost_tj">
|
<el-form-item label="申报造价(土建)" prop="declared_cost_tj">
|
||||||
<el-input v-model="formData.declared_cost_tj" clearable placeholder="请输入申报造价(土建)" />
|
<el-input v-model="formData.declared_cost_tj" clearable placeholder="请输入申报造价(土建)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="申报造价(安装)" prop="declared_cost_az">
|
<el-form-item label="申报造价(安装)" prop="declared_cost_az">
|
||||||
<el-input v-model="formData.declared_cost_az" clearable placeholder="请输入申报造价(安装)" />
|
<el-input v-model="formData.declared_cost_az" clearable placeholder="请输入申报造价(安装)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="申报造价(其他)" prop="declared_cost_other">
|
<el-form-item label="申报造价(其他)" prop="declared_cost_other">
|
||||||
<el-input v-model="formData.declared_cost_other" clearable placeholder="请输入申报造价(其他)" />
|
<el-input v-model="formData.declared_cost_other" clearable placeholder="请输入申报造价(其他)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="进度申报造价小计" prop="jdsbzj_xiaoji">
|
<el-form-item label="进度申报造价小计" prop="jdsbzj_xiaoji">
|
||||||
<el-input v-model="formData.jdsbzj_xiaoji" clearable placeholder="请输入进度申报造价小计" />
|
<el-input v-model="formData.jdsbzj_xiaoji" clearable placeholder="系统自动计算" disabled
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="审核造价(土建)" prop="audit_cost_tj">
|
<el-form-item label="审核造价(土建)" prop="audit_cost_tj">
|
||||||
<el-input v-model="formData.audit_cost_tj" clearable placeholder="请输入审核造价(土建)" />
|
<el-input v-model="formData.audit_cost_tj" clearable placeholder="请输入审核造价(土建)" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="审核造价(安装)" prop="audit_cost_az">
|
<el-form-item label="审核造价(安装)" prop="audit_cost_az">
|
||||||
<el-input v-model="formData.audit_cost_az" clearable placeholder="请输入审核造价(安装)" />
|
<el-input v-model="formData.audit_cost_az" clearable placeholder="请输入审核造价(安装)" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="审核造价(其他)" prop="audit_cost_other">
|
<el-form-item label="审核造价(其他)" prop="audit_cost_other">
|
||||||
<el-input v-model="formData.audit_cost_other" clearable placeholder="请输入审核造价(其他)" />
|
<el-input v-model="formData.audit_cost_other" clearable placeholder="请输入审核造价(其他)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="进度审核造价小计" prop="jdshzj_xiaoji">
|
<el-form-item label="进度审核造价小计" prop="jdshzj_xiaoji">
|
||||||
<el-input v-model="formData.jdshzj_xiaoji" clearable placeholder="请输入进度审核造价小计" />
|
<el-input v-model="formData.jdshzj_xiaoji" clearable placeholder="请输入进度审核造价小计" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="审减额(元)" prop="deduction_amount">
|
<el-form-item label="审减额(元)" prop="deduction_amount">
|
||||||
<el-input v-model="formData.deduction_amount" clearable placeholder="请输入审减额(元)" />
|
<el-input v-model="formData.deduction_amount" clearable placeholder="系统自动计算" disabled
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="完成产值比例(%)" prop="completed_rate">
|
<el-form-item label="完成产值比例(%)" prop="completed_rate">
|
||||||
<el-input v-model="formData.completed_rate" clearable placeholder="请输入完成产值比例(%)" />
|
<el-input v-model="formData.completed_rate" clearable placeholder="请输入完成产值比例(%)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="合同工程款总额" prop="contract_total_amount">
|
<el-form-item label="合同工程款总额" prop="contract_total_amount">
|
||||||
<el-input v-model="formData.contract_total_amount" clearable placeholder="请输入合同工程款总额" />
|
<el-input v-model="formData.contract_total_amount" clearable placeholder="请输入合同工程款总额"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="累计完成工程款" prop="ljwc_funds">
|
<el-form-item label="累计完成工程款" prop="ljwc_funds">
|
||||||
<el-input v-model="formData.ljwc_funds" clearable placeholder="请输入累计完成工程款" />
|
<el-input v-model="formData.ljwc_funds" clearable placeholder="系统自动计算" disabled type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="当期应付工程款(元)" prop="current_payable_funds">
|
<el-form-item label="当期应付工程款(元)" prop="current_payable_funds">
|
||||||
<el-input v-model="formData.current_payable_funds" clearable placeholder="请输入当期应付工程款(元)" />
|
<el-input v-model="formData.current_payable_funds" clearable placeholder="系统自动计算" disabled
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="付款比例(%)" prop="payment_rate">
|
<el-form-item label="付款比例(%)" prop="payment_rate">
|
||||||
<el-input v-model="formData.payment_rate" clearable placeholder="请输入付款比例(%)" />
|
<el-input v-model="formData.payment_rate" clearable placeholder="系统自动计算" disabled
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
<el-form-item label="合同付款比例(%)" prop="dcntract_payment_rate">
|
<el-form-item label="合同付款比例(%)" prop="dcntract_payment_rate">
|
||||||
<el-input v-model="formData.dcntract_payment_rate" clearable placeholder="请输入合同付款比例(%)" />
|
<el-input v-model="formData.dcntract_payment_rate" clearable placeholder="请输入合同付款比例(%)"
|
||||||
|
type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
<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="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||||
@ -14,23 +10,20 @@
|
|||||||
</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_progress_payment_detail/add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['project_process_management.project_progress_payment_detail/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
|
<el-button v-perms="['project_process_management.project_progress_payment_detail/delete']"
|
||||||
v-perms="['project_process_management.project_progress_payment_detail/delete']"
|
:disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="project_progress_payment_id" show-overflow-tooltip />
|
|
||||||
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
<el-table-column label="所在目录" prop="directory" show-overflow-tooltip />
|
||||||
<el-table-column label="单位工程名称" prop="unit_project_name" show-overflow-tooltip />
|
<el-table-column label="单位工程名称" prop="unit_project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
<el-table-column label="时间" prop="time" show-overflow-tooltip />
|
||||||
@ -54,27 +47,19 @@
|
|||||||
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_progress_payment_detail/edit']"
|
||||||
v-perms="['project_process_management.project_progress_payment_detail/edit']"
|
type="primary" link @click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_progress_payment_detail/delete']"
|
||||||
v-perms="['project_process_management.project_progress_payment_detail/delete']"
|
type="danger" link @click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
@ -1,22 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||||
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 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="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</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="请输入项目编号" />
|
||||||
@ -31,13 +23,15 @@
|
|||||||
<el-input v-model="formData.zx_type" clearable placeholder="请输入咨询类型" />
|
<el-input v-model="formData.zx_type" clearable placeholder="请输入咨询类型" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目整改人" prop="zg_master">
|
<el-form-item label="项目整改人" prop="zg_master">
|
||||||
<el-input v-model="formData.zg_master" clearable placeholder="请输入项目整改人" />
|
<el-input v-model="formData.zg_master" clearable placeholder="点击选择" @click="userclick('zg_master')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登记人" prop="dj_person">
|
<el-form-item label="登记人" prop="dj_person">
|
||||||
<el-input v-model="formData.dj_person" clearable placeholder="请输入登记人" />
|
<el-input v-model="formData.dj_person" clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登记日期" prop="apptime">
|
<el-form-item label="登记日期" prop="apptime">
|
||||||
<el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" />
|
<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>
|
||||||
<el-form-item label="存在问题" prop="problem">
|
<el-form-item label="存在问题" prop="problem">
|
||||||
<el-input v-model="formData.problem" clearable placeholder="请输入存在问题" />
|
<el-input v-model="formData.problem" clearable placeholder="请输入存在问题" />
|
||||||
@ -45,13 +39,20 @@
|
|||||||
<el-form-item label="修改情况" prop="deal_desc">
|
<el-form-item label="修改情况" prop="deal_desc">
|
||||||
<el-input v-model="formData.deal_desc" clearable placeholder="请输入修改情况" />
|
<el-input v-model="formData.deal_desc" 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="请输入" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="附件" prop="annex">
|
<el-form-item label="附件">
|
||||||
<material-picker v-model="formData.annex" />
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@delFile="delFileFn" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
|
</el-dialog>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -60,7 +61,7 @@
|
|||||||
<script lang="ts" setup name="projectRectificationEdit">
|
<script lang="ts" setup name="projectRectificationEdit">
|
||||||
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 { apiProjectRectificationAdd, apiProjectRectificationEdit, apiProjectRectificationDetail } from '@/api/project_rectification'
|
import { apiProjectRectificationAdd, apiProjectRectificationEdit, } from '@/api/project_rectification'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -73,8 +74,17 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
const handleAvatarSuccess_four = (response: any) => {
|
||||||
|
Array.isArray(formData.annex) ? '' : formData.annex = []
|
||||||
|
// @ts-ignore
|
||||||
|
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除上传的文件
|
||||||
|
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑项目整改' : '新增项目整改'
|
return mode.value == 'edit' ? '编辑项目整改' : '新增项目整改'
|
||||||
@ -85,7 +95,8 @@ const formData = reactive({
|
|||||||
id: '',
|
id: '',
|
||||||
dataid: '',
|
dataid: '',
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_id: '',
|
||||||
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
wt_unit: '',
|
wt_unit: '',
|
||||||
xm_master: '',
|
xm_master: '',
|
||||||
@ -96,7 +107,8 @@ const formData = reactive({
|
|||||||
problem: '',
|
problem: '',
|
||||||
deal_desc: '',
|
deal_desc: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
annex: '',
|
annex: [],
|
||||||
|
projectInfo: {}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -105,6 +117,30 @@ const formData = reactive({
|
|||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
|
||||||
})
|
})
|
||||||
|
const customEvent = (e: any) => {
|
||||||
|
formData.project_id = e.id
|
||||||
|
formData.project_name = e.project_name
|
||||||
|
formData.project_num = e.project_num
|
||||||
|
showDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableKey = ref('')
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async (key) => {
|
||||||
|
tableKey.value = key
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData[tableKey.value] = e.name
|
||||||
|
// formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
@ -115,7 +151,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
formData.project_id = formData.projectInfo.id
|
||||||
|
formData.project_name = formData.projectInfo.project_name
|
||||||
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<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>
|
||||||
@ -15,7 +11,6 @@
|
|||||||
<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="请输入项目编号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||||
<el-button @click="resetParams">重置</el-button>
|
<el-button @click="resetParams">重置</el-button>
|
||||||
@ -29,20 +24,16 @@
|
|||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_rectification/delete']" :disabled="!selectData.length"
|
||||||
v-perms="['project_process_management.project_rectification/delete']"
|
@click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||||
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
<el-table-column label="项目负责人" prop="xm_master" show-overflow-tooltip />
|
||||||
<el-table-column label="咨询类型" prop="zx_type" show-overflow-tooltip />
|
<el-table-column label="咨询类型" prop="zx_type" show-overflow-tooltip />
|
||||||
@ -54,27 +45,19 @@
|
|||||||
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_rectification/edit']" type="primary"
|
||||||
v-perms="['project_process_management.project_rectification/edit']"
|
link @click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_rectification/delete']" type="danger"
|
||||||
v-perms="['project_process_management.project_rectification/delete']"
|
link @click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -85,7 +68,7 @@
|
|||||||
<script lang="ts" setup name="projectRectificationLists">
|
<script lang="ts" setup name="projectRectificationLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiProjectRectificationLists, apiProjectRectificationDelete } from '@/api/project_rectification'
|
import { apiProjectRectificationLists, apiProjectRectificationDelete, apiProjectRectificationDetail } from '@/api/project_rectification'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -128,10 +111,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiProjectRectificationDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -1,22 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||||
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 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="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<el-input v-model="formData.num" clearable placeholder="请输入单据编号" />
|
<el-input v-model="formData.num" clearable placeholder="系统自动生成" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="project">
|
<el-form-item label="项目名称" prop="project">
|
||||||
<el-input v-model="formData.project" clearable placeholder="请输入项目名称" />
|
<el-input v-model="formData.project_name" clearable placeholder="点击选择项目" readonly
|
||||||
|
@click="showDialog = true" />
|
||||||
</el-form-item>
|
</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="请输入项目编号" />
|
||||||
@ -28,22 +19,26 @@
|
|||||||
<el-input v-model="formData.jsdw" clearable placeholder="请输入建设单位" />
|
<el-input v-model="formData.jsdw" clearable placeholder="请输入建设单位" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门负责人" prop="bmfz">
|
<el-form-item label="部门负责人" prop="bmfz">
|
||||||
<el-input v-model="formData.bmfz" clearable placeholder="请输入部门负责人" />
|
<el-input v-model="formData.bmfz" clearable placeholder="点击选择" @click="userclick('bmfz')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目负责人" prop="xmfz">
|
<el-form-item label="项目负责人" prop="xmfz">
|
||||||
<el-input v-model="formData.xmfz" clearable placeholder="请输入项目负责人" />
|
<el-input v-model="formData.xmfz" clearable placeholder="请输入项目负责人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="踏勘日期" prop="riqi">
|
<el-form-item label="踏勘日期" prop="riqi">
|
||||||
<el-input v-model="formData.riqi" clearable placeholder="请输入踏勘日期" />
|
<el-date-picker class="flex-1 !flex" v-model="formData.riqi" clearable type="date"
|
||||||
|
value-format="YYYY-MM-DD" placeholder="请选择日期">
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="踏勘人员" prop="people">
|
<el-form-item label="踏勘人员" prop="people">
|
||||||
<el-input v-model="formData.people" clearable placeholder="请输入踏勘人员" />
|
<el-input v-model="formData.people" clearable placeholder="点击选择" @click="userclick('people')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<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" clearable placeholder="请输入登记人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登记日期" prop="apptime">
|
<el-form-item label="登记日期" prop="apptime">
|
||||||
<el-input v-model="formData.apptime" clearable placeholder="请输入登记日期" />
|
<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>
|
||||||
<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="请输入踏勘内容" />
|
||||||
@ -51,10 +46,21 @@
|
|||||||
<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="请输入" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="附件">
|
||||||
|
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
||||||
|
@delFile="delFileFn" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||||
|
<cost_project @customEvent="customEvent"></cost_project>
|
||||||
|
</el-dialog>
|
||||||
|
<div v-if="showDialog3">
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
|
</personnelselector>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -63,7 +69,7 @@
|
|||||||
<script lang="ts" setup name="projectSurveySignatureEdit">
|
<script lang="ts" setup name="projectSurveySignatureEdit">
|
||||||
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 { apiProjectSurveySignatureAdd, apiProjectSurveySignatureEdit, apiProjectSurveySignatureDetail } from '@/api/project_survey_signature'
|
import { apiProjectSurveySignatureAdd, apiProjectSurveySignatureEdit, } from '@/api/project_survey_signature'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -76,7 +82,17 @@ 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 showDialog3 = ref(false)
|
||||||
|
const personnel = ref<any>()
|
||||||
|
const handleAvatarSuccess_four = (response: any) => {
|
||||||
|
Array.isArray(formData.annex) ? '' : formData.annex = []
|
||||||
|
// @ts-ignore
|
||||||
|
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除上传的文件
|
||||||
|
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
@ -88,7 +104,8 @@ const formData = reactive({
|
|||||||
id: '',
|
id: '',
|
||||||
dataid: '',
|
dataid: '',
|
||||||
num: '',
|
num: '',
|
||||||
project: '',
|
project_id: '',
|
||||||
|
project_name: '',
|
||||||
project_num: '',
|
project_num: '',
|
||||||
wt_unit: '',
|
wt_unit: '',
|
||||||
jsdw: '',
|
jsdw: '',
|
||||||
@ -98,12 +115,36 @@ const formData = reactive({
|
|||||||
people: '',
|
people: '',
|
||||||
djr: '',
|
djr: '',
|
||||||
apptime: '',
|
apptime: '',
|
||||||
|
projectInfo: {},
|
||||||
content: '',
|
content: '',
|
||||||
result: '',
|
result: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
|
annex: [],
|
||||||
|
|
||||||
})
|
})
|
||||||
|
const customEvent = (e: any) => {
|
||||||
|
formData.project_id = e.id
|
||||||
|
formData.project_name = e.project_name
|
||||||
|
formData.project_num = e.project_num
|
||||||
|
showDialog.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableKey = ref('')
|
||||||
|
//打开弹窗
|
||||||
|
const userclick = async (key) => {
|
||||||
|
tableKey.value = key
|
||||||
|
showDialog3.value = true
|
||||||
|
await nextTick()
|
||||||
|
personnel.value.open()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData[tableKey.value] = e.name
|
||||||
|
// formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
|
||||||
|
showDialog3.value = false
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
@ -119,7 +160,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
formData.project_id = formData.projectInfo.id
|
||||||
|
formData.project_name = formData.projectInfo.project_name
|
||||||
|
formData.project_num = formData.projectInfo.project_num
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="单据编号" prop="num">
|
<el-form-item label="单据编号" prop="num">
|
||||||
<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>
|
||||||
@ -29,20 +25,16 @@
|
|||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_survey_signature/delete']" :disabled="!selectData.length"
|
||||||
v-perms="['project_process_management.project_survey_signature/delete']"
|
@click="handleDelete(selectData)">
|
||||||
:disabled="!selectData.length"
|
|
||||||
@click="handleDelete(selectData)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</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="dataid" show-overflow-tooltip />
|
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
<el-table-column label="委托单位" prop="wt_unit" show-overflow-tooltip />
|
||||||
<el-table-column label="建设单位" prop="jsdw" show-overflow-tooltip />
|
<el-table-column label="建设单位" prop="jsdw" show-overflow-tooltip />
|
||||||
<el-table-column label="部门负责人" prop="bmfz" show-overflow-tooltip />
|
<el-table-column label="部门负责人" prop="bmfz" show-overflow-tooltip />
|
||||||
@ -53,31 +45,22 @@
|
|||||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||||
<el-table-column label="踏勘内容" prop="content" show-overflow-tooltip />
|
<el-table-column label="踏勘内容" prop="content" show-overflow-tooltip />
|
||||||
<el-table-column label="核实结果" prop="result" show-overflow-tooltip />
|
<el-table-column label="核实结果" prop="result" show-overflow-tooltip />
|
||||||
<el-table-column label="" prop="remark" show-overflow-tooltip />
|
<el-table-column label="备注" 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
|
<el-button v-perms="['project_process_management.project_survey_signature/edit']" type="primary" link
|
||||||
v-perms="['project_process_management.project_survey_signature/edit']"
|
@click="handleEdit(row)">
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="handleEdit(row)"
|
|
||||||
>
|
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button v-perms="['project_process_management.project_survey_signature/delete']" type="danger" link
|
||||||
v-perms="['project_process_management.project_survey_signature/delete']"
|
@click="handleDelete(row.id)">
|
||||||
type="danger"
|
|
||||||
link
|
|
||||||
@click="handleDelete(row.id)"
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -88,7 +71,7 @@
|
|||||||
<script lang="ts" setup name="projectSurveySignatureLists">
|
<script lang="ts" setup name="projectSurveySignatureLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiProjectSurveySignatureLists, apiProjectSurveySignatureDelete } from '@/api/project_survey_signature'
|
import { apiProjectSurveySignatureLists, apiProjectSurveySignatureDelete, apiProjectSurveySignatureDetail } from '@/api/project_survey_signature'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
@ -131,10 +114,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiProjectSurveySignatureDetail({ id: data.id })
|
||||||
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(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -26,31 +26,54 @@
|
|||||||
<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="dataid" show-overflow-tooltip /> -->
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<div m="4">
|
||||||
|
<el-table :data="props.row.taskTypeInfo">
|
||||||
|
<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">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-value :options="dictData.task_type" :value="row.task_type_id" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="专业类型" prop="professional_type">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-value :options="dictData.major_type" :value="row.professional_type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
|
||||||
|
<el-table-column label="任务级次" prop="level" show-overflow-tooltip />
|
||||||
|
<el-table-column label="一级审核人" prop="first_reviewer" show-overflow-tooltip />
|
||||||
|
<el-table-column label="二级审核人" prop="secondary_reviewer" show-overflow-tooltip />
|
||||||
|
<el-table-column label="三级审核人" prop="third_level_reviewer" show-overflow-tooltip />
|
||||||
|
<el-table-column label="中标金额(元)" prop="bid_winning_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="送审造价(元)" prop="cost" show-overflow-tooltip />
|
||||||
|
<el-table-column label="第三方核定金额(元)" prop="approved_amount" show-overflow-tooltip />
|
||||||
|
<el-table-column label="施工单位" prop="construction_unit" show-overflow-tooltip />
|
||||||
|
<el-table-column label="施工单位id" prop="construction_unit_id" show-overflow-tooltip />
|
||||||
|
<el-table-column label="联系人" prop="contact" show-overflow-tooltip />
|
||||||
|
<el-table-column label="联系电话" prop="contact_phone" show-overflow-tooltip />
|
||||||
|
<el-table-column label="天数" prop="days" show-overflow-tooltip />
|
||||||
|
<el-table-column label="开始日期" prop="start_date" show-overflow-tooltip />
|
||||||
|
<el-table-column label="结束日期" prop="end_date" show-overflow-tooltip />
|
||||||
|
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
<el-table-column label="单据编号" prop="num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="projectInfo.project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
<el-table-column label="项目编号" prop="projectInfo.project_num" show-overflow-tooltip />
|
||||||
<el-table-column label="项目负责人" prop="projectInfo.principal" show-overflow-tooltip />
|
<el-table-column label="项目负责人" prop="projectInfo.principal" show-overflow-tooltip />
|
||||||
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
<el-table-column label="登记日期" prop="apptime" show-overflow-tooltip />
|
||||||
<!-- <el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
|
||||||
<template #default="{ row }">
|
|
||||||
<div v-if="row.annex && row.annex.length > 0">
|
|
||||||
<div v-for="(item, i) in row.annex " :key='i'>
|
|
||||||
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-else>
|
|
||||||
暂无文件
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-table-column> -->
|
|
||||||
|
|
||||||
<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="['task.task_allocation/edit']" type="primary" link @click="handleEdit(row)">
|
<el-button v-perms="['task.task_allocation/edit']" type="primary" link @click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['task.task_allocation/delete']" type="danger" link @click="handleDelete(row.id)">
|
<el-button v-perms="['task.task_allocation/delete']" type="danger" link
|
||||||
|
@click="handleDelete(row.id)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user