This commit is contained in:
zmj 2024-01-29 21:14:39 +08:00
parent af9393b1b9
commit 7fdbe23ca5
7 changed files with 77 additions and 115 deletions

View File

@ -200,7 +200,7 @@
</el-row> </el-row>
<el-dialog v-model="showDialog" title="选择供应商" width="70%"> <el-dialog v-model="showDialog" title="选择供应商" width="70%">
<suppliertable @customEvent="customEvent"></suppliertable> <suppliertable @customEvent="customEvent" :project_id="project?.id || ''"></suppliertable>
</el-dialog> </el-dialog>
<div v-if="formData.contract_cate == 1 && showDialog1"> <div v-if="formData.contract_cate == 1 && showDialog1">
<el-dialog v-model="showDialog1" title="选择采购合同" width="70%"> <el-dialog v-model="showDialog1" title="选择采购合同" width="70%">
@ -240,13 +240,9 @@ import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue' import Popup from '@/components/popup/index.vue'
// import procurementDialog from '@/components/procurement/index.vue' // import procurementDialog from '@/components/procurement/index.vue'
import suppliertable from '@/components/supplier/index.vue' import suppliertable from '@/components/supplier/index.vue'
import { useDictData } from '@/hooks/useDictOptions'
import subcontractingDialog from '@/components/procurementsubcontracting_selector/index.vue' import subcontractingDialog from '@/components/procurementsubcontracting_selector/index.vue'
import subcontracting from '@/components/procurementsubcontracting_selector/subcontracting.vue' import subcontracting from '@/components/procurementsubcontracting_selector/subcontracting.vue'
import paylistDialog from '@/components/paylist/index.vue' import paylistDialog from '@/components/paylist/index.vue'
const active = ref(0) const active = ref(0)
import bankaccountDialog from '@/components/bankaccount/index.vue' import bankaccountDialog from '@/components/bankaccount/index.vue'
@ -309,11 +305,9 @@ const delFileFn = (index: number) => {
formDataannex.splice(index, 1) formDataannex.splice(index, 1)
} }
defineProps({ defineProps({
dictData: { project: Object
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
}) })
const { dictData } = useDictData('pay_period,pay_type,payment_natrue,invoice_status')
const emit = defineEmits(['success', 'close']) 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>>()

View File

@ -143,7 +143,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-dialog v-model="showDialog" title="选择供应商" width="70%"> <el-dialog v-model="showDialog" title="选择供应商" width="70%">
<suppliertable @customEvent="customEvent"></suppliertable> <suppliertable @customEvent="customEvent" :project_id="project?.id || ''"></suppliertable>
</el-dialog> </el-dialog>
<div v-if="formData.contract_cate == 1 && showDialog1"> <div v-if="formData.contract_cate == 1 && showDialog1">
@ -185,6 +185,7 @@ import { isEmail, isIdCard, isPhone } from '@/utils/validate'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import configs from "@/config" import configs from "@/config"
import useUserStore from "@/stores/modules/user"; import useUserStore from "@/stores/modules/user";
import { useDictData } from '@/hooks/useDictOptions'
const protype = reactive([]) const protype = reactive([])
const base_url = configs.baseUrl + configs.urlPrefix const base_url = configs.baseUrl + configs.urlPrefix
const userStore = useUserStore(); const userStore = useUserStore();
@ -234,12 +235,10 @@ const userEmail = (rule: any, value: string, callback: (arg0: Error | undefined)
} }
}; };
const { dictData } = useDictData('refund_type,isaccrued,contract_type')
defineProps({ defineProps({
dictData: { project: Object
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
}) })
const emit = defineEmits(['success', 'close']) const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>() const formRef = shallowRef<FormInstance>()

View File

@ -2,16 +2,13 @@
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose"> <popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true" <el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]"> :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable readonly placeholder="请选择项目" /> <el-input v-model="project_name" clearable readonly placeholder="请选择项目" :disabled="project" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -56,11 +53,7 @@
<el-input v-model="formData.describe" type="textarea" clearable placeholder="请输入文档描述" /> <el-input v-model="formData.describe" type="textarea" clearable placeholder="请输入文档描述" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="附件" prop="field127"> <el-form-item label="附件" prop="field127">
<el-upload <el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
@ -84,10 +77,6 @@
</el-col> </el-col>
</el-row> </el-row>
<el-dialog v-model="showDialog" title="选择文档" width="70%"> <el-dialog v-model="showDialog" title="选择文档" width="70%">
<documentDialog @customEvent="customEvent"></documentDialog> <documentDialog @customEvent="customEvent"></documentDialog>
</el-dialog> </el-dialog>
@ -149,40 +138,8 @@ const handleAvatarSuccess_four = (
const delFileFn = (index: number) => { const delFileFn = (index: number) => {
formDataannex.splice(index, 1) formDataannex.splice(index, 1)
} }
defineProps({ let props = defineProps({
dictData: { project: Object
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const showDialog = ref(false)
const showDialog2 = ref(false)
const customEvent2 = (e: any) => {
formData.project_id = e.id;
project_name.value = e.name;
project_code.value = e.project_code;
showDialog2.value = false;
};
const customEvent = (e: any) => {
formData.classify_id = e.id;
large_document.value = e.large_category;
middle_document.value = e.middle_category;
// formData.name = e.name;
showDialog.value = false;
};
//
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目文档表' : '新增项目文档表'
}) })
// //
@ -200,6 +157,43 @@ const formData = reactive({
}) })
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const showDialog = ref(false)
const showDialog2 = ref(false)
const customEvent2 = (e: any) => {
formData.project_id = e.id;
project_name.value = e.name;
project_code.value = e.project_code;
showDialog2.value = false;
};
if (props.project) customEvent2(props.project);
const customEvent = (e: any) => {
formData.classify_id = e.id;
large_document.value = e.large_category;
middle_document.value = e.middle_category;
showDialog.value = false;
};
//
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目文档表' : '新增项目文档表'
})
// //
const formRules = reactive<any>({ const formRules = reactive<any>({

View File

@ -1,15 +1,15 @@
<template> <template>
<myTable :baseData="baseData"></myTable> <myTable :baseData="baseData" :project="project" editPath="project_document"></myTable>
</template> </template>
<script setup> <script setup>
import { ref, reactive, defineProps } from "vue" import { ref, reactive, defineProps } from "vue"
import myTable from "./myTable.vue" import myTable from "./myTable.vue"
import { apiProjectdocumentLists } from '@/api/project_document_set' import { apiProjectdocumentLists } from '@/api/project_document'
const props = defineProps({ const props = defineProps({
project_id: Number project: Object
}) })
@ -17,15 +17,16 @@ const props = defineProps({
const baseData = reactive({ const baseData = reactive({
fetchFun: apiProjectdocumentLists, fetchFun: apiProjectdocumentLists,
tit: "文档", tit: "文档",
queryParams: { project_id: props.project_id }, queryParams: { project_id: props.project.id },
columnList: [ columnList: [
{ label: '排序号', prop: 'sort' }, { label: '项目名称', prop: 'project_name' },
{ label: '项目编码', prop: 'project_code' },
{ label: '文档大类', prop: 'large_category' }, { label: '文档大类', prop: 'large_category' },
{ label: '文档中类', prop: 'middle_category' }, { label: '文档中类', prop: 'middle_category' },
{ label: '文档编号', prop: 'code' },
{ label: '文档名称', prop: 'name' }, { label: '文档名称', prop: 'name' },
{ label: '文档描述', prop: 'describe' }, { label: '版本号', prop: 'version' },
{ label: '必传', prop: 'is_upload' },
{ label: '文档', prop: '' },
] ]
}) })

View File

@ -1,8 +1,8 @@
<template> <template>
<myTable :baseData="baseData" :project="project" editPath="finance_receipt_record"></myTable> <myTable :baseData="baseData" :project="project" editPath="finance_receipt_record"></myTable>
<myTable :baseData="baseData1" :project="project" editPath="finance_payment_plan"></myTable> <myTable :baseData="baseData1" :project="project" editPath="finance_payment_plan"></myTable>
<myTable :baseData="baseData2" :project="project" editPath="procurement_contract"></myTable> <myTable :baseData="baseData2" :project="project" editPath="finance_payment_apply"></myTable>
<myTable :baseData="baseData3" :project="project" editPath="procurement_contract"></myTable> <myTable :baseData="baseData3" :project="project" editPath="finance_refund_record"></myTable>
</template> </template>
<script setup> <script setup>
@ -57,15 +57,16 @@ const baseData2 = reactive({
tit: "付款记录", tit: "付款记录",
queryParams: { project_id: props.project.id }, queryParams: { project_id: props.project.id },
columnList: [ columnList: [
{ label: '付款单号', prop: 'competitor_name' }, { label: '付款单号', prop: 'payment_apply_code' },
{ label: '合同编号', prop: 'contract_no' },
{ label: '供应商名称', prop: 'supplier_name' }, { label: '供应商名称', prop: 'supplier_name' },
{ label: '合同类型', prop: 'contract_type' }, { label: '项目名称', prop: 'project_name' },
{ label: '期次', prop: 'period' }, { label: '合同编号', prop: 'contract_no' },
{ label: '付款日期', prop: 'pay_date' }, { label: '付款日期', prop: 'pay_date' },
{ label: '付款性质', prop: 'payment_natrue' },
{ label: '付款方式', prop: 'pay_type' },
{ label: '付款金额', prop: 'amount' }, { label: '付款金额', prop: 'amount' },
{ label: '付款方式', prop: 'pay_type_text' },
{ label: '付款性质', prop: 'payment_nature_text' },
{ label: '申请人', prop: 'apply_user' },
{ label: '备注', prop: 'remark' },
] ]
}) })

View File

@ -43,7 +43,7 @@
<payment v-if="activeName == 'demo-15'" :project="formData"></payment> <payment v-if="activeName == 'demo-15'" :project="formData"></payment>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="文档" name="demo-16"> <el-tab-pane label="文档" name="demo-16">
<documentation v-if="activeName == 'demo-16'" :project_id="project_id"></documentation> <documentation v-if="activeName == 'demo-16'" :project="formData"></documentation>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="统计" name="demo-17"> <el-tab-pane label="统计" name="demo-17">

View File

@ -4,62 +4,35 @@
<el-card class="!border-none" shadow="never"> <el-card class="!border-none" shadow="never">
<el-form class="ls-form" :model="formData" inline> <el-form class="ls-form" :model="formData" inline>
<el-form-item label="管理员"> <el-form-item label="管理员">
<el-input <el-input class="w-[280px]" placeholder="请输入" v-model="formData.admin_name" clearable
class="w-[280px]" @keyup.enter="resetPage" />
placeholder="请输入"
v-model="formData.admin_name"
clearable
@keyup.enter="resetPage"
/>
</el-form-item> </el-form-item>
<el-form-item label="访问方式"> <el-form-item label="访问方式">
<el-select class="w-[280px]" v-model="formData.type" placeholder="请选择"> <el-select class="w-[280px]" v-model="formData.type" placeholder="请选择">
<el-option <el-option v-for="(item, index) in visitType" :key="index" :label="item.label"
v-for="(item, index) in visitType" :value="item.value" />
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="来源IP"> <el-form-item label="来源IP">
<el-input <el-input class="w-[280px]" placeholder="请输入" v-model="formData.ip" clearable
class="w-[280px]" @keyup.enter="resetPage" />
placeholder="请输入"
v-model="formData.ip"
clearable
@keyup.enter="resetPage"
/>
</el-form-item> </el-form-item>
<el-form-item label="访问时间"> <el-form-item label="访问时间">
<daterange-picker <daterange-picker v-model:startTime="formData.start_time" v-model:endTime="formData.end_time" />
v-model:startTime="formData.start_time"
v-model:endTime="formData.end_time"
/>
</el-form-item> </el-form-item>
<el-form-item label="访问链接"> <el-form-item label="访问链接">
<el-input <el-input class="w-[280px]" placeholder="请输入" v-model="formData.url" clearable
class="w-[280px]" @keyup.enter="resetPage" />
placeholder="请输入"
v-model="formData.url"
clearable
@keyup.enter="resetPage"
/>
</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>
<export-data <export-data class="ml-2.5" :fetch-fun="systemLogLists" :params="formData" :page-size="pager.size" />
class="ml-2.5"
:fetch-fun="systemLogLists"
:params="formData"
:page-size="pager.size"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>