|
@@ -0,0 +1,484 @@
|
|
|
|
+<script setup lang="ts">
|
|
|
|
+import {
|
|
|
|
+ verifyFormColumns,
|
|
|
|
+ ContractFormType,
|
|
|
|
+ useTablePublic,
|
|
|
|
+ columnsRecoveries,
|
|
|
|
+ labelsRecoveries,
|
|
|
|
+ columnsInvoice,
|
|
|
|
+ labelsInvoice
|
|
|
|
+} from '@/hooks/useTablePublic'
|
|
|
|
+import {
|
|
|
|
+ Storehouse_Contract_Get,
|
|
|
|
+ Storehouse_Contract_Add,
|
|
|
|
+ Storehouse_Contract_Edit,
|
|
|
|
+ Storehouse_Contract_Gen_Number
|
|
|
|
+} from '@/api/storehouse/index'
|
|
|
|
+
|
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
|
+import TableDetail from './TableDetail.vue'
|
|
|
|
+import { GlobalStore } from '@/stores/index'
|
|
|
|
+import { ref, reactive, nextTick } from 'vue'
|
|
|
|
+import Drawer from '@/components/Drawer/index.vue'
|
|
|
|
+import { Delete } from '@element-plus/icons-vue'
|
|
|
|
+import Upload from '@/components/Upload/index.vue'
|
|
|
|
+import ImageCom from '@/components/Image/index.vue'
|
|
|
|
+import type { FormInstance, FormRules } from 'element-plus'
|
|
|
|
+import ContractUser from '@/views/storehouse/outStock/receiveUser.vue'
|
|
|
|
+import VerifyProject from './VerifyProject.vue'
|
|
|
|
+
|
|
|
|
+const isNew = ref(true)
|
|
|
|
+const isProduct = ref(false)
|
|
|
|
+const tableData = ref<any[]>([])
|
|
|
|
+let selectProductData: any[] = []
|
|
|
|
+const globalStore = GlobalStore()
|
|
|
|
+const formLabelWidth = ref('120px')
|
|
|
|
+const { resetForm } = useTablePublic()
|
|
|
|
+const ruleFormRef = ref<FormInstance>()
|
|
|
|
+const contractNumberLoading = ref(false)
|
|
|
|
+const User_tokey = globalStore.GET_User_tokey
|
|
|
|
+const drawerRef = ref<InstanceType<typeof Drawer> | null>(null)
|
|
|
|
+const uploadRef = ref<InstanceType<typeof Upload> | null>(null)
|
|
|
|
+const receiveUserdialog = ref<InstanceType<typeof ContractUser> | null>(null)
|
|
|
|
+const RecoveriesRef = ref<InstanceType<typeof TableDetail> | null>(null)
|
|
|
|
+const InvoiceRef = ref<InstanceType<typeof TableDetail> | null>(null)
|
|
|
|
+
|
|
|
|
+const validate_T_product = (rule: any, value: any, callback: any) => {
|
|
|
|
+ if (value === '') {
|
|
|
|
+ callback(new Error('请选择产品明细'))
|
|
|
|
+ } else if (value.includes(undefined)) {
|
|
|
|
+ callback(new Error('请填写产品数量'))
|
|
|
|
+ } else {
|
|
|
|
+ callback()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const rules = reactive<FormRules>({
|
|
|
|
+ T_number: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
|
|
|
|
+ T_customer: [{ required: true, message: '请输入客户名称', trigger: 'blur' }],
|
|
|
|
+ T_type: [{ required: true, message: '请选择合同类型', trigger: 'blur' }],
|
|
|
|
+ T_product: [{ validator: validate_T_product, trigger: 'blur' }],
|
|
|
|
+ T_money: [{ required: true, message: '请输入合同金额', trigger: 'blur' }],
|
|
|
|
+ T_date: [{ required: true, message: '请选择签订时间', trigger: 'blur' }],
|
|
|
|
+ T_submit: [{ required: true, message: '请选择合同负责人', trigger: 'change' }],
|
|
|
|
+ T_submit_name: [{ required: true, message: '请输入项目名称', trigger: 'blur' }]
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+const callbackDrawer = (done: () => void) => {
|
|
|
|
+ closeCancle()
|
|
|
|
+ done()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 父级方法
|
|
|
|
+const emit = defineEmits<{ (event: 'onTableList'): void }>()
|
|
|
|
+
|
|
|
|
+const form = reactive<ContractFormType>({
|
|
|
|
+ T_uuid: '',
|
|
|
|
+ T_number: '',
|
|
|
|
+ T_customer: '',
|
|
|
|
+ T_product: '',
|
|
|
|
+ T_money: '',
|
|
|
|
+ T_discount: '',
|
|
|
|
+ T_date: '',
|
|
|
|
+ T_remark: '',
|
|
|
|
+ T_pdf: '',
|
|
|
|
+ T_submit: '',
|
|
|
|
+ T_recoveries: '',
|
|
|
|
+ T_invoice: '',
|
|
|
|
+ T_submit_name: '',
|
|
|
|
+ T_start_date: '',
|
|
|
|
+ T_end_date: ''
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+const openDrawer = (type: string, row?: any) => {
|
|
|
|
+ isNew.value = type === 'new' ? true : false
|
|
|
|
+ if (!isNew.value) {
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ editDataEcho(row)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ drawerRef.value?.openDrawer()
|
|
|
|
+}
|
|
|
|
+// edit data echo
|
|
|
|
+const editDataEcho = async (row: any) => {
|
|
|
|
+ form.T_uuid = row.T_submit
|
|
|
|
+ form.T_pdf = row.T_pdf
|
|
|
|
+ form.T_date = row.T_date
|
|
|
|
+ form.T_money = row.T_money
|
|
|
|
+ form.T_submit = row.T_submit_name
|
|
|
|
+ form.T_number = row.T_number
|
|
|
|
+ form.T_customer = row.T_customer
|
|
|
|
+
|
|
|
|
+ const res: any = await Storehouse_Contract_Get({
|
|
|
|
+ User_tokey,
|
|
|
|
+ T_number: row.T_number
|
|
|
|
+ })
|
|
|
|
+ if (res.Code === 200) {
|
|
|
|
+ const { T_Product, T_invoice, T_recoveries, T_remark } = res.Data
|
|
|
|
+ form.T_remark = T_remark
|
|
|
|
+ T_Product &&
|
|
|
|
+ (tableData.value = T_Product.map((item: any) => {
|
|
|
|
+ item.Id = item.T_product_id
|
|
|
|
+ item.T_img = item.T_product_img
|
|
|
|
+ item.T_name = item.T_product_name
|
|
|
|
+ item.T_class_name = item.T_product_class_name
|
|
|
|
+ item.T_model = item.T_product_model
|
|
|
|
+ item.T_spec = item.T_product_spec
|
|
|
|
+ item.T_relation_sn = item.T_product_relation_sn
|
|
|
|
+ item.count = item.T_product_total
|
|
|
|
+ return item
|
|
|
|
+ }))
|
|
|
|
+ selectProductData = tableData.value
|
|
|
|
+ T_invoice && InvoiceRef.value?.setMoneyDeatil(T_invoice)
|
|
|
|
+ T_recoveries && RecoveriesRef.value?.setMoneyDeatil(T_recoveries)
|
|
|
|
+ blurHandle()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const blurHandle = () => {
|
|
|
|
+ // form.T_product
|
|
|
|
+ form.T_product = []
|
|
|
|
+ tableData.value = tableData.value.map(item => {
|
|
|
|
+ if (!item.count) {
|
|
|
|
+ form.T_product.push(undefined)
|
|
|
|
+ } else {
|
|
|
|
+ form.T_product.push(`${item.Id},${item.count}|`)
|
|
|
|
+ item.T_total = item.count * item.T_price
|
|
|
|
+ }
|
|
|
|
+ return item
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+const deleteProduct = (row: any) => {
|
|
|
|
+ tableData.value = tableData.value.filter(item => item.Id !== row.Id)
|
|
|
|
+
|
|
|
|
+ // 设置产品的选中
|
|
|
|
+ drawerProductRef.value?.selectTableChange(row)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const getMontageStr = (arr: any[], value1: string, value2: string): string => {
|
|
|
|
+ let str = ''
|
|
|
|
+ arr.forEach(item => {
|
|
|
|
+ str += `${item[value1]},${item[value2]}|`
|
|
|
|
+ })
|
|
|
|
+ return str
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const getFomrParams = () => {
|
|
|
|
+ const recoveriesData = RecoveriesRef.value?.getMoneyDeatil()
|
|
|
|
+ const invoiceData = InvoiceRef.value?.getMoneyDeatil()
|
|
|
|
+ if (recoveriesData?.length) form.T_recoveries = getMontageStr(recoveriesData, 'T_date', 'T_money')
|
|
|
|
+ if (invoiceData?.length) form.T_invoice = getMontageStr(invoiceData, 'T_date', 'T_money')
|
|
|
|
+ const product = getMontageStr(tableData.value, 'Id', 'count')
|
|
|
|
+ const params = {
|
|
|
|
+ ...form,
|
|
|
|
+ User_tokey,
|
|
|
|
+ T_submit: form.T_uuid,
|
|
|
|
+ T_product: product
|
|
|
|
+ }
|
|
|
|
+ return params
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const AddContract = (formEl: FormInstance | undefined) => {
|
|
|
|
+ if (!formEl) return
|
|
|
|
+ formEl.validate(async valid => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ let res: any = {}
|
|
|
|
+ const params = getFomrParams()
|
|
|
|
+ if (isNew.value) {
|
|
|
|
+ res = await Storehouse_Contract_Add({ ...params, T_customer_id: props.verify_customer_id })
|
|
|
|
+ } else {
|
|
|
|
+ res = await Storehouse_Contract_Edit({ ...params, T_customer_id: props.verify_customer_id })
|
|
|
|
+ }
|
|
|
|
+ if (res.Code === 200) {
|
|
|
|
+ ElMessage.success(`${isNew.value ? '添加' : '修改'}合同成功!!`)
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ closeCancle()
|
|
|
|
+ emit('onTableList')
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ } else false
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const drawerProductRef = ref<InstanceType<typeof VerifyProject> | null>(null)
|
|
|
|
+/**
|
|
|
|
+ * 添加产品
|
|
|
|
+ */
|
|
|
|
+const AddProductionDetailed = () => {
|
|
|
|
+ isProduct.value = true
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ drawerProductRef.value?.openDrawer()
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+/**
|
|
|
|
+ * 产品选择 是否
|
|
|
|
+ */
|
|
|
|
+const ProductselectionChange = (row: any) => {
|
|
|
|
+ const index = tableData.value.findIndex((item: any) => item.Id === row.Id)
|
|
|
|
+ if (index === -1) {
|
|
|
|
+ row.count = ''
|
|
|
|
+ tableData.value.push(row)
|
|
|
|
+ } else {
|
|
|
|
+ tableData.value.splice(index, 1)
|
|
|
|
+ }
|
|
|
|
+ getSummaries({ columns: verifyFormColumns, data: tableData.value })
|
|
|
|
+}
|
|
|
|
+/**
|
|
|
|
+ * 全选
|
|
|
|
+ */
|
|
|
|
+const ProductSelectionAllChange = (selection: any[]) => (tableData.value = selection)
|
|
|
|
+/**
|
|
|
|
+ * 生成合同编号
|
|
|
|
+ */
|
|
|
|
+const getContractNumber = async () => {
|
|
|
|
+ contractNumberLoading.value = true
|
|
|
|
+ const res: any = await Storehouse_Contract_Gen_Number({ User_tokey }).catch(() => {
|
|
|
|
+ contractNumberLoading.value = false
|
|
|
|
+ })
|
|
|
|
+ if (res.Code === 200) {
|
|
|
|
+ contractNumberLoading.value = false
|
|
|
|
+ form.T_number = res.Data
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const getSummaries = (param: any) => {
|
|
|
|
+ const { columns, data } = param
|
|
|
|
+ const sums: string[] = []
|
|
|
|
+ columns.forEach((column: any, index: number) => {
|
|
|
|
+ if (index === 0) {
|
|
|
|
+ sums[index] = '合计'
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (index === 1) {
|
|
|
|
+ sums[index] = ''
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ const values = data.map((item: any) => Number(item[column.property]))
|
|
|
|
+ if (!values.every((value: any) => Number.isNaN(value))) {
|
|
|
|
+ sums[index] = values.reduce((prev: any, curr: any) => {
|
|
|
|
+ const value = Number(curr)
|
|
|
|
+ if (!Number.isNaN(value)) {
|
|
|
|
+ return prev + curr
|
|
|
|
+ } else {
|
|
|
|
+ return prev
|
|
|
|
+ }
|
|
|
|
+ }, 0)
|
|
|
|
+ if (index === 8) {
|
|
|
|
+ form.T_money = sums[index]
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ sums[index] = ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ return sums
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 合同负责人
|
|
|
|
+ */
|
|
|
|
+const selectApprover = () => receiveUserdialog.value?.openDrawer()
|
|
|
|
+const getReceiveInfo = ({ T_uuid, T_name }: { T_uuid: string; T_name: string }) => {
|
|
|
|
+ form.T_submit = T_name
|
|
|
|
+ form.T_uuid = T_uuid
|
|
|
|
+}
|
|
|
|
+const closeCancle = () => {
|
|
|
|
+ resetForm(ruleFormRef.value)
|
|
|
|
+ isNew.value = isProduct.value = false
|
|
|
|
+ tableData.value = []
|
|
|
|
+ selectProductData = []
|
|
|
|
+ drawerProductRef.value?.clearSelection()
|
|
|
|
+ RecoveriesRef.value?.clearDetail()
|
|
|
|
+ InvoiceRef.value?.clearDetail()
|
|
|
|
+ drawerRef.value?.closeDrawer()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const props = defineProps<{ verify_customer_id: string }>()
|
|
|
|
+
|
|
|
|
+defineExpose({
|
|
|
|
+ openDrawer
|
|
|
|
+})
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<template>
|
|
|
|
+ <div class="verify-form">
|
|
|
|
+ <Drawer ref="drawerRef" :handleClose="callbackDrawer" size="80%">
|
|
|
|
+ <template #header="{ params }">
|
|
|
|
+ <h4 :id="params.titleId" :class="params.titleClass">{{ isNew ? '添加' : '编辑' }} - 合同</h4>
|
|
|
|
+ </template>
|
|
|
|
+ <el-form ref="ruleFormRef" :model="form" :rules="rules">
|
|
|
|
+ <el-form-item label="合同编号:" :label-width="formLabelWidth" prop="T_number">
|
|
|
|
+ <div>
|
|
|
|
+ <el-input v-model="form.T_number" :disabled="!isNew" placeholder="请输入合同编号" class="w-50" />
|
|
|
|
+ <el-button :loading="contractNumberLoading" :disabled="!isNew" type="primary" @click="getContractNumber"
|
|
|
|
+ >生成合同编号</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button type="primary" @click="AddProductionDetailed">
|
|
|
|
+ <el-icon><CirclePlusFilled /></el-icon><span style="margin-left: 6px">验证</span>
|
|
|
|
+ </el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="产品明细:" :label-width="formLabelWidth" prop="T_product">
|
|
|
|
+ <el-table
|
|
|
|
+ border
|
|
|
|
+ show-summary
|
|
|
|
+ :summary-method="getSummaries"
|
|
|
|
+ :data="tableData"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ :header-cell-style="{ height: '50px' }"
|
|
|
|
+ >
|
|
|
|
+ <template v-for="item in verifyFormColumns" :key="item.prop">
|
|
|
|
+ <el-table-column v-bind="item" v-if="item.fixed !== 'right'">
|
|
|
|
+ <template #header v-if="item.prop === 'count'">
|
|
|
|
+ <span style="color: red">*数量</span>
|
|
|
|
+ </template>
|
|
|
|
+ <template #default="{ row }" v-if="item.prop === item.name">
|
|
|
|
+ <el-input
|
|
|
|
+ v-if="item.prop === 'count'"
|
|
|
|
+ v-model.number="row.count"
|
|
|
|
+ type="text"
|
|
|
|
+ autocomplete="off"
|
|
|
|
+ @blur="blurHandle"
|
|
|
|
+ />
|
|
|
|
+ <ImageCom v-if="item.prop === 'T_img'" :src="row.T_img" />
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column v-bind="item" v-if="item.fixed === 'right'">
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
+ <el-button link type="danger" size="small" :icon="Delete" @click="deleteProduct(row)">删除</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="合同金额:" :label-width="formLabelWidth" prop="T_money">
|
|
|
|
+ <el-input v-model="form.T_money" type="text" autocomplete="off" placeholder="请输入合同金额" class="w-50" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="优惠金额:" :label-width="formLabelWidth" prop="T_discount">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="form.T_discount"
|
|
|
|
+ type="text"
|
|
|
|
+ autocomplete="off"
|
|
|
|
+ placeholder="请输入合同金额"
|
|
|
|
+ class="w-50"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="签订时间:" :label-width="formLabelWidth" prop="T_date">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ class="my-date-picker"
|
|
|
|
+ style="width: 21.5rem"
|
|
|
|
+ v-model="form.T_date"
|
|
|
|
+ type="date"
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
+ format="YYYY-MM-DD"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="起始时间:" :label-width="formLabelWidth" prop="T_start_date">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ class="my-date-picker"
|
|
|
|
+ style="width: 21.5rem"
|
|
|
|
+ v-model="form.T_start_date"
|
|
|
|
+ type="date"
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
+ format="YYYY-MM-DD"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="终止时间:" :label-width="formLabelWidth" prop="T_end_date">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ class="my-date-picker"
|
|
|
|
+ style="width: 21.5rem"
|
|
|
|
+ v-model="form.T_end_date"
|
|
|
|
+ type="date"
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
+ format="YYYY-MM-DD"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="合同负责人:" :label-width="formLabelWidth" prop="T_submit">
|
|
|
|
+ <el-input v-model="form.T_submit" placeholder="请选择合同负责人" class="w-50" @focus="selectApprover" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="项目:" :label-width="formLabelWidth" prop="T_submit_name">
|
|
|
|
+ <el-input v-model="form.T_submit_name" placeholder="请输入项目名称" class="w-50" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="合同备注:" :label-width="formLabelWidth" prop="T_remark">
|
|
|
|
+ <el-input
|
|
|
|
+ class="w-50"
|
|
|
|
+ v-model="form.T_remark"
|
|
|
|
+ :autosize="{ minRows: 4, maxRows: 6 }"
|
|
|
|
+ type="textarea"
|
|
|
|
+ placeholder="请输入备注信息"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="上传附件:" :label-width="formLabelWidth" prop="T_pdf">
|
|
|
|
+ <Upload
|
|
|
|
+ v-model="form.T_pdf"
|
|
|
|
+ class="w-50"
|
|
|
|
+ ref="uploadRef"
|
|
|
|
+ :limit="1"
|
|
|
|
+ successText="文件上传成功!!"
|
|
|
|
+ errorText="文件上传失败"
|
|
|
|
+ accept=".pdf"
|
|
|
|
+ listType="text"
|
|
|
|
+ >
|
|
|
|
+ <el-button type="primary">上传文件</el-button>
|
|
|
|
+ <template #tip> 只能上传pdf格式文件!!</template>
|
|
|
|
+ </Upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="回款明细:" :label-width="formLabelWidth" prop="T_recoveries">
|
|
|
|
+ <TableDetail ref="RecoveriesRef" :columns="columnsRecoveries" title="回款明细" :labels="labelsRecoveries">
|
|
|
|
+ <template #add="{ AddDetail }">
|
|
|
|
+ <el-button type="primary" @click="AddDetail">
|
|
|
|
+ <el-icon><Plus /></el-icon><span style="margin-left: 6px">添加</span>
|
|
|
|
+ </el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </TableDetail>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="开票明细:" :label-width="formLabelWidth" prop="T_invoice">
|
|
|
|
+ <TableDetail ref="InvoiceRef" :columns="columnsInvoice" title="开票明细" :labels="labelsInvoice">
|
|
|
|
+ <template #add="{ AddDetail }">
|
|
|
|
+ <el-button type="primary" @click="AddDetail">
|
|
|
|
+ <el-icon><Plus /></el-icon><span style="margin-left: 6px">添加</span>
|
|
|
|
+ </el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </TableDetail>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <template #footer>
|
|
|
|
+ <div>
|
|
|
|
+ <el-divider border-style="dashed" />
|
|
|
|
+ <div class="btn">
|
|
|
|
+ <el-button @click="closeCancle">取消</el-button>
|
|
|
|
+ <el-button v-if="isNew" color="#626aef" @click="AddContract(ruleFormRef)">提交</el-button>
|
|
|
|
+ <el-button v-else color="#626aef" @click="AddContract(ruleFormRef)">修改</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </Drawer>
|
|
|
|
+ <ContractUser ref="receiveUserdialog" @onUserInfo="getReceiveInfo" title="合同负责人" />
|
|
|
|
+ <VerifyProject
|
|
|
|
+ v-if="isProduct"
|
|
|
|
+ ref="drawerProductRef"
|
|
|
|
+ :selectProductData="selectProductData"
|
|
|
|
+ @ontableData="ProductselectionChange"
|
|
|
|
+ @ontableDataAll="ProductSelectionAllChange"
|
|
|
|
+ ></VerifyProject>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+.verify-form {
|
|
|
|
+ .btn {
|
|
|
|
+ margin-top: 32px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ .el-button {
|
|
|
|
+ padding: 0 32px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .w-50 {
|
|
|
|
+ width: 21.5rem;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|