bug修复
This commit is contained in:
parent
be9fefb9dc
commit
01d777c60f
@ -30,7 +30,7 @@
|
||||
</el-table>
|
||||
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
@ -41,11 +41,18 @@
|
||||
import { usePaging } from "@/hooks/usePaging"
|
||||
import { useDictData } from "@/hooks/useDictOptions"
|
||||
import { apiBidBiddingDecisionLists } from '@/api/bid_bidding_decision'
|
||||
import { defineEmits } from "vue"
|
||||
import { defineEmits, defineProps } from "vue"
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
custom_name: ''
|
||||
custom_name: '',
|
||||
project_id: props.project_id
|
||||
|
||||
});
|
||||
|
||||
// 获取字典数据
|
||||
|
@ -65,7 +65,8 @@
|
||||
<div v-for="(item, i) in deparmetlist" :key="i">
|
||||
<div class="lad">{{ i }}</div>
|
||||
<div class="lads">
|
||||
<div class="flex " v-for="(items, k) in item" style="justify-content: space-between;" @click="deparmetclck(items)">
|
||||
<div class="flex " v-for="(items, k) in item" style="justify-content: space-between;"
|
||||
@click="deparmetclck(items)">
|
||||
<div>{{ items.name }}</div>
|
||||
<div class="Collapsebj">{{ items.admin_num }}</div>
|
||||
</div>
|
||||
@ -102,7 +103,8 @@
|
||||
<div v-if="isCollapse == 3">
|
||||
<div v-if="isshow1">
|
||||
<div class="lads ">
|
||||
<div class="flex " v-for="(item, j) in jobslist" :key="j" style="justify-content: space-between;" @click="gwclck(item)">
|
||||
<div class="flex " v-for="(item, j) in jobslist" :key="j"
|
||||
style="justify-content: space-between;" @click="gwclck(item)">
|
||||
<div>{{ item.name }}</div>
|
||||
<div class="Collapsebj">{{ item.admin_num }}</div>
|
||||
</div>
|
||||
@ -216,7 +218,6 @@ const getlist = () => {
|
||||
//获取所有部门
|
||||
const deparmet = () => {
|
||||
getAllDept().then((res) => {
|
||||
console.log(res)
|
||||
Object.assign(deparmetlist, res)
|
||||
})
|
||||
}
|
||||
@ -236,7 +237,6 @@ const deparmetclck = (item: { id: any }) => {
|
||||
|
||||
const Jobs = () => {
|
||||
getAllJobs().then((res) => {
|
||||
console.log(res)
|
||||
Object.assign(jobslist, res)
|
||||
})
|
||||
}
|
||||
|
@ -253,3 +253,97 @@ export const toChinesNum = (money: any) => {
|
||||
}
|
||||
return chineseStr
|
||||
}
|
||||
|
||||
|
||||
// 转换每个小节的函数
|
||||
function convertSection(section) {
|
||||
const cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
|
||||
const cnIntUnits = ["", "拾", "佰", "仟"];
|
||||
|
||||
|
||||
let sectionStr = "";
|
||||
let unitPos = 0; // 记录当前位置的单位
|
||||
let zero = true; // 连续的零
|
||||
|
||||
while (section > 0) {
|
||||
let num = section % 10;
|
||||
if (num === 0) {
|
||||
if (!zero) {
|
||||
zero = true;
|
||||
sectionStr = cnNums[num] + sectionStr;
|
||||
}
|
||||
} else {
|
||||
zero = false;
|
||||
sectionStr = cnNums[num] + cnIntUnits[unitPos] + sectionStr;
|
||||
}
|
||||
|
||||
section = Math.floor(section / 10);
|
||||
unitPos++;
|
||||
}
|
||||
|
||||
return sectionStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数字人民币转成中文大写
|
||||
* @params num
|
||||
*/
|
||||
|
||||
export const convertToChinese = (num: any) => {
|
||||
const cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
|
||||
const cnIntUnits = ["", "拾", "佰", "仟"];
|
||||
const cnDecUnits = ["角", "分"];
|
||||
const cnInteger = "整";
|
||||
const cnIntLast = "元";
|
||||
const cnIntWan = "万";
|
||||
const cnIntYi = "亿";
|
||||
|
||||
let integerNum = Math.floor(num); // 整数部分
|
||||
let decimalNum = Math.round((num - integerNum) * 100); // 小数部分
|
||||
let cnIntStr = ""; // 中文整数字符串
|
||||
let cnDecStr = ""; // 中文小数字符串
|
||||
|
||||
// 处理亿位
|
||||
let yuan = Math.floor(integerNum / 100000000);
|
||||
if (yuan > 0) {
|
||||
cnIntStr += convertSection(yuan) + cnIntYi;
|
||||
integerNum %= 100000000;
|
||||
}
|
||||
|
||||
// 处理万位
|
||||
let wan = Math.floor(integerNum / 10000);
|
||||
if (wan > 0) {
|
||||
cnIntStr += convertSection(wan) + cnIntWan;
|
||||
integerNum %= 10000;
|
||||
}
|
||||
|
||||
// 处理其他部分
|
||||
if (integerNum === 0) {
|
||||
cnIntStr += cnNums[0];
|
||||
} else {
|
||||
cnIntStr += convertSection(integerNum);
|
||||
}
|
||||
|
||||
// 处理小数部分
|
||||
if (decimalNum === 0) {
|
||||
cnDecStr = cnInteger;
|
||||
} else {
|
||||
let decIndex = 0;
|
||||
while (decimalNum > 0 && decIndex < cnDecUnits.length) {
|
||||
let num = decimalNum % 10;
|
||||
if (num !== 0) {
|
||||
cnDecStr += cnNums[num] + cnDecUnits[decIndex];
|
||||
}
|
||||
decimalNum = Math.floor(decimalNum / 10);
|
||||
decIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
return cnIntStr + cnIntLast + cnDecStr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -38,6 +38,12 @@
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="formData.bid_company_name" clearable placeholder="请输入投标公司名称" />
|
||||
</el-form-item></el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="投标决策信息" prop="bid_decision_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog2 = true">
|
||||
<el-input v-model="formData.bid_document_no" clearable placeholder="请选择" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="购买人员" prop="buyer" @click="userclick">
|
||||
<el-input v-model="buyer_name" clearable placeholder="请输入购买人员" />
|
||||
@ -62,7 +68,7 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="购买标书时间" prop="buy_date">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.buy_date" clearable type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择购买标书时间">
|
||||
value-format="YYYY-MM-DD" placeholder="选择购买标书时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -122,6 +128,11 @@
|
||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
||||
<projectTable @customEvent="customEvent"></projectTable>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog v-model="showDialog2" title="选择投标决策" width="70%">
|
||||
<biddingDecisionSelector @customEvent="customEvent2" :project_id="formData.project_id">
|
||||
</biddingDecisionSelector>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -130,6 +141,7 @@ import type { FormInstance } from 'element-plus'
|
||||
import reviewprocess from '@/components/reviewprocess/index.vue'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import personnelselector from '@/components/personnelselector/index.vue'
|
||||
import biddingDecisionSelector from '@/components/biddingDecision/index.vue'
|
||||
|
||||
import projectTable from "@/components/biddingDecision/index.vue"
|
||||
import { apiBidBuyBiddingDocumentAdd, apiBidBuyBiddingDocumentDetail } from '@/api/bid_buy_bidding_document'
|
||||
@ -156,29 +168,9 @@ import { getAll } from '@/api/org/organization'
|
||||
import configs from "@/config"
|
||||
const base_url = configs.baseUrl + configs.urlPrefix
|
||||
import useUserStore from "@/stores/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const formDataannex = reactive([])
|
||||
const showDialog = ref(false)
|
||||
const showDialog2 = ref(false)
|
||||
const buyer_name = ref('')
|
||||
// // 上传文件
|
||||
// const handleAvatarSuccess_four = (
|
||||
// response,
|
||||
// uploadFile
|
||||
// ) => {
|
||||
// if (response.code == 0) {
|
||||
// ElMessage.error(response.msg);
|
||||
// return;
|
||||
// }
|
||||
// formDataannex.push(
|
||||
// { uri: response.data.uri, name: response.data.name }
|
||||
|
||||
// );
|
||||
// };
|
||||
// // 删除上传的文件
|
||||
// const delFileFn = (index: number) => {
|
||||
// formDataannex.splice(index, 1)
|
||||
// }
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑购买标书' : '新增购买标书'
|
||||
@ -186,18 +178,18 @@ const popupTitle = computed(() => {
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
dept_id: '',
|
||||
org_id: '',
|
||||
project_id: '',
|
||||
bid_decision_id: '',
|
||||
bid_document_no: '',
|
||||
invite_tenders_company_name: '',
|
||||
bid_company_name: '',
|
||||
buyer: '',
|
||||
amount: '',
|
||||
buy_date: '',
|
||||
bid_address: '',
|
||||
"org_id": 0,
|
||||
"dept_id": 0,
|
||||
"project_id": 0,
|
||||
"bid_decision_id": 0,
|
||||
bid_decision_code: "",
|
||||
"bid_document_no": "",
|
||||
"invite_tenders_company_name": "",
|
||||
"bid_company_name": "",
|
||||
"buyer": "",
|
||||
"amount": 0,
|
||||
"buy_date": 0,
|
||||
"bid_address": ""
|
||||
})
|
||||
|
||||
//打开弹窗
|
||||
@ -246,9 +238,6 @@ const getlist1 = (id: any) => {
|
||||
}
|
||||
//获取值
|
||||
const customEvent = (e: any) => {
|
||||
|
||||
console.log(e, 'e')
|
||||
|
||||
formData.project_id = e.project_id;
|
||||
matsname.value = e.custom_name
|
||||
project_name.value = e.project_name
|
||||
@ -256,6 +245,13 @@ const customEvent = (e: any) => {
|
||||
showDialog.value = false;
|
||||
};
|
||||
|
||||
const customEvent2 = (e: any) => {
|
||||
console.log(e, 'e')
|
||||
formData.bid_document_no = e.code;
|
||||
formData.bid_decision_id = e.id;
|
||||
showDialog2.value = false;
|
||||
};
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
matsname.value = data.project.person
|
||||
|
@ -26,13 +26,13 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="custom_name" disabled clearable placeholder="系统自动填写" />
|
||||
<el-input v-model="formData.custom_name" disabled clearable placeholder="系统自动填写" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同号" prop="contract_id" @click="showDialog2 = true">
|
||||
<el-input v-model="contract_id" clearable readonly placeholder="系统自动填写" />
|
||||
<el-form-item label="合sd同号" prop="contract_id" @click="showDialog2 = true">
|
||||
<el-input v-model="formData.contract_code" clearable readonly placeholder="系统自动填写" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="12">
|
||||
@ -87,7 +87,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="指定处理人" prop="processed_admin_id" @click="userclick"
|
||||
<el-form-item label="指定处理人" prop="processed_user" @click="userclick"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="processed_admin_name" clearable readonly placeholder="请输入指定处理人" />
|
||||
</el-form-item>
|
||||
@ -149,7 +149,8 @@
|
||||
<customDialog @customEvent="customEvent1"></customDialog>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showDialog2" title="选择销售合同" width="70%">
|
||||
<salescontractDialog @customEvent="customEvent2" contract_type="2"></salescontractDialog>
|
||||
<salescontractDialog @customEvent="customEvent2" contract_type="2" :project_id="formData.project_id">
|
||||
</salescontractDialog>
|
||||
</el-dialog>
|
||||
<personnelselector ref="personnel" @confirm="submituser" type="1"></personnelselector>
|
||||
</div>
|
||||
@ -187,14 +188,12 @@ const processed_admin_name = ref('')
|
||||
const personnel = ref<any>()
|
||||
const formDataannex = reactive([])
|
||||
const customEvent = (e: any) => {
|
||||
// console.log(e)
|
||||
console.log(e)
|
||||
formData.project_id = e.id
|
||||
custom_name.value = e.name
|
||||
project_name.value = e.custom_name
|
||||
formData.custom_name = e.name
|
||||
project_name.value = e.name
|
||||
project_code.value = e.project_code
|
||||
showDialog.value = false;
|
||||
|
||||
|
||||
};
|
||||
const customEvent1 = (e: any) => {
|
||||
formData.custom_id = e.id
|
||||
@ -204,8 +203,8 @@ const customEvent1 = (e: any) => {
|
||||
|
||||
};
|
||||
const customEvent2 = (e: any) => {
|
||||
console.log(e)
|
||||
|
||||
formData.contract_id = e.id
|
||||
formData.contract_code = e.contract_code
|
||||
showDialog2.value = false;
|
||||
|
||||
|
||||
@ -250,7 +249,7 @@ const userclick = () => {
|
||||
}
|
||||
//确认
|
||||
const submituser = (e: any) => {
|
||||
formData.processed_admin_id = e.id;
|
||||
formData.processed_user = e.id;
|
||||
processed_admin_name.value = e.name;
|
||||
}
|
||||
//验证
|
||||
@ -307,12 +306,15 @@ const formData = reactive({
|
||||
classification: '',
|
||||
urgency: '',
|
||||
receiver: '',
|
||||
processed_admin_id: '',
|
||||
processed_user: '',
|
||||
name: '',
|
||||
description: '',
|
||||
notes: '',
|
||||
annex: [],
|
||||
status: '',
|
||||
contract_code: "",
|
||||
contract_id: "",
|
||||
custom_name: ""
|
||||
})
|
||||
|
||||
|
||||
@ -364,6 +366,7 @@ const handleSubmit = async () => {
|
||||
}
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
data.date = data.date.substring(0, 10)
|
||||
await apiCustomServiceAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
|
@ -4,25 +4,29 @@
|
||||
<el-form class="mb-[-16px]" :model="queryParams" label-width="auto" inline>
|
||||
<el-form-item label="项目" prop="project_id">
|
||||
<el-select class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="请选择项目">
|
||||
<el-option v-for="(item, index) in projectList" :key="index" :label="item.name" :value="parseInt(item.id)" />
|
||||
<el-option v-for="(item, index) in projectList" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户" prop="custom_id">
|
||||
<el-select class="w-[280px]" v-model="queryParams.custom_id" clearable placeholder="请选择项目">
|
||||
<el-option v-for="(item, index) in customList" :key="index" :label="item.name" :value="parseInt(item.id)" />
|
||||
<el-option v-for="(item, index) in customList" :key="index" :label="item.name"
|
||||
:value="parseInt(item.id)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="紧急程度" prop="urgency">
|
||||
<el-select class="w-[280px]" v-model="queryParams.urgency" clearable placeholder="请选择紧急程度">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option v-for="(item, index) in dictData.urgency" :key="index" :label="item.name" :value="item.value" />
|
||||
<el-option v-for="(item, index) in dictData.urgency" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="分类" prop="classification">
|
||||
<el-select class="w-[280px]" v-model="queryParams.classification" clearable placeholder="请选择紧急程度">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option v-for="(item, index) in dictData.classification" :key="index" :label="item.name" :value="item.value" />
|
||||
<el-option v-for="(item, index) in dictData.classification" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@ -62,8 +66,6 @@
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="序号" type="index" width="55" />
|
||||
<el-table-column label="流程编号" prop="" />
|
||||
<el-table-column label="流程步骤" prop="" />
|
||||
<el-table-column label="客户名称" prop="custom_name" />
|
||||
<el-table-column label="项目名称" prop="project_name" />
|
||||
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
|
||||
@ -82,7 +84,8 @@
|
||||
<el-table-column label="评分" prop="score" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="110" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['custom_service.custom_service/edit']" type="primary" link @click="handleEdit(row)" v-if="row.is_solve != 1">
|
||||
<el-button v-perms="['custom_service.custom_service/edit']" type="primary" link
|
||||
@click="handleEdit(row)" v-if="row.is_solve != 1">
|
||||
处理
|
||||
</el-button>
|
||||
<!-- <el-button v-perms="['custom_service.custom_service/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
@ -95,12 +98,13 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
<handle-popup v-if="showHandle" ref="handleRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
||||
<handle-popup v-if="showHandle" ref="handleRef" :dict-data="dictData" @success="getLists"
|
||||
@close="showEdit = false" />
|
||||
<detail-popup v-if="showDtail" ref="detailRef" :dict-data="dictData" @close="showDtail = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
@ -33,7 +33,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="提交时间" prop="submission_time">
|
||||
<el-date-picker class="flex-1 !flex" v-model="formData.submission_time" clearable type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择提交时间">
|
||||
value-format="YYYY-MM-DD" placeholder="选择提交时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
@ -214,9 +214,8 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
|
||||
//@ts-ignore
|
||||
formData.submission_time = timeFormat(formData.submission_time, 'yyyy-mm-dd hh:MM:ss')
|
||||
formData.submission_time = timeFormat(formData.submission_time, 'yyyy-mm-dd')
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
@ -232,6 +231,7 @@ const handleSubmit = async () => {
|
||||
if (formDataannex.length > 0) {
|
||||
formData.annex = formDataannex.map((item) => item.uri)
|
||||
}
|
||||
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
mode.value == 'edit'
|
||||
|
@ -8,7 +8,7 @@
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="序号" type="index" width="55" />
|
||||
<el-table-column label="客户" prop="采购申请单号" show-overflow-tooltip />
|
||||
<el-table-column label="客户" prop="custom_name" show-overflow-tooltip />
|
||||
|
||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||
|
||||
@ -31,13 +31,15 @@
|
||||
|
||||
<el-table-column label="操作" width="160" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['InvoicingRequests.InvoicingRequests/edit']" type="primary" link @click="handleEdit(row)">
|
||||
<el-button v-perms="['InvoicingRequests.InvoicingRequests/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<!-- <el-button v-perms="['InvoicingRequests.InvoicingRequests/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button> -->
|
||||
<el-button v-perms="['InvoicingRequests.InvoicingRequests/detail']" link @click="handledetail(row)">
|
||||
<el-button v-perms="['InvoicingRequests.InvoicingRequests/detail']" link
|
||||
@click="handledetail(row)">
|
||||
详情
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
<myTable :baseData="baseData1"></myTable>
|
||||
<myTable :baseData="baseData2"></myTable>
|
||||
<myTable :baseData="baseData3"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
@ -8,29 +11,80 @@
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
|
||||
import { apireturnedLists } from '@/api/remittance'
|
||||
import { apireturnedrecordLists } from '@/api/recordsPayment'
|
||||
import { apirefundapplyLists } from '@/api/refund'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: subpackagdetailLists,
|
||||
tit: "竞争对手",
|
||||
fetchFun: apiinvoiceapplyLists,
|
||||
tit: "开票记录",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '工作类型', prop: 'work_type' },
|
||||
{ label: '工作内容', prop: 'work_content' },
|
||||
{ label: '项目特征', prop: 'project_features' },
|
||||
{ label: '单位', prop: 'unit' },
|
||||
{ label: '预算工作量', prop: 'num' },
|
||||
{ label: '单价', prop: 'price' },
|
||||
{ label: '开票单号', prop: 'invoicing_code' },
|
||||
{ label: '合同编号', prop: 'contract_code' },
|
||||
{ label: '合同名称', prop: 'contract_name' },
|
||||
{ label: '开票日期', prop: 'invoicing_date' },
|
||||
{ label: '期次', prop: 'period' },
|
||||
{ label: '发票类型', prop: 'invoice_type' },
|
||||
{ label: '发票编号', prop: 'tax' },
|
||||
{ label: '开票金额(含税)', prop: 'amount_including_tax' },
|
||||
{ label: '税率', prop: 'tax_rate' },
|
||||
{ label: '税额', prop: 'tax_amount' },
|
||||
|
||||
]
|
||||
})
|
||||
const baseData1 = reactive({
|
||||
fetchFun: apireturnedLists,
|
||||
tit: "回款计划",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '合同编号', prop: 'contract_code' },
|
||||
{ label: '合同名称', prop: 'contract_name' },
|
||||
{ label: '期次', prop: 'period' },
|
||||
{ label: '计划日期', prop: 'return_date' },
|
||||
{ label: '状态', prop: 'return_status' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已分包量', prop: 'has_subcontract_num' },
|
||||
{ label: '剩余工作量', prop: 'residue_num' },
|
||||
{ label: '已回款', prop: 'has_return_amount' },
|
||||
{ label: '未回款', prop: 'not_return_amount' },
|
||||
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
const baseData2 = reactive({
|
||||
fetchFun: apireturnedrecordLists,
|
||||
tit: "回款记录",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '合同名称', prop: 'contract_name' },
|
||||
{ label: '合同编号', prop: 'contract_code' },
|
||||
{ label: '期次', prop: 'period' },
|
||||
{ label: '日期', prop: 'return_date' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '收款人', prop: 'receiver' },
|
||||
|
||||
|
||||
]
|
||||
})
|
||||
const baseData3 = reactive({
|
||||
fetchFun: apirefundapplyLists,
|
||||
tit: "退款记录",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '退款单号', prop: 'refund_code' },
|
||||
{ label: '合同编号', prop: 'contract_code' },
|
||||
{ label: '合同名称', prop: 'contract_name' },
|
||||
{ label: '退款日期', prop: 'refund_date' },
|
||||
{ label: '退款原因', prop: 'reason' },
|
||||
{ label: '退款方式', prop: 'refund_type' },
|
||||
{ label: '退款金额', prop: 'amount' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
</script>
|
35
src/views/project/components/documentation.vue
Normal file
35
src/views/project/components/documentation.vue
Normal file
@ -0,0 +1,35 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: subpackagdetailLists,
|
||||
tit: "竞争对手",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '工作类型', prop: 'work_type' },
|
||||
{ label: '工作内容', prop: 'work_content' },
|
||||
{ label: '项目特征', prop: 'project_features' },
|
||||
{ label: '单位', prop: 'unit' },
|
||||
{ label: '预算工作量', prop: 'num' },
|
||||
{ label: '单价', prop: 'price' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已分包量', prop: 'has_subcontract_num' },
|
||||
{ label: '剩余工作量', prop: 'residue_num' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
</script>
|
89
src/views/project/components/payment.vue
Normal file
89
src/views/project/components/payment.vue
Normal file
@ -0,0 +1,89 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
<myTable :baseData="baseData1"></myTable>
|
||||
<myTable :baseData="baseData2"></myTable>
|
||||
<myTable :baseData="baseData3"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { apifinancereceiptLists } from '@/api/receiptrecord'
|
||||
import { paymentplanLists } from '@/api/paymentplan'
|
||||
import { paymentapplyLists } from '@/api/paymentrequest'
|
||||
import { apiFinancerefundLists } from '@/api/refundrecord'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: apifinancereceiptLists,
|
||||
tit: "收票记录",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '开票日期', prop: 'invoicing_date' },
|
||||
{ label: '提交人', prop: 'commitor' },
|
||||
{ label: '发票类型', prop: 'invoice_type' },
|
||||
{ label: '发票编号', prop: 'invoice_no' },
|
||||
{ label: '发票税率(%)', prop: 'invoice_tax_rate' },
|
||||
{ label: '发票金额', prop: 'invoice_amount' },
|
||||
{ label: '不含税金额', prop: 'amount_excluding_tax' },
|
||||
{ label: '税额', prop: 'tax_amount' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData1 = reactive({
|
||||
fetchFun: paymentplanLists,
|
||||
tit: "付款计划",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '计划付款日期', prop: 'pay_date' },
|
||||
{ label: '期次', prop: 'period' },
|
||||
{ label: '状态', prop: 'status' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已付款', prop: 'has_payment_amount' },
|
||||
{ label: '未付款', prop: 'not_payment_amoun' },
|
||||
{ label: '备注', prop: 'amount_excluding_tax' },
|
||||
{ label: '税额', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData2 = reactive({
|
||||
fetchFun: paymentapplyLists,
|
||||
tit: "付款记录",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '付款单号', prop: 'competitor_name' },
|
||||
{ label: '合同编号', prop: 'contract_no' },
|
||||
{ label: '供应商名称', prop: 'supplier_name' },
|
||||
{ label: '合同类型', prop: 'contract_type' },
|
||||
{ label: '期次', prop: 'period' },
|
||||
{ label: '付款日期', prop: 'pay_date' },
|
||||
{ label: '付款性质', prop: 'payment_natrue' },
|
||||
{ label: '付款方式', prop: 'pay_type' },
|
||||
{ label: '付款金额', prop: 'amount' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
const baseData3 = reactive({
|
||||
fetchFun: apiFinancerefundLists,
|
||||
tit: "退款记录",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '合同编号', prop: 'contract_no' },
|
||||
{ label: '合同名称', prop: 'contract_name' },
|
||||
{ label: '供应商名称', prop: 'supplier_name' },
|
||||
{ label: '合同类型', prop: 'contract_type' },
|
||||
{ label: '期次', prop: 'period' },
|
||||
{ label: '退款日期', prop: 'refund_date' },
|
||||
{ label: '退款原因', prop: 'reason' },
|
||||
{ label: '退款方式', prop: 'refund_type' },
|
||||
{ label: '退款金额', prop: 'refund_amount' },
|
||||
]
|
||||
})
|
||||
</script>
|
@ -36,187 +36,18 @@
|
||||
|
||||
|
||||
<el-tab-pane label="收款" name="demo-14">
|
||||
<!-- <div class='tit'>开票记录</div>
|
||||
<div>
|
||||
<el-table :data="tableData29" stripe style="width: 100%">
|
||||
<el-table-column label="开票单号" prop='invoicing_code' width="180" />
|
||||
<el-table-column label="合同编号" prop='contract_code' width="180" />
|
||||
<el-table-column label="合同名称" prop='contract_name' />
|
||||
<el-table-column label="开票日期" prop='invoicing_date' width="180" />
|
||||
<el-table-column label="期次" prop='period' width="180" />
|
||||
<el-table-column label="发票类型" prop='invoice_type' />
|
||||
<el-table-column label="发票编号" prop='tax' />
|
||||
<el-table-column label="开票金额(含税) " prop='amount_including_tax' />
|
||||
<el-table-column label="开票金额(非税)" prop='invoicing_amount' />
|
||||
<el-table-column label="税率" prop='tax_rate' />
|
||||
<el-table-column label="税额" prop='tax_amount' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager29.page_no" v-model:page-size="pager29.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total28" @size-change="handleSizeChange29"
|
||||
@current-change="handleCurrentChange29" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class='tit' style="margin:20px 0">回款计划</div>
|
||||
<div>
|
||||
<el-table :data="tableData30" stripe style="width: 100%">
|
||||
<el-table-column label="合同编号" prop='contract_code' width="180" />
|
||||
<el-table-column label="合同名称" prop='contract_name' width="180" />
|
||||
<el-table-column label="期次" prop='period' />
|
||||
<el-table-column label="计划日期" prop='return_date' />
|
||||
<el-table-column label="状态" prop='return_status' />
|
||||
<el-table-column label="金额" prop='amount' />
|
||||
<el-table-column label="已回款" prop='has_return_amount' />
|
||||
<el-table-column label="未回款" prop='not_return_amount' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager30.page_no" v-model:page-size="pager30.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total29" @size-change="handleSizeChange30"
|
||||
@current-change="handleCurrentChange30" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class='tit' style="margin:20px 0">回款记录</div>
|
||||
<div>
|
||||
<el-table :data="tableData31" stripe style="width: 100%">
|
||||
<el-table-column label="合同名称" prop='contract_name' width="180" />
|
||||
<el-table-column label="合同编号" prop='contract_code' width="180" />
|
||||
<el-table-column label="期次" prop='period' />
|
||||
<el-table-column label="日期" prop='return_date' />
|
||||
<el-table-column label="金额" prop='amount' />
|
||||
<el-table-column label="收款人" prop='receiver' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager31.page_no" v-model:page-size="pager31.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total30" @size-change="handleSizeChange31"
|
||||
@current-change="handleCurrentChange31" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class='tit' style="margin:20px 0">退款记录</div>
|
||||
<div>
|
||||
<el-table :data="tableData32" stripe style="width: 100%">
|
||||
<el-table-column label="退款单号" prop='refund_code' width="180" />
|
||||
<el-table-column label="合同编号" prop='contract_code' width="180" />
|
||||
<el-table-column label="合同名称" prop='contract_nanme' width="180" />
|
||||
|
||||
<el-table-column label="退款日期" prop='refund_date' width="180" />
|
||||
<el-table-column label="退款原因" prop='reason' />
|
||||
<el-table-column label="退款方式" prop='refund_type' />
|
||||
<el-table-column label="退款金额" prop='amount' />
|
||||
<el-table-column label="备注" prop='remark' />
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager32.page_no" v-model:page-size="pager32.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total31" @size-change="handleSizeChange32"
|
||||
@current-change="handleCurrentChange32" />
|
||||
</div>-->
|
||||
|
||||
<Collection v-if="activeName == 'demo-14'" :project_id="project_id"></Collection>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="付款" name="demo-15">
|
||||
<payment v-if="activeName == 'demo-15'" :project_id="project_id"></payment>
|
||||
</el-tab-pane>
|
||||
<!-- <el-tab-pane label="付款" name="demo-15">
|
||||
<div class='tit'>收票记录</div>
|
||||
<div>
|
||||
<el-table :data="tableData22" stripe style="width: 100%">
|
||||
<el-table-column label="开票日期" prop='invoicing_date' width="180" />
|
||||
<el-table-column label="提交人" prop='commitor' width="180" />
|
||||
<el-table-column label="发票类型" prop='invoice_type' />
|
||||
<el-table-column label="发票编号" prop='invoice_no' width="180" />
|
||||
<el-table-column label="发票税率(%)" prop='invoice_tax_rate' width="180" />
|
||||
<el-table-column label="发票金额" prop='invoice_amount' />
|
||||
<el-table-column label="不含税金额" prop='amount_excluding_tax' />
|
||||
<el-table-column label="税额" prop='tax' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager22.page_no" v-model:page-size="pager22.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total21" @size-change="handleSizeChange22"
|
||||
@current-change="handleCurrentChange22" />
|
||||
</div>
|
||||
<el-tab-pane label="文档" name="demo-16">
|
||||
<documentation v-if="activeName == 'demo-16'" :project_id="project_id"></documentation>
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
<div class='tit' style="margin:20px 0">付款计划</div>
|
||||
<div>
|
||||
<el-table :data="tableData23" stripe style="width: 100%">
|
||||
<el-table-column label="计划付款日期" prop='pay_date' width="180" />
|
||||
<el-table-column label="期次" prop='period' width="180" />
|
||||
<el-table-column label="状态" prop='status' />
|
||||
<el-table-column label="金额" prop='amount' />
|
||||
<el-table-column label="已付款" prop='has_payment_amount' />
|
||||
<el-table-column label="未付款" prop='not_payment_amoun' />
|
||||
<el-table-column label="备注" prop='remark' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager23.page_no" v-model:page-size="pager23.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total22" @size-change="handleSizeChange23"
|
||||
@current-change="handleCurrentChange23" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class='tit' style="margin:20px 0">付款记录</div>
|
||||
<div>
|
||||
<el-table :data="tableData24" stripe style="width: 100%">
|
||||
<el-table-column label="付款单号" prop='competitor_name' width="180" />
|
||||
<el-table-column label="合同编号" prop='contract_no' width="180" />
|
||||
<el-table-column label="供应商名称" prop='supplier_name' />
|
||||
<el-table-column label="合同类型" prop='contract_type' />
|
||||
<el-table-column label="期次" prop='period' />
|
||||
<el-table-column label="付款日期" prop='pay_date' />
|
||||
<el-table-column label="付款性质" prop='payment_natrue' />
|
||||
<el-table-column label="付款方式" prop='pay_type' />
|
||||
<el-table-column label="开票状态" prop='' />
|
||||
<el-table-column label="付款金额" prop='amount' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager24.page_no" v-model:page-size="pager24.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total23" @size-change="handleSizeChange24"
|
||||
@current-change="handleCurrentChange24" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class='tit' style="margin:20px 0">退款记录</div>
|
||||
<div>
|
||||
<el-table :data="tableData25" stripe style="width: 100%">
|
||||
<el-table-column label="合同编号" prop='contract_no' width="180" />
|
||||
<el-table-column label="合同名称" prop='contract_nanme' width="180" />
|
||||
<el-table-column label="供应商名称" prop='supplier_name' width="180" />
|
||||
<el-table-column label="合同类型" prop='contract_type' width="180" />
|
||||
<el-table-column label="退款日期" prop='refund_date' width="180" />
|
||||
<el-table-column label="退款原因" prop='reason' />
|
||||
<el-table-column label="退款方式" prop='refund_type' />
|
||||
<el-table-column label="退款金额" prop='refund_amount' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager25.page_no" v-model:page-size="pager25.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total24" @size-change="handleSizeChange25"
|
||||
@current-change="handleCurrentChange25" />
|
||||
</div>
|
||||
|
||||
|
||||
</el-tab-pane> -->
|
||||
<!-- <el-tab-pane label="人力" name="demo-12">
|
||||
|
||||
<el-tabs v-model="active" class="demo-tabs">
|
||||
@ -437,14 +268,6 @@ import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||
import { apiCompetitorLists } from '@/api/competitor'
|
||||
import { apiCustomServiceLists } from '@/api/custom_service'
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
import { paymentplanLists } from '@/api/paymentplan'
|
||||
import { apifinancereceiptLists } from '@/api/receiptrecord'
|
||||
import { paymentapplyLists } from '@/api/paymentrequest'
|
||||
import { apiFinancerefundLists } from '@/api/refundrecord'
|
||||
import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
|
||||
import { apireturnedLists } from '@/api/remittance'
|
||||
import { apireturnedrecordLists } from '@/api/recordsPayment'
|
||||
import { apirefundapplyLists } from '@/api/refund'
|
||||
import Overview from "./components/Overview.vue"
|
||||
import Business from "./components/Business.vue"
|
||||
import tender from "./components/tender.vue"
|
||||
@ -453,9 +276,9 @@ import budget from "./components/budget.vue"
|
||||
import procurement from "./components/procurement.vue"
|
||||
import subcontract from "./components/subcontract.vue"
|
||||
import manpower from "./components/manpower.vue"
|
||||
// import manpower from "./components/manpower.vue"
|
||||
// import manpower from "./components/manpower.vue"
|
||||
// import manpower from "./components/manpower.vue"
|
||||
import Collection from "./components/Collection.vue"
|
||||
import payment from "./components/payment.vue"
|
||||
import documentation from "./components/documentation.vue"
|
||||
// import manpower from "./components/manpower.vue"
|
||||
|
||||
|
||||
|
@ -234,7 +234,6 @@ const getlist = () => {
|
||||
//获取所有部门
|
||||
const deparmet = () => {
|
||||
getAllDept().then((res) => {
|
||||
console.log(res)
|
||||
Object.assign(deparmetlist, res)
|
||||
})
|
||||
}
|
||||
@ -254,7 +253,6 @@ const deparmetclck = (item: { id: any }) => {
|
||||
|
||||
const Jobs = () => {
|
||||
getAllJobs().then((res) => {
|
||||
console.log(res)
|
||||
Object.assign(jobslist, res)
|
||||
})
|
||||
}
|
||||
@ -339,22 +337,24 @@ const userclick = () => {
|
||||
//删除选择数据
|
||||
|
||||
const removeTag1 = (tag) => {
|
||||
|
||||
technician.value.splice(tag, 1)
|
||||
if (technician.value.length > 0) {
|
||||
if (technician.value.length >= 0) {
|
||||
formData.technician_ids = technician.value.map((item) => item.id).toString()
|
||||
}
|
||||
console.log(formData)
|
||||
}
|
||||
|
||||
const removeTag2 = (tag) => {
|
||||
business_people.value.splice(tag, 1)
|
||||
if (business_people.value.length > 0) {
|
||||
if (business_people.value.length >= 0) {
|
||||
formData.business_people_ids = business_people.value.map((item) => item.id).toString()
|
||||
}
|
||||
}
|
||||
|
||||
const removeTag3 = (tag) => {
|
||||
cross_departmental_personnel.value.splice(tag, 1)
|
||||
if (cross_departmental_personnel.value.length > 0) {
|
||||
if (cross_departmental_personnel.value.length >= 0) {
|
||||
formData.cross_departmental_personnel_ids = cross_departmental_personnel.value.map((item) => item.id).toString()
|
||||
}
|
||||
}
|
||||
@ -555,4 +555,5 @@ defineExpose({
|
||||
color: #f7f7f7;
|
||||
|
||||
}
|
||||
}</style>
|
||||
}
|
||||
</style>
|
@ -15,7 +15,7 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户" prop="custom_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-input v-model="customer_name" clearable placeholder="请输入客户" readonly
|
||||
<el-input v-model="customer_name" clearable placeholder="点击选择客户" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -54,7 +54,7 @@
|
||||
</el-col> <el-col :span="8">
|
||||
<el-form-item label="含税金额" prop="amount_including_tax"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-input v-model="formData.amount_including_tax" clearable placeholder="请输入含税金额"
|
||||
<el-input v-model="formData.amount_including_tax" disabled clearable placeholder="请输入含税金额"
|
||||
@input="amountinput" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
@ -66,17 +66,18 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="运费" prop="freight"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="formData.freight" clearable placeholder="请输入运费" />
|
||||
<el-input v-model="formData.freight" clearable placeholder="请输入运费" type="number" />
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
<el-form-item label="其他费用" prop="other_fee"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="formData.other_fee" clearable placeholder="请输入其他费用" />
|
||||
<el-input v-model="formData.other_fee" clearable type="number" placeholder="请输入其他费用" />
|
||||
</el-form-item></el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合计金额" prop="total_amount">
|
||||
<el-input v-model="formData.total_amount" clearable placeholder="请输入合计金额"
|
||||
<el-input v-model="formData.total_amount" disabled clearable placeholder="请输入合计金额"
|
||||
@input="amountinput1" />
|
||||
<div v-show="false">{{ totalPrice }}</div>
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合计金额大写" prop="total_amount">
|
||||
@ -158,7 +159,8 @@
|
||||
<el-table-column label="税率(%)" prop="tax_rate">
|
||||
<template #default="{ row }">
|
||||
|
||||
<el-select class="flex-1" v-model="row.tax_rate" clearable placeholder="请选择税率">
|
||||
<el-select class="flex-1" v-model="row.tax_rate" clearable placeholder="请选择税率"
|
||||
@change="test(row)">
|
||||
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
@ -213,7 +215,7 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiQuotationAdd, apiQuotationEdit, apiQuotationDetail } from '@/api/quotation'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import { timeFormat, convertToChinese } from '@/utils/util'
|
||||
import { toChinesNum } from "@/utils/util";
|
||||
import customDialog1 from '@/components/product/index.vue'
|
||||
import reviewprocess from '@/components/reviewprocess/index.vue'
|
||||
@ -222,7 +224,9 @@ const list2 = reactive([])
|
||||
import { deptAll } from '@/api/org/department'
|
||||
import { getAll } from '@/api/org/organization'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
import { computed, watch } from "vue"
|
||||
|
||||
const props = defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
@ -327,7 +331,6 @@ const formData = reactive({
|
||||
customer_require: '',
|
||||
remark: '',
|
||||
annex: [],
|
||||
|
||||
quotation_detail: [],
|
||||
|
||||
})
|
||||
@ -346,18 +349,18 @@ const customEvent1 = (e: any) => {
|
||||
specs: e.specs,
|
||||
brand: e.brand,
|
||||
parameter_description: e.parameter_description,
|
||||
product_num: 0,
|
||||
product_num: 1,
|
||||
tax_rate: '',
|
||||
price: 0,
|
||||
price: e.sales_price,
|
||||
remark: '',
|
||||
amount: 0,
|
||||
amount_including: 0
|
||||
amount: e.sales_price,
|
||||
amount_including: e.sales_price
|
||||
})
|
||||
console.log(e)
|
||||
// formData.customer_id = e.id;
|
||||
// customer_name.value = e.name;
|
||||
showDialog1.value = false;
|
||||
|
||||
console.log(tableData.value)
|
||||
};
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
@ -464,7 +467,21 @@ const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
// 计算价格
|
||||
const totalPrice = computed(() => {
|
||||
formData.total_amount = Number(formData.amount_including_tax) + Number(formData.freight || 0) + Number(formData.other_fee || 0)
|
||||
total_amount_daxie.value = convertToChinese(formData.total_amount)
|
||||
return Number(formData.amount_including_tax) + Number(formData.freight || 0) + Number(formData.other_fee || 0)
|
||||
})
|
||||
|
||||
watch(tableData.value, (newVal, oldVal) => {
|
||||
let num = 0;
|
||||
tableData.value.forEach(item => {
|
||||
num += item.price * item.product_num
|
||||
})
|
||||
formData.amount_including_tax = num
|
||||
amount_including_daxie.value = convertToChinese(num)
|
||||
})
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
|
Loading…
x
Reference in New Issue
Block a user